通过 USB 安装 Linux:启动时显示“启动选项恢复”

通过 USB 安装 Linux:启动时显示“启动选项恢复”

问:如何使用 Grub 在 EFI 系统上手动启动 Linux?

我陷入困境的地方:我正在尝试在 x64 计算机上安装自定义内核、根文件系统和 grub。 USB 记忆棒具有等效的安装脚本并可启动,但当我尝试在 x64 设备上安装 eMMC 时,它显示“启动选项恢复”。这是一个重新启动循环,我怀疑它与我使用 Grub 的方式有关。

图片(不是我的):

主屏幕:

启动选项恢复

可用选项:

启动选项已恢复

(简化的)代码:

#! /bin/bash
set -e

# Create GPT, partition 1, type BIOS boot, bootable flag
(echo -e "g\nn\n1\n\n+128M\nt\n4\nM\na\nM\nw\n") | fdisk /dev/mmcblk0
sleep 1
mkfs.vfat -N BOOT /dev/mmcblk0p1

# Create partition 2
(echo -e "n\n2\n\n\nY\nw\n") | fdisk /dev/mmcblk0
sleep 1
mkfs.ext4 -F -L ROOTFS /dev/mmcblk0p2

dd if=rootfs of=/dev/mmcblk0p2 conv=fsync
mount /dev/mmcblk0p2 /mnt
mount /dev/mmcblk0p1 /mnt/boot/efi
cp vmlinuz-custom /mnt/boot

chroot /mnt <<-EOF
        mount -t proc none /proc
        mount -t sysfs none /sys
        mount -t devtmpfs none /dev

        # This could be moved out of the chroot, but for is use this.
        update-initramfs -c -k custom

        umount /proc /sys /dev
EOF

grub-install --target=x86_64-efi --removable --recheck \
        --root-directory=/mnt \
        --efi-directory=/mnt/boot/efi \
        --boot-directory=/mnt/boot/efi/EFI \
        --bootloader-id=grub /dev/mmcblk0;

cat > /mnt/boot/efi/EFI/grub/grub.cfg <<-EOF
insmod gzio
insmod part_msdos
insmod part_gpt
insmod ext2
insmod normal
        
search.fs_label BOOT grub
search.fs_label ROOTFS rootfs
        
set prefix=/bogus  # Unavailable prefix (prefix required by Grub)
        
sleep 1
linux (\$rootfs)/boot/vmlinuz-custom root=UUID=$(blkid -o value -s UUID /dev/mmcblk0p2) i915.force_probe=* swiotlb=65536 module_blacklist="pinctrl_elkhartlake,dp83867"
initrd (\$rootfs)/boot/initrd.img-custom
boot
EOF

已经检查过:

  • Grub 中的 UUID 似乎是正确的
  • USB 和 EMMC 安装脚本不相同,但等效。
  • 将 BIOS 选项重置为默认设置
  • 所有命令似乎都正确执行

答案1

我记不太清了,但我认为这与编写 Grub 有关。尝试删除--removable.我用它来创建USB,好像用了两次好像不能玩两次。也尝试删除--recheck.

最终我将内核移至 EFI 分区上的仅 EFI 位置。通过efibootmgr这个处理方式比 Grub 好得多。

答案2

我在一台只有 Linux(没有 Windows)的笔记本电脑上也经历了同样的蓝屏。您认为蓝屏属于系统的哪一部分?到 BIOS/UEFI(例如,到硬件),还是到 GRUB?

我具体做了什么:

  • 我将 Debian 安装在 SSD 上,但将 ESP (EFI) 分区安装在 U 盘上(不要问我为什么,这只是为了一些测试)
  • 第一次启动时一切顺利
  • 然后我拔掉了包含 ESP 分区的 U 盘,笔记本电脑无法启动。这是预期的,因为它不再有 ESP 分区
  • 然后我再次插入U盘,它也没有启动。这是出乎意料的。

读完后,我重新开始了这个过程,但是这次我dpkg-reconfigure grub-efi-amd64在安装了 Debian 后立即进行了操作,并且我对这个问题的回答是“是” Force extra installation to the EFI removable media path ?

现在它可以工作了,但是有额外的蓝屏:

  • 我拔掉带有 EFI 分区的 USB 记忆棒,笔记本电脑无法启动。预期的
  • 我重新插入 U 盘,现在它可以启动,但显示蓝屏。如果我选择Continue boot它会启动 grub,然后启动 Debian。

网上关于蓝屏的信息很少。您能分享一下您的想法吗?它从哪里来,为什么会显示?

相关内容