找出哪个循环设备位于开发映射器块设备后面

mil*_*luz 5 linux loop-device dmcrypt

我正在将 cryptsetup 与环回设备一起使用。我正在寻找一种方法,在给定设备映射的情况下,识别该设备使用哪个环回设备。

即通过 /dev/mapper/some_mapping 操作得到 /dev/loop1

如何才能做到这一点?

小智 6

我知道,这是一个古老的话题,但这个答案可能对未来几代脚本程序员有用。

所有设备都可以显示

$ losetup -a

/dev/loop0: [2065]:25 (/mnt/live/memory/data/slax/01-core.sb)
/dev/loop1: [2065]:26 (/mnt/live/memory/data/slax/02-xorg.sb)
/dev/loop2: [2065]:27 (/mnt/live/memory/data/slax/03-kdeps.sb)
(...)
Run Code Online (Sandbox Code Playgroud)

显示单个设备(假设某人感兴趣02-xorg.sb

$ losetup -j /mnt/live/memory/data/slax/02-xorg.sb

/dev/loop1: [2065]:26 (/mnt/live/memory/data/slax/02-xorg.sb)
Run Code Online (Sandbox Code Playgroud)

现在,设备名称/dev/loop1位于第一个字段/列中(如果我们用空格分隔行)。要提取设备名称,可以使用awk 。只需记住用替换删除 ':'

$ losetup -j /mnt/live/memory/data/slax/02-xorg.sb | awk '{sub(/:/,"",$1); print $1}'

/dev/loop1
Run Code Online (Sandbox Code Playgroud)


小智 0

cryptsetup status some_mapping打印出一个device条目,所以我认为这适合您的情况(不确定/dev/mapper不使用时更一般的问题cryptsetup)。