为什么 /dev 中有符号链接?(LVM)

gas*_*ter 3 lvm symlink devices

[root@SERVER ~] ls -la /dev/vg/root
lrwxrwxrwx 1 root root 17 2012-10-28 10:29 /dev/vg/root -> ../mapper/vg-root
[root@SERVER ~] 
Run Code Online (Sandbox Code Playgroud)

问题:为什么会有符号链接?为什么对于 LVM 中的普通 LV,/dev 中不能只有 1 个条目??(操作系统:ubuntu 10.04lts)

Sté*_*las 7

在 Linux 上,LVM 是一个使用内核设备映射器的卷管理系统。基本上,物理卷包含描述如何映射物理卷上的数据块以创建设备映射器块设备的元数据。

LVM 不是唯一使用设备映射器的东西,您可以使用 手动创建映射卷dmsetup,LUKS 是另一个使用设备映射器的系统,等等。

设备映射器设备被赋予一个名称。按照惯例,LVM 使用“vg-lv”并像任何块设备一样具有主设备号和次设备号。该设备的名称(如在什么似乎/sys/class/block)是dm-n其中ñ是设备次要编号。

为方便起见,udev/dev/mapper使用与其关联的设备映射器名称创建了一个符号链接。如果该设备映射器设备也恰好是 LVM 逻辑卷,那么 LVM 子系统还会向其添加 /dev/vg/lv 符号链接。

为方便起见,其他块设备也会发生类似的事情,您在其中拥有/dev/disk/by-id, /dev/disk/by-path... 。

因为dm-1, dm-10... 对于同一设备从一次启动到下一次启动可能会有所不同。使用仅取决于设备的永久特征(例如存储在 LVM 标头中的卷名)而不是仅由内核关心的次要编号的不同名称很方便。