无法满足分区上的所有约束

无法满足分区上的所有约束

我在单个硬盘上安装了 Windows 7 32 位和 Ubuntu 12.04 lts 64 位双启动系统。我想给我的 Ubuntu 分区留出更多的硬盘空间。不幸的是,当我打开分区它显示我的分区表上有未分配的空间。这个“未分配空间“实际上包含我的C:/ 和 D:/ 分区我的 Windows 7。当我双击该项目时,它显示了此警告:“无法满足分区上的所有约束“。

请帮我。我希望我的分区表得到修复。这样,我就可以扩大我的 ubuntu 分区。

答案1

如果您说 GParted 显示整个磁盘未分配,那么您可能遇到了以下两个问题之一:

  • 剩余的 RAID 数据-- 如果磁盘过去曾与基于主板的软件 RAID 一起使用,则剩余的 RAID 数据可能会使 GParted 感到困惑。sudo dmraid -E -r /dev/sda在 Linux 中键入可以纠正此问题;但是,在执行此操作之前,您应该绝对肯定系统当前未配置为使用 RAID。(某些计算机甚至在单磁盘设置上使用 RAID - 很奇怪,但确实如此。)
  • 分区表损坏-- 任何数量的分区表问题都可能导致 GParted 崩溃并声称磁盘未分区。大多数这些问题都可以通过使用我的FixParts 计划在磁盘上。该程序是gdiskUbuntu 软件包的一部分。

你可能还想咨询我的有关此问题的网页,其中对其进行了更详细的描述。

如果您的意思是只有某些分区似乎丢失,但其他分区出现在 GParted 中,则问题有其他原因。提供更多详细信息(例如输出sudo parted /dev/sda print和缺少内容的清晰描述)对于诊断和修复问题是必不可少的。


编辑:根据下面评论中的信息,看来分区表已损坏。FixParts可能能够提供帮助,但我不保证这一点,我建议谨慎使用。如果 FixParts 不能充分发挥作用,测试磁盘可能能够恢复丢失的分区。

背景,并回答您的问题:关于传统主引导记录 (MBR)分区系统(您已经拥有),最多可以有四个基本的分区,其中一个(延长分区)可以作为任意数量的逻辑fdisk分区。被标识为的分区w95 ext'd (lba)是扩展分区。在 Linux 下,主分区(包括扩展分区,如果存在)编号为 1-4,而逻辑分区编号为 5 及以上。所有主分区都在磁盘的第一个扇区(MBR)中定义,但每个逻辑分区都在其自己的数据结构中定义,称为扩展引导记录 (EBR),其结构与 MBR 类似。有关“分区表 7 的无效标志 0x6165”的消息意味着其中一个 EBR 的关键识别功能已损坏。根据分区软件和所涉及的分区,这可能会使以通常的方式恢复分区变得困难或不可能。

分区包含文件系统,但两者是不同的概念——分区只是磁盘上的一组连续扇区(例如,扇区 2048 到 923,647)。文件系统是一种复杂得多的数据结构,可用于将文件存储在分区中。两者通常一起创建和操作,但有工具可以分别完成每个部分的工作。fdisk例如parted,和都操作分区但不操作文件系统;而mkfs、、和tune2fs类似fsck工具操作文件系统。文件系统操作工具通常将分区标识符作为参数,因为它们需要一种方法来定位其文件系统,而分区可以做到这一点——文件系统通常从包含分区的第一个扇区开始。我喋喋不休地说这个是因为您的分区表已损坏;您的文件系统可能完全正常,只是分区表损坏,您无法识别它们的起点。

TestDisk 会忽略分区表并扫描文件系统以构建新的分区表,这就是它有用的原因——它不需要损坏的数据结构。另一方面,扫描整个磁盘的文件系统可能非常耗时,并且可能会发现不再有效的旧文件系统的零散部分,特别是如果您过去曾重新分区或移动过磁盘上的文件系统。如果文件系统损坏,TestDisk 也可能会失败,这种情况可能是这样的——损坏分区表的任何东西可能并不会就此停止,但可能会对一个或多个文件系统造成严重破坏。因此,TestDisk 应该只作为最后的手段使用。

相关内容