6. 标签

在 Linux 中,硬盘被称为设备,而设备是位于/dev目录下的伪文件。例如,第二个 SCSI 驱动器的第一个分区是/dev/sdb1。如果被称为/dev/sda的驱动器从链中移除,那么后面的分区会在重启时自动重命名为/dev/sda1

6.1. 卷标

卷标使得分区能够保留一致的名称,而无需考虑它们连接到哪里,以及连接了什么其他设备。 标签对于 Linux 卷不是强制性的。 每个标签的最大长度为 16 个字符。

有三个工具可以创建卷标:mke2fs、tune2fs 和 e2label。

6.1.1. 简单调用

e2label /dev/hdb1 pubsw

tune2fs -Lpubsw /dev/hdb1

这两个命令中的任何一个都会将第二个驱动器的第一个分区标记为 "pubsw"。 即使驱动器移动到另一个控制器甚至另一台计算机,该标签也与该特定分区保持关联。

mke2fs pubsw /dev/hdb1

mke2fs -Lpubsw /dev/hdb1

将执行与前两个命令相同的操作 - 在它们创建文件系统之后。 这意味着最后两个命令中的任何一个都将删除分区中的任何现有数据。

6.1.2. 如何使用

这是一个 fstab 示例。 这是一个位于 /etc 中的文本文件,通常在操作系统安装期间设置。 它描述了每个分区将挂载到哪里,以及如何挂载。 当您添加/删除设备时,您可以通过实用程序或手动修改它。

LABEL=/        /                    ext3    defaults        1 1
LABEL=/boot    /boot                ext2    defaults        1 2
none           /dev/pts             devpts  gid=5,mode=620  0 0
none           /dev/shm             tmpfs   defaults        0 0
LABEL=HOME     /home                ext3    defaults        1 2
none           /proc                proc    defaults        0 0
none           /sys                 sysfs   defaults        0 0
LABEL=/usr     /usr                 ext3    defaults        1 2
/dev/hdc1      /k-space             ext3    defaults        1 2
/dev/hda6      swap                 swap    defaults        0 0
/dev/hdd       /media/cdrecorder    auto    pamconsole,ro,exec,noauto,managed 0 0
/dev/fd0       /media/floppy        auto    pamconsole,exec,noauto,managed 0 0

最左边的列列出了设备,第二列列出了挂载点。 此示例包含设备和标签的混合。 第二个控制器的主驱动器始终挂载在/k-space。 标签为 "HOME" 的分区始终挂载在/home,无论它在哪个驱动器上或哪个分区号。 请注意,允许使用挂载点作为标签,例如 "/usr"。

6.2. 设备标签

devlabel 是一个创建指向设备的符号链接的脚本。 例如,

devlabel -d/dev/hdb1-s/dev/home

将创建一个从/dev/hdb1/dev/home的链接。 关键是,它存储了/dev/hdb1上的硬件的唯一标识符,并将该标识符与您在 /etc/sysconfig/devlabel 中指定的链接名称一起存储。 如果硬件稍后移动到/dev/hdc1,它将查询其唯一标识符(使用 /usr/bin/partition_uuid),将其与 /etc/sysconfig/devlabel 中的条目匹配,并再次链接到/dev/home.