我遇到了分区相互重叠的问题 ( fdisk -l
)
/dev/sda1 * 2048 206847 204800 100M 7 HPFS/NTFS/exFAT
/dev/sda2 8155136 220203007 212047872 101,1G 83 Linux
/dev/sda3 220203008 639633407 419430400 200G 7 HPFS/NTFS/exFAT
/dev/sda4 208894 976768064 976559171 465,7G f extended W95 (LBA)
/dev/sda5 208896 8155135 7946240 3,8G 82 exchange partition
/dev/sda6 639645696 976768064 337122369 160,8G 7 HPFS/NTFS/exFAT
我该如何修复?删除所有硬盘可以修复吗?
答案1
我同意 quixotic 的评论:
如果所有这些分区都有效,并且你永远不需要改变这些分区,你应该会没事的。
这个分区表非常不寻常。它看起来像是基于 MBR 的损坏的分区方案。我将帮助您了解发生了什么。
要了解分区,程序(如fdisk
或gparted
)会执行以下分析:
- 主引导记录
0
读取扇区中的 (MBR) 。它包含四个分区条目,它们被赋予编号1
、2
、3
、4
。任何不为空的条目都定义一个具有相应编号的分区(例如sda1
第一个条目)。请注意,您可以让任何一组这些条目都非空,因此可能只有sda2
和sda4
。
这些分区不应重叠。按顺序排列它们是一种很好的做法(第一个表条目在磁盘上排在第一位,依此类推)。没有必要在这些分区之间或末尾留下任何“未使用”扇区;但在 MBR 和第一个分区之间通常会有一些“未使用”扇区。我说的“未使用”是指“不属于任何分区”,但它们仍可用于其他用途 - 例如,MBR 和第一个分区之间的扇区通常用于存储引导加载程序的一个阶段(这就是为什么您的sda1
开始位置是从2048
,而不是从 开始的原因1
)。
在您的例子中,MBR 中定义了、和sda1
。sda2
它们的条目并不完全按照磁盘顺序排列,但这实际上并不重要(但这可能会让用户感到困惑)。重要的是:和在内,因此正式的分区sda3
sda4
sda2
sda3
sda4
重叠。类似这样的程序gparted
会检测这种情况并发出警告。稍后我会解释为什么这对您的特定情况来说并不致命。
- 这些分区中最多有一个可以是扩展分区(其他被称为主分区)。如果有,则进行进一步分析。
您的sda4
是扩展分区。
- 一个扩展分区不应包含文件系统。相反,它可能包含零个或多个逻辑分区. 第一个部分扩展分区叫做扩展引导记录(EBR)并描述了第一个逻辑分区(如果有的话)。与此分区关联的编号始终是
5
,并且必须在其 EBR 之后开始。第一个 EBR 可能指向描述分区编号的第二个 EBR6
(必须在其 EBR 之后开始);第二个 EBR 可能指向第三个,依此类推。最终,某些 EBR 不指向下一个,这意味着它描述的是最后一个分区。EBR 不存储它们的编号,它们就像链条的环节。出于这个原因逻辑分区有连续的数字。
在您的例子中,扇区号208894
包含描述 的 EBR sda5
。还有另一个 EBR,可能位于 和 之间639633408
,639645695
描述sda6
。仅有的两个逻辑分区不要填满整个sda4
,这就是为什么gparted
会告诉您有 300 GB 的可用空间。如果您sda4
仅检查的内容,您会看到可用空间。如果仅检查 MBR 中的条目,您会看到重叠分区。诀窍是sda2
和sda3
适合这个所谓的可用空间 –这就是重叠并不致命的原因。
gparted
不够聪明,无法发现这一点,因为你的设置太不寻常,我想说,太疯狂了。
另一条评论:
我不知道这一点,
fdisk
或者其他工具不会想象扩展分区中有 300G 的可用空间并让您在那里创建与之重叠的其他分区sda(2,3)
。
我说他们很有可能让你用这种方式破坏东西。
那么你能做什么呢?如果它有效,就别碰。
好吧,人们可以处理这个混乱局面,并使分区布局完全合理,但是(例如):
- 一些分区号会改变,我预计启动 Windows 会出现问题(有 Windows,不是吗?);
- 基本的
sda2
应该是新的逻辑sda6
但它们之间并没有 EBR 的自由区域。
通过仔细(手动)编辑分区表、移动/调整分区大小、修复启动过程等,可以完成此操作。但许多事情都可能出错。
删除所有硬盘可以修复此问题吗?
您的意思是:备份重要文件,删除所有分区,从头创建合理的分区和文件系统,安装操作系统,然后将文件复制回来?是的,它可以修复这个问题。