系统启动时进入 grub 救援模式,无法使用启动修复进行修复。怀疑是 EFI 问题

系统启动时进入 grub 救援模式,无法使用启动修复进行修复。怀疑是 EFI 问题

我有一台 Gateway(型号 DX4850 - 重新命名为 ACER),它是最早采用 EFI 的设备之一。我不认为它是 UEFI。当我购买它时(大约 2012 年),我根本不想在它上面安装 Microsoft Windows 7,所以我删除了各种分区,然后使用 Ubuntu 12.04 重新安装它。由于不了解 EFI,我认为我还删除了 EFI 分区。

我在 BIOS 模式下安装了 Ubuntu,并且许多后续安装都是在 BIOS 模式下完成的。我有两个用于 Ubuntu 安装的主分区(sda1 和 sda6),因此我当前的安装在一个分区上,而新安装则放在另一个分区上。这样,我可以继续使用旧安装,直到新安装正常运行并且我的文件从备份中复制过来。

我注意到每次启动时都会出现 EFI 错误,后来我注意到 Live CD 和 Live USB 检测到它是 EFI 主板,但无法以 EFI 模式安装。然后我意识到我可能无意中删除了原始 EFI 分区,因此研究了如何恢复 EFI 分区并创建了一个 200 Mb 分区并设置了 EFI 标志。

现在我有了 EFI 分区,我以 EFI 模式在 sda6 中安装了 Ubuntu 16.10。当 Ubuntu 17.04 推出时,我将其安装在 sda1 中,并将主文件夹放在单独的分区中。但是,grub 文件似乎留在 sda6 中,并且它继续启动 Ubuntu 16.10,直到我调整 grub 菜单以启动 Ubuntu 17.04,它是菜单中的第 4 项(我认为)。

今天我决定在 sda6 中安装 17.10 Beta 1,删除了分区并在空间中创建了两个分区,一个用于 root (/),一个用于 home (/home)。安装很顺利,但是当它重新启动时,它最终进入了 grub 救援提示符。

我使用 Live USB 启动盘启动,安装了启动修复程序并尝试修复问题。我收到了以下消息:

An error occurred during the repair.

A new file (~/Boot-Info_2017-09-12__23h48.txt) will open in your text viewer.

In case you still experience boot problem, indicate its content to:
[email protected] 

You can now reboot your computer.
Please do not forget to make your BIOS boot on sda (1000GB) disk!

以下是 fdisk -l 的输出

Disk /dev/loop0: 1.5 GiB, 1553670144 bytes, 3034512 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x000df48b

Device     Boot      Start        End    Sectors   Size Id Type
/dev/sda1           411648   98068479   97656832  46.6G 83 Linux
/dev/sda2        911226878 1953523711 1042296834   497G  5 Extended
/dev/sda3  *          2048     411647     409600   200M ef EFI (FAT-12/16/32)
/dev/sda4         98068480  911224831  813156352 387.8G 83 Linux
/dev/sda5       1936785408 1953523711   16738304     8G 82 Linux swap / Solaris
/dev/sda6        911226880 1008881663   97654784  46.6G 83 Linux
/dev/sda7       1008883712 1936781311  927897600 442.5G 83 Linux

Partition 2 does not start on physical sector boundary.
Partition table entries are not in disk order.

Disk /dev/sdg: 7.5 GiB, 8000110592 bytes, 15625216 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x1b571474

Device     Boot   Start     End Sectors  Size Id Type
/dev/sdg1  *          0 3142655 3142656  1.5G  0 Empty
/dev/sdg2       3118960 3123567    4608  2.3M ef EFI (FAT-12/16/32)

跑步:

dmesg | grep -i "EFI"

产量:

[    0.000000] Command line: BOOT_IMAGE=/casper/vmlinuz.efi file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash ---
[    0.000000] efi: EFI v2.10 by American Megatrends
[    0.000000] efi:  SMBIOS=0xbad2ed98  ACPI=0xbac2b000  ACPI 2.0=0xbac2b000  MPS=0xfcc20 
[    0.000000] clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645519600211568 ns
[    0.000000] Kernel command line: BOOT_IMAGE=/casper/vmlinuz.efi file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash ---
[    0.167061] Registered efivars operations
[    4.965537] efifb: probing for efifb
[    4.965543] efifb: framebuffer at 0xd0000000, using 1920k, total 1920k
[    4.965544] efifb: mode is 800x600x32, linelength=3200, pages=1
[    4.965544] efifb: scrolling: redraw
[    4.965545] efifb: Truecolor: size=8:8:8:8, shift=24:16:8:0
[    4.967076] fb0: EFI VGA frame buffer device
[    5.009887] EFI Variables Facility v0.08 2004-May-17
[    5.368319] fb: switching to inteldrmfb from EFI VGA
[    5.963925] tsc: Refined TSC clocksource calibration: 3392.298 MHz

我想将我的台式电脑接入正常工作的 EFI 系统。我该怎么做?我已备份所有文件,因此如果需要,我可以从头开始重建所有内容。

更新:我运行了:

sudo gdisk /dev/sda1

并得到:

GPT fdisk (gdisk) version 1.0.1

Partition table scan:
  MBR: MBR only
  BSD: not present
  APM: not present
  GPT: not present


***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by
typing 'q' if you don't want to convert your MBR partitions
to GPT format!
***************************************************************

我可以允许 gdisk 将 MBR 转换为 GPT 吗?

谢谢你,

彼得·弗里曼

答案1

我看到的最可能的原因。
您有一个 MBR 分区磁盘。
在传统模式下安装 ubuntu 时,它会将 grub 添加到磁盘的 MBR。当
您添加 EFI 分区并以 EFI 模式安装时,MBR 中的 grub 未更新,因此现在您已删除 16.10,MBR 中的 grub 无法找到 16.10 分区上的配置文件。

可能的修复方法:
1) 使用 MBR 工具从 MBR 中删除 grub。确保将 EFI 分区标记为启动分区。2
) 从头开始​​重新分区。EFI 可以使用 GPT 分区,这比 MBR 更有优势。3) 返回使用 Legacy Boot。

注意:确保您的 EFI 分区格式为 FAT32。这是要求。

相关内容