折腾U盘启动

这次做了一个支持EFI和MBR启动的U盘,装的是Grub2引导。

安装这个也很简单,挂载U盘,创建一个boot目录,再用grub-install安装

mount /dev/sdb1 /mnt
mkdir /mnt/boot
grub-install --root-directory=/mnt/boot /dev/sdb1

安装EFI支持:
grub-install --target=x86_64-efi --root-directory=/mnt/boot /dev/sdb1

上面的命令在我这里出错了。理由佷简单,我Linux没有x86_64-efi的mod文件,grub-install需要把这些文件复制到U盘上的。

然而我并不知道安装些什么才能出现这些文件。但是,我把目光转向了Linux安装镜像文件。

我从Kali Linux镜像文件里复制出了efi文件夹,还有boot/grub/x86_64-efi和boot/grub/i386-efi放到U盘上。上面已经执行grub-install装过i386平台Grub2了,所以理论上可以直接使用了。

插电脑上测试,MBR启动和EFI启动都没问题。

然后在U盘上又放了一个GRUB4DOS的grldr文件,解压了一个老毛桃、大白菜一类的启动盘镜像。解压镜像的时候提示是否覆盖efi/boot/bootia32.efi和efi/boot/bootia32.efi。U盘上这两个文件是用来启动Grub2的,当然不能覆盖。然后我把镜像中efi/boot文件夹解压到U盘的efi/boot_pe。

这样设置efi启动时肯定只会引导Grub2。但我们可以使用Grub2的chainloader命令启动PE。

chainloader /efi/boot_pe/bootx64.efi

最后就可以愉快地引导各种镜像文件啦。

 

如有谬误望加指正。

怎么安装x86_64-efi之类的Grub2 mod,也望懂的人指点。