理解分区表


17

这是输出fdisk

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048   419424255   209711104   83  Linux
/dev/sda2       419424256  1258291199   419433472   83  Linux
/dev/sda3      1258291200  1300236287    20972544    f  W95 Ext'd (LBA)
/dev/sda4   *  1300236288  1709836287   204800000    7  HPFS/NTFS/exFAT
/dev/sda5      1258293248  1275062271     8384512   82  Linux swap / Solaris

这是输出cfdisk

Name         Flags       Part Type   FS Type           [Label]         Size (MB)
--------------------------------------------------------------------------------
                                     Unusable                               1.05  *
sda1                      Primary    ext4                              214744.18  *
sda2                      Primary    ext4                              429499.88  *
sda5         NC           Logical    swap                                8586.79  *
                          Logical    Free Space                         12889.10  *
sda4         Boot         Primary    ntfs                              209715.20  *
                                     Unusable                          124768.71  *

我应该有2个Linux分区,1个Windows分区扩展分区(约20 GB)和逻辑8GB交换分区以及多达130GB的未分区空间。

好像还不够,的输出gparted也有所不同。 在此处输入图片说明

我对我在此处发布的输出感到困惑。

  1. /dev/sd4如果我启动到GRUB2,为什么标记为可启动?
  2. 什么是/ dev / sda3?它是什么类型(主要/逻辑)?为什么它不显示在cfdisk
  3. 为什么该可用空间(我假设为124768 cfdisk)标记为不可用?
  4. NC标志在cfdisk交换分区中意味着什么?

Answers:


26

如果我引导到GRUB2,为什么/ dev / sd4被标记为可引导?

可引导文件是MBR中的一个标志(实际上是一个与0x80比较的字节)。该条目被标记为可引导。“传统”引导程序读取MBR,查找带有可引导标志的条目,并将控制权传递给它。当您使用grub时,它所做的事情完全不同,因为它使用其配置文件。但是工具会告诉您如何配置分区(实际上,MBR中可能有一个引导加载程序,将您跳转到/ dev / sda4,并在那里安装了grub2)。

什么是/ dev / sda3?它是什么类型(主要/逻辑)?为什么它不显示在cfdisk中?

/ dev / sda3是扩展分区类型的分区。这是一个分区,用作其他分区的容器。gparted在其图形上很好地显示了它。

您可能会争论它是否实际上是一个分区,一方面它在MBR中占用一个插槽,另一方面,它是一个分区容器,您没有在其中放置文件系统。

分区工具会对其进行特殊处理,因此cfdisk似乎不希望将其显示出来。例如,fdisk也不允许对这些分区执行某些操作。

为什么将该可用空间(我在cfdisk中假设为124768)标记为不可用?

我认为这些是gparted最后显示的116.20 GiB

您最多只能有4个主分区(计算扩展分区)。这来自MBR末尾的插槽数。因为您已经有4个分区,所以最后的未分配空间无法分区(您不能在此处放置逻辑分区,因为您只能有一个扩展分区,并且该分区应该是连续的)。

您(轻松)使用该空间的选择是:

  • 扩展/ dev / sda4以使用它
  • 扩展/ dev / sda3以包括/ dev / sda4(最好还包括到磁盘的末尾),并使/ dev / sda4成为逻辑分区

cfdisk中用于交换分区的NC标志是什么意思?

引用cfdisk手册页“这些标志可以是Boot(表示可引导分区),也可以是NC(其代表”与DOS或OS / 2不兼容”)。不用担心


11

让我们开始吧...

  1. 它被标记为可引导,因此Windows可以从中加载其引导加载程序。即使可能首先加载Grub,但如果从列表中选择Windows,它也会“链式加载”到Windows启动加载器中。为了运行Windows Bootloader,它必须位于可引导分区上(有人可以为我再次检查吗?我从未尝试过在Windows 7安装中删除Bootable标志...)

  2. SDA3实际上是扩展 分区。您的磁盘格式化为MBR而不是GPT。限制之一是MBR最多只能有4个主分区。要解决此问题,可以使用扩展主分区,然后在其中创建多个较小的逻辑分区(使您获得4个以上的分区)。

  3. 由于MBR的限制,它无法在Extended Logical partition之外创建第5个主分区。这是正常的。如果扩展扩展分区,则应该能够在其中创建一个新分区,并使用磁盘的其余部分。

  4. cfdisk手册页

