使用grub2制作启动U盘
Tofloor
poster avatar
shenlan
deepin
2017-12-28 21:02
Author
本帖最后由 shenlan 于 2017-12-28 15:47 编辑

使用grub2制作启动U盘

原理概述:

将U盘格式为GPT类型的分区,添加bios引导支持的启动分区和EFI引导分区,然后将grub2引导程序安装到U盘上,引导借助grub的loopback模块来读取U盘分区内ISO文件的内容,完成安装器的引导,从而达到灵活制作启动U盘的目标,并且后续更新ISO只需要替换ISO文件即可,具体步骤如下
在U盘上创建GPT类型的分区
分区 文件系统类型 大小 启动标志 分区标签
分区一 fat32 33M   bios_grub
分区二 fat32 64M boot esp
分区三 ext4 > 5G
DEEPINOS
将 grub 引导程序安装到U盘上
mount /dev/sdb3 /mnt/
mkdir /mnt/EFI/
mount /dev/sdb2 /mnt/EFI

debian/ubuntu系列发行版操作

深度桌面版本的仓库中grub软件包有BUG,导致制作的启动U盘 UEFI模式不可用,debian/ubuntu centos7 发布版本都验证通过


安装EFI引导文件,操作参考如下,需要使用grub-efi软件包提供的命令:
grub-install --target=x86_64-efi --removable --boot-directory=/mnt/ --efi-directory=/mnt/EFI/ /dev/sdb
安装BIOS引导文件,操作参考如下,需要使用grub-pc软件包提供的命令:
grub-install --target=i386-pc --removable --boot-directory=/mnt/ /dev/sdb
最后将ISO文件拷贝到 /mnt/ 目录,在/mnt/grub/ 目录下创建 grub.cfg 启动菜单文件。

grub.cfg 参考实例
menuentry "Deepin Desktop 15.5 ISO" {   
    set isofile='deepin-15.5-amd64.iso'   
    loopback loop $isofile   
    linux (loop)/live/vmlinuz.efi boot=live findiso=$isofile noeject noprompt locales=zh_CN.UTF-8 --   
    initrd (loop)/live/initrd.lz
}
Reply Favorite View the author
All Replies

No replies yet