如何在安装 Ubuntu 之前修复 MBR 分区?分区与 GPT 备份扇区重叠

如何在安装 Ubuntu 之前修复 MBR 分区?分区与 GPT 备份扇区重叠

我的主要问题是我刚刚购买了一台装有 WINDOWS 7 的华硕笔记本电脑,我想在其上安装 Ubuntu。

我想要双启动来在两个操作系统之间进行选择,我读到最好先安装 Windows,然后再安装 Ubuntu,因为 Windows 安装程序会覆盖 Ubuntu 的引导加载程序。

因此,我尝试从 USB 闪存盘安装 Ubuntu 12.04 LST,但当它检查其他操作系统时却找不到 Windows 7 系统。

我检查了可能的原因并从 HD 中的恢复分区重新安装了 Windows 7,但得到了相同的结果。

显然,Ubuntu 安装程序发现了两个分区表(GPT 和 MBR),但它不知道使用哪一个。

我曾经gdisk尝试解决该问题。

从下面的 fdisk 和 gdisk 输出中,我知道我必须修复我的 MBR 分区,但我不知道如何操作。

ubuntu@ubuntu:~$ sudo fdisk -l

WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.


Disk /dev/sda: 500.1 GB, 500107862016 bytes
256 heads, 63 sectors/track, 60563 cylinders, total 976773168 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 identifier: 0x7834646f

  Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1  4294967295  2147483647+  ee  GPT    

ubuntu@ubuntu:~$ sudo gdisk -l /dev/sda
GPT fdisk (gdisk) version 0.8.5

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

Found valid GPT with protective MBR; using GPT.

Warning! Secondary partition table overlaps the last partition by
33 blocks!
You will need to delete this partition or resize it in another utility.
Disk /dev/sda: 976773168 sectors, 465.8 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): B1142EF0-26CB-4F15-9C42-AFC122E50E2A
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 976773134
Partitions will be aligned on 2048-sector boundaries
Total free space is 122884062 sectors (58.6 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
  1            2048          411647   200.0 MiB   EF00  EFI system partition
  2          411648          673791   128.0 MiB   0C01  Microsoft reserved part
  3          673792       391383039   186.3 GiB   0700  Basic data partition
  4       391383040       802693119   196.1 GiB   0700  Basic data partition
  5       925575168       976773167   24.4 GiB    2700  Basic data partition

Command (? for help): r

Recovery/transformation command (? for help): o

Disk size is 976773168 sectors (465.8 GiB)
MBR disk identifier: 0x7834646F
MBR partitions:

Number  Boot  Start Sector   End Sector   Status      Code
  1                     1   4294967295   primary     0xEE

答案1

我是 的作者gdisk,我同意 psusi 所写的内容,但需要注意的是,我不知道 /dev/sda5 上到底有什么,所以我不能说删除它是否安全。如果它是你刻录到恢复 DVD 上的东西,那么应该但删除它是安全的。

如果 /dev/sda5 上有足够的可用空间(大约 17 KiB),您应该能够使用 GParted 或 Windows 工具调整分区大小,如果该工具不会因为非法分区表而失效。您最好将其备份到另一个磁盘,删除它,然后恢复它。不过,您需要使用能够恢复到较小分区的备份/恢复方法。(或者,您可以稍微缩小 /dev/sda4 以腾出空间来创建一个与现在一样大的新 /dev/sda5。)

另外,在无关紧要的事情上,您似乎有一台基于 UEFI 的 PC。在这样的系统上,第二个安装 Linux 的建议并不像在基于 BIOS 的系统上那么重要。(U)EFI 仍然有很多缺陷,但尽管存在这些问题,但它的启动管理比 BIOS 更合理,而且 Windows 在 EFI 上的表现优于在 BIOS 上的表现。

您可能需要使用gdisk将 Linux 分区的类型代码从 0700 更改为 8300,​​以防止它们在 Windows 中显示为未格式化的磁盘。请参阅这里有关此问题的更多信息。

答案2

您正在使用 GPT,而不是 MBR,并gdisk告诉您需要做什么:

You will need to delete this partition or resize it in another utility.

不清楚它指的是哪个分区,但那应该是最后一个分区,或者在您的情况下是第 5 个分区。它一直运行到磁盘的最后一个扇区,这是不允许的,因为 GPT 在磁盘的最后 33 个扇区中存储了备份副本。如果分区上没有任何重要的东西,您应该可以直接将其删除gdisk

相关内容