如何在 CentOS/RHEL 中更改文件系统标签

在某些情况下,磁盘的设备节点名称(/dev/sda、/dev/hda、/dev/vda 等)可能会发生变化。
例如,在交换电缆或者升级某些软件包后,sda 和 sdc 可以交换位置。
当 /etc/fstab 通过磁盘名称引用文件系统时,这会导致问题。
相反,我们可以使用文件系统标签在 /etc/fstab 文件中引用它们。
这允许我们在不使用临时块设备名称的情况下识别文件系统。

注意:如果文件系统驻留在 LVM 逻辑卷上,则不需要 UUID 和标签,就像在默认的 RHEL 安装中一样。

检查文件系统的当前标签

  1. 要找出文件系统的标签,可以使用如下所示的“blkid”命令。
# blkid /dev/sda1
/dev/sda1: LABEL="/boot" UUID="c9fdb384-19ed-4b94-b29e-23f0f566e970" TYPE="ext4"
  1. 我们还可以确定 /etc/fstab 文件中的哪个文件系统是通过它们的 LABEL 而不是实际设备名称来引用的。
    例如:
# cat /etc/fstab
LABEL="/boot"                                 /boot   ext4    defaults        1 2
UUID="80a27dc2-c309-4cc8-9ceb-3bb1a055cf3d"   /data   ext4    defaults        0 2
  1. 此外,我们还可以验证 /etc/grub.conf 中的内核 args 行是否使用了非 LVM 设备节点名称。
# grep kernel /etc/grub.conf
    kernel /vmlinuz-2.6.18-308.el5 ro root=/dev/vda2
on  it road.com

在线更改文件系统标签

e2label 命令可用于设置/更改 ext2. ext3 和 ext4 文件系统上的标签。
使用该命令的语法很简单:

# e2label
Usage: e2label device [newlabel]

例如,要将分区 /dev/sda1 的标签更改为 /boot,请使用以下命令:

# e2label /dev/sda1 /boot

修改现有标签时,请确保更新对 /etc/fstab 和 /etc/grub.conf 中旧标签的任何引用,并相应地修改它们。

# grep LABEL /etc/grub.conf
kernel /vmlinuz-2.6.18-164.el5 ro root=LABEL=/
# grep LABEL /etc/fstab
LABEL=/                /         ext3    defaults        1 1
LABEL=/boot            /boot     ext3    defaults        1 2

关于交换设备的说明

要添加/更改交换分区的标签,必须使用“swapoff [DEVICE]”关闭它们并使用“mkswap -L [LABEL] [DEVICE]”重新制作,然后使用“swapon [DEVICE]”重新打开。
交换 UUID 仅在 RHEL6 及更高版本中可用。
有关更多详细信息,请参阅 mkswap 手册页。

# man mkswap
日期:2020-09-17 00:13:12 来源:oir作者:oir