不允许分区重叠

不允许分区重叠

两天来我一直在尝试修复它,但就是无法修复。事情太混乱了。我的 Windows 运行良好,但无法安装任何 Linux。GParted 显示错误,不允许分区重叠。

以下是输出:sudo fdisk -l -u /dev/sda

Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders, total 312581808 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: 0x00000001

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *          63   135848514    67924226    7  HPFS/NTFS/exFAT
/dev/sda2       135852032   219426815    41787392    7  HPFS/NTFS/exFAT
/dev/sda3       219426814   270635007    25604097    f  W95 Ext'd (LBA)
/dev/sda4       270635008   312578047    20971520    7  HPFS/NTFS/exFAT
/dev/sda5       219426816   238880767     9726976    7  HPFS/NTFS/exFAT
/dev/sda6       238882816   270635007    15876096    7  HPFS/NTFS/exFAT

请告诉我如何修复这些扇区。我是菜鸟。

答案1

您的问题是/dev/sda2结束于扇区 219,426,815,但/dev/sda3开始于扇区 219,426,814 —— 因此,它们重叠。写入 的末尾/dev/sda2将破坏/dev/sda3,这非常危险,因为是一个扩展分区,这意味着它是和/dev/sda3的容器。这样的写入(到 的末尾)可能会导致最后两个分区完全丢失。/dev/sda5/dev/sda6/dev/sda2

如果我正确读取了这些值,修复这个问题将很困难。问题是逻辑分区在开始之前需要至少一个空闲扇区。您的/dev/sda1/dev/sda2/dev/sda6都有这样的间隙;但/dev/sda4/dev/sda5没有这样的间隙,所以必须保持为主分区。逻辑分区也必须是连续的。假设您有五个主分区或逻辑分区,您必须将其中至少两个转换为逻辑形式才能制作合法的分区表。唯一可以这样转换的两个是/dev/sda1/dev/sda2——但看起来/dev/sda1是您的 Windows 启动分区,将其转换为逻辑形式将导致其无法启动。(可以使用我的FixParts 程序,gdisk它是Ubuntu 软件包的一部分。)

总的来说,我的第一个建议是备份磁盘上的所有内容!这是因为磁盘处于不安全状态。尝试修复磁盘的任何操作都有可能引发更严重的问题,因此备份至关重要。

备份后,解决问题的一种方法如下:

  1. 使用 Ubuntu 实时启动并将gdisk磁盘从 MBR 转换为 GPT 格式,如文档gdisk 这将导致 Windows 无法启动!
  2. 使用 GParted 或紧急 Windows 磁盘中的工具,调整分区大小,以便在任何您想要合乎逻辑的分区之前留出一个短暂的间隙。单个扇区足够大,但使用 GParted,可能会产生约 1MiB 的间隙。没关系。既然您要尝试安装 Ubuntu,您不妨打开足够大的间隙来安装 Ubuntu——但我暂时不会为 Ubuntu 创建新分区。
  3. 使用gdisk,将 GPT 反向转换为 MBR。您将能够选择哪些分区是主分区,哪些是逻辑分区。确保/dev/sda1是主分区。
  4. 使用 Windows 紧急磁盘重新安装引导加载程序。
  5. 希望它有效。

这个过程非常危险;有很多事情可能会出错。但从长远来看,这可能并不比保持原样更危险,因为你的/dev/sda5/dev/sda6可能随时消失。

另一种方法是备份所有内容,重新分区,然后恢复所有内容。如果您在使用我概述的程序时遇到严重问题,可能会出现这种情况,因此即使您尝试了我建议的“修复”,也要做好这样做的准备。您还可以尝试一种混合程序 - 备份/dev/sda5/dev/sda6,删除它们和/dev/sda3(存放它们的扩展分区)fdisk在 Ubuntu 中使用,在它们的位置创建新的分区,然后恢复数据。

另一种方法是将磁盘转换为 GPT 格式并安装 EFI 模式引导加载程序。这只有在您拥有 EFI 固件时才有效,EFI 固件从 2011 年中期开始变得普遍;它很可能不适用于较早的计算机。如果您有一台较新的机器,您可以阅读有关引导模式转换的信息这里。这种方法之所以有效,是因为 GPT 不使用逻辑分区,因此转换为 GPT 会删除/dev/sda3,只留下它包含的分区,重叠部分就消失了。(这也是我之前的过程暂时转换为 GPT 的原因——您的分区布局在 GPT 中是合法的,这将使 GParted 能够调整分区大小。)

相关内容