我已经阅读了一段时间了,有一些想法,但不想丢失所有数据。
我正在进行更新,发现 /dev/sda2 分区中剩余空间不足。我认为这是我的 Ubuntu 的“启动”分区。
我打开了 GParted,缩小了 SDA1 并移动了 SDA2 分区,并且增大了 SDA1 分区。
在我完成磁盘后,GParted 说我可能在启动时遇到问题。
我现在无法让我的 BIOS 看到操作系统,并且我的系统将无法再启动。
我尝试使用 livecd 重写我的 MBR 和 GPT 表,但我不知道自己在做什么,或者我做错了。
我发现可能有一种方法可以执行 grub-update 并可能修复 MBR……
答案1
您的磁盘是具有 BIOS 模式引导代码的 MBR 磁盘,但它还具有EFI 系统分区 (ESP)上面有 EFI 模式的引导加载程序文件。这是一个不寻常的组合,而且不清楚您的计算机是在 BIOS/CSM/legacy 模式下启动的,还是在 EFI/UEFI 模式下启动的。这一事实使得很难建议您如何修复引导加载程序,因为如果计算机实际上是在 EFI 模式下启动的,那么基于之前 BIOS 模式安装的假设的修复过程可能会失败,反之亦然。还不清楚您的计算机有多旧,或者它使用的固件是什么品牌和什么年代的——一些 EFI(尤其是较旧的 EFI)有缺陷,在 EFI 模式下启动时可能会运行不良。当使用 MBR 磁盘时尤其如此。
根据我掌握的有限信息,我倾向于使用我自己的GPT fdisk ( gdisk
)到将磁盘从 MBR 转换为 GPT 格式。然后就可以在电脑上安装 EFI 模式的引导加载程序了——你可以使用 Boot Repair(从 Ubuntu 恢复工具启动)在 EFI 模式下)来(重新)安装 EFI 模式版本的 GRUB 或使用我的 USB 闪存驱动器版本的rEFInd 启动管理器并通过 Debian 包或 PPA 永久安装它。
另一方面,如果你的电脑 EFI 有足够多的 bug,使用 BIOS 模式的引导加载程序可能更可靠。如果是这种情况,你不应该弄乱分区表。相反,你应该学习如何控制电脑的启动模式并启动紧急 Ubuntu 系统在 BIOS 模式下。然后您可以运行 Boot Repair。运气好的话,这将设置一致的 BIOS 模式 GRUB,然后启动计算机。
您可以通过查找名为 的目录来测试您是在 BIOS 模式还是 EFI 模式下启动 Ubuntu /sys/firmware/efi
。如果该目录存在,则表示您已在 EFI 模式下启动;但如果不存在,则表示您已在 BIOS 模式下启动。控制启动模式可能很棘手,并且具体方法因计算机而异。请参阅我在 CSM 上的页面有关此主题的一些信息,但请注意,您可能必须在固件和计算机的内置启动管理器中四处寻找,以找出适合您的特定计算机的信息。
答案2
虽然我有 gpt,但通常 Ubuntu live-usb 上的自动启动修复 3 步解决方案对我有用,并使我的系统再次可启动。
关联:https://help.ubuntu.com/community/Boot-Repair
第二个选项。