lvm,一份卷安装在 /dev/mapper,一份安装在 /dev

lvm,一份卷安装在 /dev/mapper,一份安装在 /dev

我创建了一个卷组,webserver其中包含卷homeusr

它们的创建方式相同,/etc/fstab列为

/dev/webserver/home    /home  /ext4   rw,noatime   0 0
/dev/webserver/usr     /usr   /ext4   rw,noatime   0 0

然而,mount将它们显示为

/dev/mapper/webserver-usr on /usr
/dev/mapper/webserver-home on /home

df作为

/dev/webserver/usr   999 999 999 99% /usr
/dev/mapper/webserver-home 999 999 999 99% /home

(不是真实的数字,无法复制/粘贴,并且数字无论如何都不相关)

为什么mapper有些地方显示而另一些地方不显示?

无论如何,它似乎工作得很好,只是对差异感到困惑。

答案1

/usr(或/) 与通常的区别在于/homerootfs(包括/usr)必须在启动时尽早安装。这是由 initramfs 完成的。

另一方面/home/var/www、 和您可能拥有的其他常规分区应该稍后在完整 init 系统的常规引导过程中挂载到 initramfs 之外。

因此,安装时的行为在某些细节上可能会有所不同。

例如,在我的系统上,rootfs 显示为/dev/dm-34而不是/dev/SSD/root/dev/mapper/SSD-root。这只是因为分区是由 UUID 标识的,并且该findfs实用程序在 initramfs / busybox 与完整系统 / u​​til-linux 中的实现方式不同:

# busybox findfs UUID=fa15678f-7e7e-4a47-8ed2-7cea7a5d037d
/dev/dm-34
# findfs UUID=fa15678f-7e7e-4a47-8ed2-7cea7a5d037d
/dev/mapper/SSD-root

该命令也可能返回/dev/SSD/root,具体取决于/dev设备名称与符号链接的填充方式。将符号链接方向更改/dev/SSD/root -> /dev/mapper/SSD-root为后/dev/mapper/SSD-root -> /dev/SSD/root,结果是相同的:

# busybox findfs UUID="fa15678f-7e7e-4a47-8ed2-7cea7a5d037d"
/dev/SSD/root
# findfs UUID="fa15678f-7e7e-4a47-8ed2-7cea7a5d037d"
/dev/SSD/root

我还没有查看代码如何决定选择哪个名称作为规范名称。

最后这并不重要,只要挂载了正确的文件系统,这最多只是一个表面问题。

相关内容