如何在Debian Jessie机器上创建UEFI ISO映像?
当我在Kubuntu上使用follow命令时,一切正常
genisoimage -quiet -V "my-amd64" -J -R -r -l -cache-inodes -c isolinux/boot.cat -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e boot/grub/efi.img -no-emul-boot -o my-amd64.iso my-amd64/
isohybrid --uefi my-amd64.iso
但是当我在Debian Jessie上运行此命令时,我得到了以下错误:
genisoimage: option '-e' is ambiguous; possibilities: '--eltorito-boot' '--exchange' '--ethershare' '--exclude-list' '--exclude' '--eltorito-catalog' '--eltorito-alt-boot'
Usage: genisoimage [options] -o file directory ...
似乎在Kubuntu(15.04)上的genisoimage和Debian Jessie没有相同的选项。在Debian genisomage上不支持UEFI。
两个系统上的版本相同: genisoimage 1.1.11
但我必须在Debian Jessie上创建ISO镜像。对此有何解决方法?
答案 0 :(得分:2)
显然,Mondo或genisoimage发生了不相容的变化。 The problem was reported, but the provided wrapper-workaround got a bit mangled by the wiki.使用包装器可以解决所有问题,具体取决于语法。
以下是我的所作所为:
准备包装器:
mv /usr/bin/genisoimage /usr/bin/genisoimage.dist
YourFavoriteTextEditor /usr/bin/genisoimage
复制/粘贴包装器:
#!/bin/bash
options=() # the buffer array for the parameters
while [[ $1 ]]
do
case "$1" in
-e)
options+=("--eltorito-boot")
shift
;;
*)
options+=("$1")
shift
;;
esac
done
echo Calling genisoimage.dist "${options[@]}"
eval exec /usr/bin/genisoimage.dist "${options[@]}"
使包装器可执行:
chmod 755 /usr/bin/genisoimage
从此过上幸福的生活。 : - )
答案 1 :(得分:1)
如果您在Ubuntu机器上执行apt source genisoimage,并在diff中查看,您会发现它们已在cdrkit中添加了重要的补丁集以获取此功能。您可以尝试向后移植所做的更改。或者,如果您为文件安装了syslinux-utils,则可以使用xorriso,它似乎具有此功能。该命令将是。
xorriso -as mkisofs \
-o <output> \
-isohybrid-mbr /usr/lib/syslinux/isohdpfx.bin \
-c isolinux/boot.cat \
-b isolinux/isolinux.bin \
-no-emul-boot -boot-load-size 4 -boot-info-table \
-eltorito-alt-boot \
-e isolinux/efiboot.img \
-no-emul-boot \
-isohybrid-gpt-basdat \
-r -J \
<CD_root>