Debian 10 安装程序期间 GRUB 无法安装(回复:UEFI、SuperMicro 主板)

Debian 10 安装程序期间 GRUB 无法安装(回复:UEFI、SuperMicro 主板)

我已在我的服务器中安装了新主板(超微 X9DRi-F)并且我正在尝试安装 Debian 10 的全新副本。但是,当它尝试安装 GRUB 时,它失败了:

Unable to install GRUB in dummy
Executing 'grub-install dummy' failed.
This is a fatal error.

我确保在 UEFI 模式下启动安装程序(USB 驱动器),因为我正在进入 BIOS 并强制其启动(正确显示“UEFI:Sandisk”)。

我无法剪切并粘贴 /var/log/syslog 消息,但它基本上是这样的:

Installing grub on 'dummy'
grub-install does not support --no-floppy
Running chroot /target grub-install  --force "dummy"
Installing for x86_64-efi platform.
grub-install: warning: Cannot read EFI Boot* variables.
grub-install: warning: read_file: could not read from file: Input/output error.
grub-install: warning: vars_get_variable: read_file(...) failed: Input/output error.

我搜索过,看到其他人也遇到这个问题,但不清楚有人是如何解决的?

有人可以帮我吗?

答案1

在我的系统上重新安装 grub 时遇到同样的问题。我的解决方案(使用 debian live 系统):

~ # mount /dev/sdX /target
~ # mount -o rbind /dev /target/dev
~ # mount -t proc proc /target/proc
~ # mount -t sysfs sys /target/sys
~ # mount -t efivarfs efivarfs /target/sys/firmware/efi/efivars # added that line (in difference to all other manuals found on the internet..)
~ # chroot /target/
~ # grub-install
~ # update-grub

答案2

我也遇到了这个错误,我想我必须以其他方式手动安装 grub。以下是更多信息:我在 UEFI 模式下安装在 GPT 表驱动器上,并使用 BTRFS 作为根文件系统。

我的硬盘是 NVME samsung 970 evohttps://pcpartpicker.com/product/JLdxFT/samsung-970-evo-10tb-m2-2280-solid-state-drive-mz-v7e1t0baw

我的主板是华硕 PRIME B360M-Ahttps://pcpartpicker.com/product/WfF48d/asus-prime-b360m-a-micro-atx-lga1151-motherboard-prime-b360m-a

由于缺乏 Linux 系统,我在 Windows 10 系统上使用 Rufus 创建了 USB 安装介质。

我按照这里的指示,https://wiki.debian.org/GrubEFI重新安装

1.) 安装 efi debian,当遇到 grub 错误时,选择不使用引导加载程序进行安装(必须以 efi 模式引导安装介质)

2.) 将 refind 写入某些启动介质(您可以覆盖步骤 1 中的相同介质),在 efi 中启动它,然后启动到您刚刚安装的 debian 系统

3.) 打开终端/shell 并登录

4.) 确保您实际上以 efi 模式启动,[ -d /sys/firmware/efi ] && echo "efi, continue" || echo "没有 efi,在 efi 中重新启动"

5.) 检查您的 efi 分区是否已安装在 /boot/efi 中(应该是,只需运行 lsblk 进行验证)

6.) sudo grub 安装

7.) 须藤更新-grub

8.) 关机,取出前面步骤中的启动介质,打开电源并查看系统从硬盘启动

应该可以,非常简单的修复。

PS 请注意,我通过在安装阶段跳过 root 用户创建来使用 sudo - 如果您更喜欢 su root,请从步骤 3 开始使用。

答案3

谢谢大卫!这基本上是您答案的副本。我添加了一些对于初学者来说可能不明显的细节和遗漏。我无法安装 Debian 10 Buster(单启动),即使采用默认的所有内容!我一直在网上寻找解决方案,只有你的解决方案足够清晰和简单,可以为我工作。我们假设 /dev/sdX1 是 EFI 分区,/dev/sdX2 是刚刚安装(但未启动)Debian Buster 的 ext4。还假设 grub 安装失败后继续安装。现在我们刚刚启动进入实时系统并打开一个终端:

~ # sudo mkdir /target
~ # sudo mount /dev/sdX2 /target
~ # sudo mount /dev/sdX1 /target/boot/efi
~ # sudo mount -o rbind /dev /target/dev 
~ # sudo mount -t proc proc /target/proc 
~ # sudo mount -t sysfs sys /target/sys 
~ # sudo mount -t efivarfs efivarfs /target/sys/firmware/efi/efivars 
~ # sudo chroot /target/ 
~ # sudo rm -f /sys/firmware/efi/efivars/dump*
~ # sudo grub-install 
~ # sudo update-grub

希望有帮助,加油。

相关内容