我有一台 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。这是要求。