在 USB 启动环境中配置 GRUB

在 USB 启动环境中配置 GRUB

我在 Dell Latitude E5450 上运行 Debian 测试。

debootstrap我按照发布的说明创建了一个 USB 环境这里, 和这里。根据这些说明(和其他说明),我安装了正在运行的/dev/{pts}/proc/sys在适当的目录中安装了最新的内核systemd等。最后一步是配置 GRUB,首先将其安装在我的 U 盘的 EFI 分区上(格式化为 FAT32 并带有引导标志)chroot环境内部(带有适当的参数,例如EFI目录),然后运行update-grub;我再次强调这一点,chroot从通过创建的系统环境内部运行此命令debootstrap

问题是它检测到我正在运行的系统dev/sda2,这是我的主分区。因此,当我尝试使用 启动此 USB 时virt-manager,没有任何反应;当我进入“一次性启动菜单”(显示戴尔徽标时按 F12)时,我的笔记本电脑未将其检测为可启动设备,因此我进入设置并将grubx64.efiUSB 记忆棒内部设置为启动选项,然后重新启动。执行此操作后,不出所料,它想要启动我笔记本电脑中的内核,而不是 USB 驱动器中的内核。

发生的情况是这样的:

# grub-install --boot-directory=/boot/ --efi-directory=/boot/efi --recheck --removable /dev/sdb1
Installing for x86_64-efi platform.
Installation finished. No error reported.
# update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.10.0-3-amd64
Found initrd image: /boot/initrd.img-5.10.0-3-amd64
Found Debian GNU/Linux bullseye/sid on /dev/sda2
done

grub.cfg我得到的文件。在第 106 行中,我确实在 USB 中看到了一个带有内核的菜单项,但是当尝试从它启动时,该菜单项并没有显示;同样,一次性启动菜单无法将第一个分区(FAT fs、EFI)识别为可启动设备。如果我不将/dev目录挂载到新环境的树中,我将无法运行grub-install(这很有意义,但我认为值得一提)。

我不知道该怎么做,因为谷歌没有返回任何有用的东西,除了更多关于如何做我已经做过的事情的说明。首先,启动菜单无法识别我的 USB EFI 分区,这非常令人沮丧。其次,我真的很想知道chroot我必须运行什么命令、使用什么参数以及在树中安装哪些目录,以便 GRUB 识别 USB 记忆棒内的内核,而不是我笔记本电脑中的内核。

下面是 USB 记忆棒在 GParted 和fdisk.

格帕特 磁盘驱动器

答案1

从环境内部安装 GRUB 后一切正常chrootgrub-install 检测到我的主分区上的内核,但不一定从它启动;该条目仍然显示在菜单中,我想知道如何删除它。在 QEMU 中启动只需添加参数即可--bios /usr/share/qemu/OVMF.fd。谢谢大家的意见!

相关内容