每当我的 2 TB 外置硬盘 (WD My Book) 连接时,GRUB 似乎都会冻结。在 GRUB 加载时连接它会出现同样的情况,但之后连接或根本不连接都会让我的计算机正常启动。我猜 GRUB 认为该设备带有引导加载程序和/或操作系统,然后在尝试识别它时挂起。我还应该提到,这以前不是问题,当我突然无法打开计算机时,我感到很惊讶。
到目前为止我已经尝试过:
- 重新安装 GRUB
- 在主板设置中禁用 USB 支持(有效,但我无法使用键盘导航 GRUB)
- 将驱动器连接到不同的 USB 端口
- 谷歌
我可以让 GRUB 完全忽略驱动器吗?还有其他我可以尝试的想法吗?
答案1
GrUB 会将代码和数据写入某些设备,这会完全混淆某些 BIOS USB 代码。我发现唯一能让我的系统不冻结的方法就是将第一个分区(例如 /dev/sdb1)格式化为 VFAT(打算将其用于 GrUB 启动)。这种方法并不适用于所有系统,但似乎对某些系统有帮助。我的意思是,如果你不这样做,即使按电源按钮也无法让你摆脱这种情况,你必须按住电源按钮或拔掉电源线,否则系统就“崩溃”了。
抱歉,到现在为止还没有人回答,但我想你已经发现了,除非你想重新格式化你的(USB)存储(以及与 ext3 或其他相比,FAT 会失去的所有东西),否则你必须在启动期间断开驱动器,无论是物理拉动电缆还是像你一样在 BIOS 中忽略 USB。我在这里发布这个,以便其他人在遇到同样的问题时可以尝试一些方法。让我有所警觉的是,当我以交互方式要求选择启动设备时,它显示类似“USB USB-FDD”的内容。软盘通常格式化为 FAT,所以我想尝试一下。这是一个带有 MSDOS 分区表的闪存驱动器,如前所述,第一个分区是 FAT(大约 150MB,足以容纳 GrUB 2 和内核/initrd)。这个 16G 驱动器的其余部分是 ext3。
答案2
2020 年遇到了这个 grub 冻结问题
尝试过这些
如果连接了外部硬盘,GRUB 会冻结。我可以简单地让它对 GRUB 不可见吗?(这一页)
即使我清除了外部磁盘的第一个分区(dd if=/dev/zero of=/dev/sda1=[EFI part])并清除了该分区的所有启动等标志,grub 仍然被冻结,我尝试使用设置了一些调试标志的 grub,但没有得到任何解决方案。
作为一种解决方法,我在启动系统时移除了外部硬盘,然后在系统启动后将其连接起来。
在 2021-22 年间,在另一个系统中,我遇到了另一个与 efi 相关的问题
无法准备启动变量:设备上没有剩余空间 grub-install:错误:efibootmgr 无法注册启动项:输入/输出错误 UEFI 问题:无法准备启动变量:设备上没有剩余空间 / 安装 / Arch Linux 论坛 efibootmgr:无法准备启动变量:设备上没有剩余空间 已解决 - 如何使用 efibootmgr 恢复 UEFI 条目
我通过以下方式解决了https://bbs.archlinux.org/viewtopic.php?pid=1591882#p1591882
rm /sys/firmware/efi/efivars/*
和
sudo efibootmgr -v
昨天我再次开始搜索解决 grub 冻结问题的方法,并再次找到了这个页面,按照建议将第一个分区设为 FAT,我也尝试了 dd if=zero of=first_partion 并删除所有标志,但没有帮助。
在搜索此问题的解决方案时,我不确定在哪里,我看到了 efi 问题的参考,最后回想起之前我使用现有的外部设备作为我的主要内部设备,并从那里启动 linux,后来我购买了 SSD 并替换了 SSD 来代替这个 HDD,并将这个 HDD 移到了托架中
然后想到之前提到的这个 HDD 会在 efi 的某个地方,而现在同一个设备将它的位置从内部改为外部,这可能会让 grub 感到困惑
然后我又跟着
efibootmgr -v
rm /sys/firmware/efi/efivars/*
efibootmgr -v
此处所有输入均已清除
进而
然后再次在 EFI 中重新安装 grub
efibootmgr -v
这里仅看到一个条目
现在重新启动,发现此问题已修复
也许这种情况可以通过虚拟机重现,首先将磁盘制作为内部磁盘,然后用其他磁盘替换它,然后将第一个磁盘更改为外部磁盘
这可能有助于 grub 添加修复来处理这种情况。
谢谢