/dev/dm-1 是分区还是整个块设备?

Loi*_*ary 10 linux-kernel devices device-mapper

有没有办法确定/dev/dm-1是块设备分区还是整个块设备?如果/dev/dm-1是分区,有没有办法找出对应的整个块设备的路径?

Ale*_*ies 12

每个分区都是一个“完整的”块设备。您可以对任何分区进行子分区,然后再次对其进行子分区,然后再...

在您的示例中dm-1,可以映射到任何东西,原始设备、dmcrypt 设备抽象、MD-RAID 支持、多路径、dm-crypted 卷组上的逻辑卷。

该数字dm-X基本上只是设备初始化时的任意空闲数字。在运行期间块设备层没有太多变化的主机上,这些数字只是在启动时按自然顺序分配。

但是大多数设备映射器机制还允许您为映射指定别名。退房ls -l /dev/mapper/

然后,您可以使用lsblk(List block-devices)来可视化块设备之间的层次关系。下面的缩短示例输出:

$ 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
Run Code Online (Sandbox Code Playgroud)


Til*_*idt 5

lsblk命令是显示关于块设备包括映射器设备进入该装置,其中的信息的一种方便的方法。


Loi*_*ary 5

对于一个给定的 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
Run Code Online (Sandbox Code Playgroud)