AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 783471
Accepted
ela
ela
Asked: 2024-09-14 09:19:32 +0800 CST2024-09-14 09:19:32 +0800 CST 2024-09-14 09:19:32 +0800 CST

启动总是显示错误:“未知的文件系统。grub rescue>”

  • 772

我有一个双启动系统,AVLinux(基于 Debian 的发行版)和 Windows 11 安装在两个单独的分区中,我的 PC 使用 EFI。我的系统运行良好,直到昨天,当我启动 PC 时,Grub 的黑屏显示未知文件系统。错误消息和grub rescue>控制台以输入命令。

下面是屏幕图片: 屏幕显示“未知文件系统。”错误消息和“*grub rescue>”控制台

根据这个问题的第一个答案,我设法从 Grub 的救援控制台启动 Grub 的菜单,使用ls这个控制台找到安装了 grub 的 Linux 分区,然后发出命令手动启动Grub 文件夹中的正常(hd0,gpt4)内核模块。假设这是我的 Linux 分区(安装了 Grub),我发出了:

set prefix=(hd0,gpt4)/boot/grub
insmod normal
normal

获取 Grub 菜单并成功启动两个操作系统

不幸的是我必须在每次启动时发出相同的命令因为我无法摆脱那个屏幕......

我已经遵循了几乎所有的建议(比如我之前链接的建议),建议使用

sudo grub-install /dev/sda
sudo update-grub

命令(其中/dev/sda指的是您要重新安装 Grub 的驱动器,对我来说应该是/dev/nvme0n1)但没有任何变化。

当然,我也尝试遵循类似这样的建议,建议从 Linux 的实时版本(对我来说是 Kali Linux)重新安装 Grub,方法是挂载我的 Linux 分区(再次,安装了 Grub 的分区/boot/grub)、我的 EFI 分区、efivars 分区,然后使用 chroot 发出 grub-install:

sudo mount /dev/sdXY /mnt
sudo mount /dev/sdXX /mnt/boot/efi


for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done  
sudo chroot /mnt  

mount -t efivarfs none /sys/firmware/efi/efivars 
grub-install /dev/sdX
update-grub
exit 

其中:sdX= 磁盘 | sdXX= efi 分区 | sdXY= 系统分区(安装了 Grub 的分区)

但什么也没有改变。

我还尝试过efibootmgr改变 bootorder 的顺序并禁用一些 bootnums,但没有结果。

我甚至尝试使用启动修复程序,并读取它解决了许多问题,但是 - 再次 - 没有任何效果......

似乎在启动的最初阶段,Grub 试图从错误的位置启动其菜单,因此我必须手动设置位置/boot/grub才能获取菜单屏幕。不幸的是,我不知道如何检查这一点,如果可以,如何配置 Grub 以在正确的位置查找...

顺便说一句,我不确定,但我认为问题是在 Windows 更新后出现的。

以下是 GParted 中显示的我的分区列表: GParted 输出

/dev/nvme0n1p3我的 Windows 分区在哪里,/dev/nvme0n1p4Linux 的分区在哪里

这里是通过发出efibootmgr设置后获得的输出efibootmgr -v:

BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0000,0002,0001,0006,0003,0007,0008,0009,000A
Boot0000* Windows Boot Manager  HD(1,GPT,8b97638e-a366-4f45-be4e-60f9ef16f8dc,0x800,0x32000)/File(\EFI\MX21\grubx64.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}....................
Boot0001* ubuntu    HD(1,GPT,8b97638e-a366-4f45-be4e-60f9ef16f8dc,0x800,0x32000)/File(\EFI\ubuntu\shimx64.efi)
Boot0002* MX21  HD(1,GPT,8b97638e-a366-4f45-be4e-60f9ef16f8dc,0x800,0x32000)/File(\EFI\MX21\grubx64.efi)
Boot0003* debian    HD(1,GPT,8b97638e-a366-4f45-be4e-60f9ef16f8dc,0x800,0x32000)/File(\EFI\debian\grubx64.efi)
Boot0006* mx    HD(1,GPT,8b97638e-a366-4f45-be4e-60f9ef16f8dc,0x800,0x32000)/File(\EFI\mx\grubx64.efi)
Boot0007* Windows Boot Manager  HD(1,GPT,8b97638e-a366-4f45-be4e-60f9ef16f8dc,0x800,0x32000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)..BO
Boot0008* UEFI:CD/DVD Drive BBS(129,,0x0)
Boot0009* UEFI:Removable Device BBS(130,,0x0)
Boot000A* UEFI:Network Device   BBS(131,,0x0)

有人对此有线索吗?我不知道该尝试什么了……

boot
  • 2 2 个回答
  • 41 Views

2 个回答

  • Voted
  1. Best Answer
    ela
    2024-09-21T08:19:44+08:002024-09-21T08:19:44+08:00

    好的,我解决了。

    问题出在 UEFI 固件运行了我的 EFI 分区中的一个错误启动项;更具体地说,它是您可以在 efibootmgr 输出中看到的Boot0000 。

    就我而言,我无法使用 efibootmgr 重新安排启动顺序,但我能够通过更改UEFI 固件中设置的BBS 启动优先级来做到这一点。更确切地说,步骤如下:

    • 将我的电脑重新启动到 UEFI 固件
    • 进入BBS 启动优先级部分(在我的 UEFI 中,它位于:Settings\Boot\UEFI Hard Disk Drive BBS Priorities)
    • 重新排列启动顺序,使第一个条目成为安装了 grub 的 AVLinux 操作系统的启动条目

    最后一次重新启动后,它就运行得很好了。

    希望这能帮助别人

    • 0
  2. GammaZoid
    2024-09-14T12:21:08+08:002024-09-14T12:21:08+08:00

    问题几乎肯定是由于 EFI 分区太小(100MB)造成的。当 Windows 更新时(如果这是原因),它可能扰乱了安装以腾出空间。我应该说我无法解释您看到的每一个症状,但我可以说 100MB 勉强够启动一个操作系统,更不用说两个了。

    大多数 BIOS 支持多个 EFI 分区,创建另一个(大小最好为 1GB)可能是最好的解决方法,无需进行大规模磁盘重组。我会启动您的实时安装程序,并使用 gparted 将 p4 的大小减少 1G,在释放的空间中创建一个 fat32 文件系统,并将启动标志设置为 p1。然后使用新的 EFI 分区进行手动启动修复以重新安装 grub。现在您将有两个用于 Kali 的 BIOS 启动菜单条目,您可能需要反复试验才能找到正确的条目。要解决这个问题...

    您的 BIOS 启动菜单中有一堆垃圾。我会访问 p1,查看 EFI 目录,然后删除非 Windows 条目;如果仅此方法无法解决问题,则使用 efibootmgr(但如果您不清除残留的引导加载程序,它们可能会不断弹出)。EFI 目录之外可能还有其他文件,但只有当您确定自己在做什么时才可以删除它们(尽管 Windows 启动修复可能会在需要时修复您犯的任何错误)。当然,请确保不要删除您的新 BIOS 启动菜单,但如果您这样做,它很可能会重新被发现。

    • -1

相关问题

  • 为什么 `journalctl --list-boots` 与 `uptime` 和 `who -b` 报告的不匹配?

  • 如何在启动时启动控制台程序(在 ../openbox/autostart 内)

  • 系统完好,grub坏了

  • “pacman -Syu”“可能”破坏了我的系统,因为未安装引导

  • 克隆的 SSD 无法启动并打印奇怪的线条

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve