efiboot.img(名字可以自己改)
制作UEFI可启动ISO文件之前,需要先制作efiboot.img。efiboot.img 是一个软盘映像文件,可以由ultraiso,或者winimage 创建,以及添加、修改文件。
以ultraiso为例子,点击"文件"->"新建"->"软盘映像",映像大小选择2.88MB,即可创建2.88MB类型的软盘映像。然后点击"保存",选择一个文件夹,输入一个名字比如efiboot.img,保存即可。
关于uefi 主板的安全启动(uefi secure boot)
1.如果是关闭secure boot的启动,对于grub4dos for_UEFI来说,efiboot.img里面只需要efi\boot\bootx64.efi (可选32位efi支持efi\boot\bootx32.efi)。在光盘根目录里面放efi\grub\menu.lst,以及字体、背景图片和外置命令即可。
对于其他的bootloader,比如grub2 UEFI来说,可能需要自己定制efiboot.img里面的文件,以符合生成iso命令的要求。grub2从光盘启动的时候,是从efiboot.img里面的文件读取配置,还是从光盘根目录读取配置?efiboot.img的大小如果大于2.88MB,需要采用相应的命令。
2.如果是开启secure boot的启动,将会根据主板UEFI的内置安全验证流程,efi、内核、模块都可能需要证书和签名。那么,原版的无认证的efi文件在这种安全启动过程中无法通过验证。
使用xorriso制作BIOS UEFI双重可启动ISO文件
下面是使用xorriso制作BIOS UEFI双重可启动ISO文件的3种命令,并分析区别:
此处使用grub4dos作为bios启动文件,efiboot.img可以根据自己需要选择不同的bootloader
1.xorriso -as mkisofs -V myiso -no-emul-boot -l -R -J -joliet-long -boot-load-size 4 -b grldr_cd.bin --efi-boot efiboot.img --boot-catalog-hide -hide grldr_cd.bin -hide-joliet grldr_cd.bin -hide efiboot.img -hide-joliet efiboot.img --boot-info-table -o myiso.iso isofile
--efi-boot efiboot.img 这个选项efiboot.img的大小不受到1.2MB/1.44MB/2.88MB的限制
2.xorriso -as mkisofs -V myiso -no-emul-boot -l -R -J -joliet-long -boot-load-size 4 -b grldr_cd.bin -eltorito-alt-boot -e efiboot.img --boot-catalog-hide -hide grldr_cd.bin -hide-joliet grldr_cd.bin -hide efiboot.img -hide-joliet efiboot.img --boot-info-table -o myiso.iso isofile
3.xorriso -as mkisofs -V myiso -no-emul-boot -l -R -J -joliet-long -boot-load-size 4 -b grldr_cd.bin -eltorito-platform efi -b efiboot.img --boot-catalog-hide -hide grldr_cd.bin -hide-joliet grldr_cd.bin -hide efiboot.img -hide-joliet efiboot.img --boot-info-table -o myiso.iso isofile
-eltorito-alt-boot -e efiboot.img
-eltorito-platform efi -b efiboot.img
这两种选项效果是一样的,并且efiboot.img的大小受到1.2MB/1.44MB/2.88MB的限制