如何在可启动 USB 记忆棒上安装 Grub2?
我听说 Grub2 可以直接从“.iso”映像启动,因此我希望 Grub2 能够轻松地将多个“liveCD”iso 映像拖放到可启动 USB 记忆棒上并试用它们。
答案1
在 USB 驱动器上安装 Grub2(用正确的安装点和 USB 设备替换
/USBDRIVE
和)/dev/sdx
sudo grub-install --boot-directory=/USBDRIVE/boot /dev/sdx
创建所需目录
mkdir /USBDRIVE/iso mkdir /USBDRIVE/boot/grub/scripts
保存这个自动ISO配置文件
/USBDRIVE/boot/grub/scripts
目录中的脚本在目录中创建一个
grub.cfg
包含以下内容的文件/USBDRIVE/boot/grub
configfile /boot/grub/scripts/autoiso.cfg
现在您可以将多个“liveCD”iso 映像拖放到iso
USB 记忆棒的目录中并启动它们。支持以下实时系统:
- 格罗姆
- 分开的魔法
- 斯莱克斯
- 微小核心
- 乌班图
- 实时系统环回配置文件
答案2
如果初始化系统将扫描硬盘驱动器设备以及光学媒体设备(似乎是根文件系统),那么您应该能够调整现有的可引导 ISO 映像以在任何硬盘驱动器类型设备(例如 USB 记忆棒)上工作。 Ubuntu 使用 Casper 作为其可启动安装/实时 ISO 映像,并在各处查找它想要挂载的 ISO 文件系统。我已经成功地将它们从普通 ISO 转换为混合 ISO/IMG 文件,该文件可以直接写入 USB 记忆棒,并且仍然可以刻录到 CD 或 DVD。我通过将内核(和内存测试器映像)附加到 ISO(因此它变得更大)来实现这一点,为 stage2 映像分配一个扇区位置,修改 GRUB 源,以便所有扇区都内置(直接在 stage1 中并通过stage2 的构建配置),编译并完成附加 stage2 的映像,并使用 stage1 替换扇区 0。
不过,我是用 GRUB Legacy (v1) 做到的。此后,我已经将可启动项目转移到 SYSLINUX,因此我从未真正研究过 GRUB2 的流程。只要它有办法设置默认值或执行内置配置,或者有办法引用配置文件,这应该是可行的,而无需重建 ISO。
这仅适用于每个 USB 记忆棒一个 ISO 映像。多重是合理的。如果它们共享相同的内核(例如在同一设备上安装 Ubuntu 和 Kubuntu),这可能会很容易。
我不知道有任何拖放工具。我用一个在 root 命令 shell 上运行的脚本构建了我的脚本。我没有将其打包到发布项目中,也从未打算这样做。没有文档,只有“构建”脚本本身的注释,所以你只能靠自己了。请随意下载它以查看我所做的具体细节:http://ubuntu.slashusr.org/iso-for-hd-2010-10-11-225024.tar.gz
我上次使用它为 Ubuntu 11.04 构建映像,您可以查看该脚本的最终产品。他们在http://ubuntu.slashusr.org/11.04/ .map 文件显示扇区布局。