我唯一做的事情就是物理断开硬盘(当然是在电脑关闭的情况下)以检查一些信息,例如 rpm、供应商等,但后来我忘记重新连接它,当我打开电脑时,它只显示了 uefi 菜单(当然是因为硬盘未连接)。意识到我关闭了电脑并重新连接了硬盘,但它仍然显示 uefi 菜单,它识别硬盘,但当我尝试从硬盘启动(使用启动菜单)时,屏幕变黑,然后返回到 uefi。
处理器和 RAM 也被识别。
我的主板是华硕。Bios
版本 0612 x64
以防我的操作系统是 Arch Linux 并且它是最新的。
编辑1:刚刚在另一台电脑上试了一下硬盘(从现在起我将其称为辅助电脑)。它没有启动,而是显示了以下内容:
编辑2:我从 arch linux 可启动 usb 运行 fdisk,得到了以下结果:
在我的硬盘的三个分区上运行 fsck:
但是,在每个分区(sda1、sda2、sda3 而不仅仅是 sda)上分别运行它时,它会返回一条消息“干净”,并且其中没有任何错误。
我还用该命令扫描了我的硬盘,查找可能的坏块backblocks
,经过 2 小时的扫描后,它返回了Pass completed, 0 bad blocks found. (0/0/0 errors)
编辑3:禁用 PXE(在这台电脑(辅助电脑)上它被命名为‘启动到网络’),然后再次尝试从硬盘启动,会出现以下消息:A booteable device has not been detected, please refer to the product guide to http://support.intel.com/support/motherboard/desktop/
在主 PC(问题起源的 PC)中,此 PXE 选项已被禁用,我尝试启用它,重新启动后,它发生了与第一张图相同的情况(编辑 1)。因此,在我的主 PC 和辅助 PC 上的行为是相同的:
已启用 PXE:导致黑屏,如编辑 1 中所示,这在主 PC 和辅助 PC 上都会发生。
PXE 已禁用:导致黑屏并显示我已在此编辑中输入的消息,这发生在辅助电脑上,在主机上,屏幕变黑约 0.5 - 1 秒,然后返回到 uefi 菜单。
编辑4:我刚刚尝试安装我的一个硬盘分区,较大的分区包含所有非系统文件和目录,同时使用 Arch Linux 可启动 USB,我可以完美地浏览终端中的所有数据,甚至可视化文本文件,但我没有尝试修改其中任何一个,因为我不想弄乱硬盘。
所以这些都是好消息,数据似乎是完整的,只是我无法访问系统,因为出于某种原因,我的电脑认为我的硬盘不是“可启动设备”,尽管它在启动选项中列出。
PD:我的硬盘有 3 个分区,一个 500mb 的分区用于 grub,一个 50 gb 的分区用于 linux 系统本身,一个 880 GB 的分区用于存储我的所有数据。
答案1
UEFI 中引导加载程序安装过程的一部分是将该引导加载程序的确切文件名从主板的 NVRAM 内存中的“EFI 系统分区”存储起来。固件不会启动整个磁盘;它会启动该磁盘上的特定文件。
(可以有多个引导加载程序,并且每个引导加载程序都存储为单独的引导条目,也就是说,不需要争论哪个操作系统将获得“那个” MBR。)
当你在断开磁盘连接的情况下启动时,固件会删除所有引用该磁盘的条目,认为它们不再有效,所以以后它不再知道你的 GRUB 安装在哪里是。
如果您可以访问 EFI Shell,请使用它手动运行 GRUB 并以此方式启动 Linux。然后重新运行grub-install
。
fs0:
cd \efi\arch
dir
grubx64.efi
如果没有,则安装 EFI 系统分区,创建一个目录EFI\boot
,将 grubx64.efi 文件复制到那里,然后将文件重命名为bootx64.efi
。即使没有指向该位置的启动项,固件也会在此确切位置查找。
或者,由于您有一个 Arch 安装 USB,请使用arch-chroot
&c。然后重新运行grub-install
。
答案2
这可能是由于 BIOS 设置不正确造成的。请发布您的 BIOS 屏幕:选择启动设备的位置以及搜索顺序、BIOS 列出连接的硬盘的位置以及提到特殊硬盘选项的位置。您始终可以选择从任何 liveCD(如果有 USB 或 DVD)启动,并检查您的分区,尤其是启动标志(标记分区可由 BIOS 启动)。