删除分区后分区标签会发生什么变化?

删除分区后分区标签会发生什么变化?

如果删除单个分区,所有剩余分区标签会发生什么情况?
例如,如果我有一个如下所示的布局:

/dev/sda1
/dev/sda2
/dev/sda3
/dev/sda4
/dev/sda5

如果我删除 /dev/sda2 将 /dev/sda3、/dev/sda4 和 /dev/sda5 “移动”它们的数字,我会得到这个:

/dev/sda1
/dev/sda2
/dev/sda3
/dev/sda4

或者“间隙”会保留在那里而不对标签进行任何更改,给我这个:

/dev/sda1
/dev/sda3
/dev/sda4
/dev/sda5

答案1

传统上,x86 硬件上的 Linux 使用MSDOS分区表。在这种情况下,删除/dev/sda2不会将任何编号较高的分区向下移动,因为主分区的作用就像“插槽”:您可以按照您喜欢的任何顺序使用它们,并且删除一个分区不会影响任何其他分区。

如果您既是sda{1-7}扩展sda4分区又sda{5-7}是该扩展分区内的逻辑分区,则删除sda6 降档sda7。逻辑分区在这方面的行为只是不同。

新版本的 Linux 正在切换到GPT 分区表相反,尽管这是一个缓慢的过程,因为有局限性防止此时批量转换。

在 GPT 情况下,您无需使用扩展分区即可在单个磁盘上获得超过 4 个分区,并且与 MSDOS 主分区一样,GPT 分区号的工作方式类似于插槽。您可以从范围中间删除分区,只留下一个空位,现有分区保留其编号。如果您随后创建一个新的,它就会填补该漏洞。

然而,您的问题询问的是分区标签,到目前为止我所讨论的一切都与标签无关。从 Linux 中使用的意义上来说,分区标签是文件系统的属性,而不是分区表的属性。它们的存在是为了防止设备名称的更改导致安装文件系统出现问题。通过使用文件系统标签,您不必担心设备名称更改,因为您是按标签而不是设备名称安装分区。这在 USB 等情况下特别有用,其中设备命名方案是动态的,并且部分取决于自上次重新启动以来之前插入的内容。

Linuxmkfs.*程序通常使用-L标志来指定标签。

要按标签而不是按设备名称挂载分区,请LABEL=mypartname在 的第一列中使用/etc/fstab。如果您检查当前的/etc/fstab,您可能会发现已经有分区以这种方式安装。 Linux GUI 安装程序通常会为您提供方便。

您也可以通过标签交互地挂载文件系统,方法是将标签传递给-Lto mount(8)

GPT 确实允许您命名分区,但我不知道它与上面讨论的任何内容有任何关系。

编辑:使用 GPT 确实得到的一件事与这里相关,是每个分区的唯一标识符,称为 UUID。它们的工作方式与标签类似,但在几个方面有所不同:

  1. UUID 是自动分配的伪随机数,而不是您自己选择的逻辑名称。

  2. 您可以通过 UUID 而不是通过标签来-U使用-L分区。mount(8)

  3. 您使用UUID=big-ugly-hex-number而不是LABEL=mynicelabelin /etc/fstab

  4. 它们是分区的属性,而不是文件系统的属性,因此只要您可以使用 GPT,它们就可以与任何文件系统一起使用。一个很好的例子是 USB 记忆棒上的 FAT32 分区:FAT32 没有文件系统标签,并且由于它位于 USB 记忆棒上,因此您无法可靠地预测/dev/sd*它将获得哪个名称。

相关内容