有没有办法确定/dev/dm-1
是块设备分区还是整个块设备? 如果/dev/dm-1
是分区,有没有办法找出相应的整个块设备的路径?
答案1
每个分区都是一个“整体”块设备。您可以对任意分区进行子分区,然后再次对其进行子分区,如此反复...
在您的示例中,dm-1
可以映射到任何东西,原始设备、dmcrypt 设备抽象、MD-RAID 支持的逻辑卷、多路径、dm 加密卷组。
在设备初始化时,该数字dm-X
基本上只是一个任意的空闲数字。在运行时块设备层没有太多变化的主机上,这些数字在启动时按自然顺序分配。
但大多数设备映射器机制还允许您为映射指定别名。请查看ls -l /dev/mapper/
。
然后,为了直观地显示块设备之间的层次关系,您可以使用lsblk
(列出块设备)。以下是简短的示例输出:
$ lsblk /dev/sdb
NAME MAJ:MIN TYPE
sdb 8:128 disk
├─sdb1 8:129 part
└─sdb5 8:133 part
└─crypto (dm-0) 252:0 crypt
├─ubuntu-root (dm-1) 252:1 lvm
└─ubuntu-swap (dm-2) 252:2 lvm
答案2
这lsblk命令是一种显示有关块设备信息的便捷方式,包括哪个设备映射器设备到哪里。
答案3
对于给定的 dm-x,主分区为 M,次分区为 m,则存在一个对应的/sys/dev/block/M:m/dm/uuid
文件。如果文件内容uuid
以 开头part
,则可以安全地假设它是一个分区。相应的整个设备位于 中/sys/dev/block/M:n/slaves/
。例如:
[centos@try ~]$ cat /sys/dev/block/253:0/dm/uuid
mpath-353333330000007d0
[centos@try ~]$ cat /sys/dev/block/253:1/dm/uuid
part1-mpath-353333330000007d0
[centos@try ~]$ ls -l /sys/dev/block/253:1/slaves
total 0
lrwxrwxrwx. 1 root root 0 15 août 22:06 dm-0 -> ../../dm-0
答案4
/dev/dm-1 代表“设备映射器 n.1”。
基本上,它是使用内核嵌入设备映射器层划分出来的逻辑单元。从用户空间应用程序的角度来看,它是一个 RAW 块设备。
使用pvs
我们lvdisplay
应该能够告诉您支持它的具体物理磁盘/分区。