我在 32 GB SD 卡上安装了 Ubuntu(位于 Acer Aspire One 的存储扩展槽中),并在同一个分区中安装了 Grub2。我启动 USB 驱动器上的旧版 Grub,并希望通过从 Grub 链式加载 Grub2 进行启动(内核/initrd 或符号链接启动也可以),但我还没有弄清楚如何从旧版 Grub CLI 执行此操作。此分区的 blkid 输出为 /dev/mmcblk0p1:LABEL="Ubuntu" UUID="7ceb9fa7-238c-4c5d-bb8e-2c655652ddec" TYPE='ext4" / fdisk -lu information 启动指示器 ID 83。
grub.cfg中的相关条目:
搜索--no-floppy--fs-uuid--set-root 7ceb9fa7-238c-4c5d-bb8e-2c655652ddec
linux /boot/vmlinuz-3.5.0-17-generic root=UUID=7ceb9fa7-238c-4c5d-bb8e-2c655652ddec…
initrd /boot/initrd.img-3.5.0-17-generic
我似乎无法在旧版 Grub 中复制此内容。有没有办法让 Grub2 进行链式加载?如何在旧版 Grub 中使用 UUID 设置 root?
我更喜欢从 USB 启动。USB 上的 Grub2(复制安装期间生成的 grub.cfg)是一个选项吗?
答案1
尝试在 Legacy GRUB 的命令行中运行以下命令:
uuid {{device uuid here}}
kernel /boot/grub/core.img
boot
{{device uuid here}} 显然是您的 SD 卡的 UUID。这还假设您的 GRUB2 安装位于 {{sdcard}}/boot/grub。您也可以通过从 Legacy GRUB 进行链式加载来执行此操作:
uuid {{device uuid here}}
chainload +1
无论如何,如果您想从 UUID 启动,请确保您的 Legacy GRUB 是版本 0.97(否则您将无法访问 uuid 命令,这意味着您必须通过设备名称来搜索 SD 卡)。
答案2
我尝试了所有 Grub 版本(Grub4Dos、旧版 Grub 0.97 和 Grub2,其分区中安装了 grub.cfg Ubuntu),但似乎没有一个能够访问安装在我的 Acer Aspire One 存储扩展槽中的 SD 卡。哦,好吧,这是一个有趣的实验。这是 Grub 的问题,而不是 Ubuntu 的问题。