linux创建启动盘

  1. 磁盘必须具备 boot, lba标识
  2. 挂载(这里是第一个分区,fat32格式,磁盘沿用上一篇的磁盘镜像格式, 当前目录创建了一个boot的目录作为挂载点)
mount /dev/loop0p1 boot
  1. EFI可选,不知道具体效果,不知道如何测试区别
efibootmgr -w

其他的解释: 如果不做这一步,那么在主板 CSM 开启的混合模式下可能无法UEFI启动。

  1. efi 安装(需要64位efi安装的linux?),没有的话直接复制也可。efi的启动盘相对简单: 磁盘分区为boot+lba标识的fat32分区,自动加载efi/boot/bootx64.efi
grub-install --boot-directory boot/boot --efi-directory boot --removable /dev/loop0
  1. 由于第4步在efi平台只安装efi相关的内容,不将启动代码写入到相关的启动分区中,所以还需要在非efi启动的情况下重复第4点的操作。使用livecd也可以完成这一步
grub-install --boot-directory boot/boot --efi-directory boot --removable /dev/loop0
  1. 对于loop设备,比如目前用的其实是一个img文件,需要使用下面的方式
grub-install --boot-directory=boot/boot --efi-directory boot --removable --modules="ext2 part_msdos" /dev/loop0

注意第4点和第5点在不同环境下的输出

至此,同时支持bios和uefi的启动盘就制作完成了。

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据