3 挂载存储设备 #
本章概述在挂载设备期间会使用哪些设备标识符,并提供有关挂载网络存储的细节。
3.1 了解 UUID #
UUID(全球唯一标识符)是表示文件系统的 128 位数字,在本地系统和其他系统中都是唯一的。它根据系统硬件信息和时戳(做为其种子的一部分)随机生成。UUID 通常用于唯一性标记设备。
使用非永久性的“传统”设备名称(例如 /dev/sda1
)可能会使系统在添加存储设备后无法引导。例如,如果将根 (/
) 指派给 /dev/sda1
,则在挂接 SAN 或将其他硬盘加入系统后,系统可能会将它重新指派给 /dev/sdg1
。在此情况下,需要调整启动加载程序配置和 /etc/fstab
文件,否则系统将无法引导。
默认情况下,在引导加载程序以及引导设备的 /etc/fstab
文件中会使用 UUID。UUID 是文件系统的一个属性,如果重新格式化驱动器,UUID 会更改。如果不想使用设备名称的 UUID,另一种替代方法是使用 ID 或标签识别设备。
您还可以将 UUID 用做组装与激活软件 RAID 设备的准则。当创建 RAID 时,md
驱动程序会为该设备生成一个 UUID,并将该值存储在 md
超块中。
您可以在 /dev/disk/by-uuid
目录中找到任何块设备的 UUID。UUID 项目示例如下所示:
>
ls -og /dev/disk/by-uuid/
lrwxrwxrwx 1 10 Dec 5 07:48 e014e482-1c2d-4d09-84ec-61b3aefde77a -> ../../sda1
3.2 udev 的永久设备名称 #
从 Linux 内核 2.6 开始,udev
使用永久性设备命名方式,为动态的 /dev
目录提供了一种用户空间解决方案。作为热插拔系统的一部分,在系统中添加或删除设备时会执行 udev
。
使用一个规则列表来针对特定设备属性进行匹配。udev
规则基础设施(在 /etc/udev/rules.d
目录中定义)为所有磁盘设备提供了稳定的名称,不会随识别顺序或设备所使用的连接而改变。udev
工具检查内核创建的用来根据特定总线、驱动器类型或文件系统应用命名规则的每个相应块设备。有关如何定义您自己的 udev
规则的信息,请参见 Writing
udev Rules。
除了内核提供的动态设备节点名称,udev
还会在 /dev/disk
目录中维护指向该设备的永久符号链接的类,该目录进一步细分为 by-id
、by-label
、by-path
和 by-uuid
子目录。
除了 udev
之外,其他程序(如 LVM 或 md
)也可生成 UUID,但它们不在 /dev/disk
中列出。
有关使用 udev
来管理设备的详细信息,请参见第 29 章 “ 使用 udev
进行动态内核设备管理”。
有关 udev
命令的详细信息,请参见 man 7 udev
。
3.3 挂载网络存储设备 #
对于某些类型的存储设备,需要为其配置网络并确保网络可用,然后 systemd.mount
才会开始挂载这些设备。要推迟这种设备的挂载,请将 _netdev
选项添加到每个特定网络存储设备的 /etc/fstab
文件中。示例如下:
mars.example.org:/nfsexport /shared nfs defaults,_netdev 0 0