制作一个带rEFInd引导菜单的WinPE启动光盘

制作一个带rEFInd引导菜单的WinPE启动光盘


制作UEFI格式的启动光盘要比U盘难很多。
UEFI模式Windows的bootmgr只能从UDF格式光盘引导,而rEFInd并不支持从UDF格式光盘引导。Windows原版光盘是通过引导一个软盘镜像加载cdboot.efi,cdboot.efi启动以后会在UDF格式光盘中查找bootmgr.efi文件并启动。我们现在只需要做一个同时包含rEFInd和cdboot.efi的软盘景象就可以让rEFInd引导WinPE的光盘了,为了能让rEFInd识别到Windows的引导文件,我们需要把cdboot.efi改名成bootmgfw.efi放在软盘镜像的efi/microsoft/boot文件夹下。cdboot.efi文件在Windows原版光盘里efi/microsoft/boot文件下夹下有。可以使用cdboot_noprompt.efi代替cdboot.efi这样就不会有确认从CD引导的提示直接开始引导了。 rEFInd的软盘镜像可以在光盘镜像里面找到,我下载的是0.11.5版本,软盘镜像文件名是refind-bin-0.11.5.img。
光盘镜像下载地址:
http://www.rodsbooks.com/refind/getting.html 下载 A CD-R image file

MacOS下制作软盘镜像的方法:
新建一个6M的内存盘

hdiutil attach -nomount ram://12288 

然后终端上会显示出创建的设备文件
设备文件名跟你电脑上的磁盘数量有关,我的电脑上显示/dev/disk3
这里的/dev/disk3换成上体条命令中回显的设备文件名

newfs_msdos -v 'EFI' /dev/disk3

新建一个文件夹用来挂载虚拟软盘镜像

mkdir mnt     
mount -t msdos /dev/disk3 mnt

双击refind-bin-0.11.5.img挂载,把里面的文件都复制到mnt文件夹下

mkdir mnt/efi/microsoft
mkdir mnt/efi/microsoft/boot
cp cdboot.efi mnt/efi/microsoft/boot/bootmgfw.efi
umount mnt
dd if=/dev/disk3 of=efiboot.img
hdiutil eject /dev/disk3 

这样虚拟软盘镜像就制作成功了

建一个文件夹,起名iso,把软盘镜像和WinPE光盘的所有文件都放在iso文件夹下,需要有bootmgr.efi文件,没有的话从Windows原版光盘里面提取一个。
如果想同时兼容BIOS启动方式,可以从Windows7原版镜像中提取引导文件etfsboot.com,也保存在iso文件夹下。
MacOS系统可以在brew下安装cdrtools

MacOS下制作iso的命令是:

mkisofs -udf -hide-udf boot.catalog -hide-udf efiboot.img -hide-udf etfsboot.com -o boot.iso -V rEFIndPE -no-emul-boot -b etfsboot.com -eltorito-alt-boot -b efiboot.img -no-emul-boot iso

Linux下制作软盘镜像的方法:

dd if=/dev/zero of=efiboot.img bs=512 count=12288
mkfs.vfat efiboot.img
mkdir mnt
sudo mount efiboot.img mnt
mkdir fdd
sudo mount refind-bin-0.11.5.img fdd
sudo cp -RP fdd/* mnt/
sudo mkdir mnt/efi/microsoft
sudo mkdir mnt/efi/microsoft/boot
sudo cp cdboot.efi mnt/efi/microsoft/boot/bootmgfw.efi
sudo umount mnt
sudo umount fdd

由于Linux系统自带mkisofs不能封装单UDF的光盘,所以最后一部封装还需要借助windows官方的oscdimg工具
把做好的软盘镜像efiboot.img,Windows7原版镜像中提取引导文件etfsboot.com,iso文件夹,oscdimg.exe放在一个文件夹下,运行cmd,cd进入这个文件夹
运行命令:

oscdimg -lrEFIndPE -u2 -bootdata:2#p0,betfsboot.com#pEF,befiboot.img iso boot.iso

虚拟机中运行效果
制作一个带rEFInd引导菜单的WinPE启动光盘

上一篇:WinPE U盘安装原版Win10系统详细教程


下一篇:Node.js交你发布包,创建自己的服务器(本地)