标志可以是Boot,它表示可引导分区,也可以是NC,其代表“与DOS或OS / 2不兼容”。


没问题。我在发布相同的答案,而这是唯一一个你没有比我更好的答案的答案。;)
Ƭᴇcʜιᴇ0072014年

3

根据惯例,分区1至4是“物理”分区(它们是当时唯一可用的类型)。所以你有了:

Device    Boot      Start         End      Blocks   Id  System
/dev/sda1            2048   419424255   209711104   83  Linux
/dev/sda2       419424256  1258291199   419433472   83  Linux
/dev/sda3      1258291200  1300236287    20972544    f  W95 Ext'd (LBA)
/dev/sda4   *  1300236288  1709836287   204800000    7  HPFS/NTFS/exFAT

/dev/sda5      1258293248  1275062271     8384512   82  Linux swap / Solaris

... sda1是物理的,Linux。sda2是物理的,又是Linux。sda3是一个逻辑分区其他分区(从5开始)可以驻留在其中。最后sda4是一个Windows分区,标记为可引导-我认为只有Windows会关心它。GRUB2会很乐意引导您想要的任何分区,但是Windows希望位于可引导分区上。

现在,没有这样显示的逻辑分区内部sda3cfdisk等效于更多的物理分区。仅在这种情况下sda5

由于sda3从1258M扇区到1300M扇区,但sda5最多使用到1275M,因此1275062272到1300236287扇区是空闲的(但可分配给sda6)。

最后,您的sda4(最后一个可能的物理分区-MBR仅容纳四个)不会填满磁盘末端。剩下约116Gb的空间。该空间不可用,因为您无法创建一个物理分区来覆盖它(扩展分区sda3无法增长,因为其范围被阻止sda4):

[SDA3...(sda5)...| FREE    ][...sda4...][ UNREACHABLE SPACE ]end-of-disk

恢复不可用空间的解决方案

恐怕没有痛苦。根据几何图形,可以删除sda4并注释其边界。然后增长sda3以包括整个磁盘(相同的开始,1258291200,但结束于磁盘的结尾),或者删除它并以相同的开始和最大结尾重新创建。现在,您可以sda6在内部创建一个分区sda3,并使其在圆柱体1300236288之前的圆柱体处结束。这将占据现有的现有可用空间sda3。最后,您在内部创建了一个分区sda3,它将是sda7,告诉系统它从1300236288扩展到1709836287,类型为7。

如果您不格式化该分区,则内容将保持原样,并且它是有效的Windows分区。它是

当然,如果出现问题,您将丢失所有数据。物理分区(就像Windows现在是sda4)和物理内部逻辑分区(一旦变成sda7)就不一定要混合使用。有些工具会拒绝创建它们。我建议在一个稀疏文件(文件本身实际上只有几GB)或外部磁盘中创建的相同大小的虚拟磁盘上进行测试。

另一种可能更安全的方法是删除sda5(只是交换)和sda3sda4参数移动到sda3(这可能意味着使用旧参数删除sda4和重新创建),这将使插槽空闲(中间有一个“孔”)磁盘)。大多数BIOS允许出现乱序分区表。同样,这不需要复制任何内容。现在已经成为并且仍然是物理分区,因此其几何形状最好与分区工具的假设相符。sda3sda4sda4sda4sda3

当然的了推荐的全部是备份和最安全的方式(最慢)的所有分区,格式化它们所有,并具有后恢复它们“重新定位”他们正确,与去年扩展分区,并占据整个剩余硬盘。这样将摆脱sda3内的可用空间并最终回收不可用的空间,没有任何风险(如果备份正确完成-备份后检查它。我曾经备份到有故障的外部磁盘,该磁盘在我死后就死了)恢复。一点也不有趣)。


0

除了已经讲过的所有含义之外,我认为最轻松的解决方案是在最后的大区域中具有交换空间,并在中间添加空白空间/home

为此,您必须

  • 交换文件一经使用,请立即删除它,以及包含它的扩展分区
  • 扩展它,sda2使其包含完整的空白空间(您必须删除并重新创建它)。
  • 重新创建扩展分区以sda3容纳它,并使用它来容纳所需的任意数量的分区(一定范围内)。

使用,这很容易完成cfdisk,因为它可以动态处理扩展分区。但是请注意sda2保持其起始LBA,否则您将丢失其内容。

扩展分区大小后,必须重新调整附带的文件系统的大小,以利用全部空间。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.