Узнайте, какое устройство петли находится позади устройства dev mapper blcok

Я использую cryptsetup с устройствами loopback. Я ищу способ, учитывая сопоставление устройства, чтобы определить, какое устройство обратной связи используется этим устройством.

т.е. получить /dev/loop1 в результате операции над /dev/mapper/some_mapping

Как это может быть сделано?

Благодарю.

3 ответа

Это древняя тема, я знаю, но ответ, возможно, будет полезен для будущих поколений программистов

Я нашел хоть какой-то ответ на заданный вопрос, находясь в путешествии:

все устройства могут отображаться с

$ 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)
(...)

один с (скажем, кто-то заинтересован в `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)

теперь, как видно, устройство находится в первом поле / столбце (если разделяет строку пробелами), поэтому для ее извлечения можно использовать awk, только не забудьте удалить ":" с заменой

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

/dev/loop1

~~ Cieply

cryptsetup status some_mapping распечатывает device запись, так что я думаю, что будет работать для вашего случая (не уверен насчет более общего /dev/mapper вопрос, когда не используется cryptsetup).

Утрата показывает номер устройства, когда он используется в качестве пользователя root или когда вы находитесь на групповом диске (ioctl необходим на устройстве петли).

Числа, которые вы видите в одном из других ответов (например, 2065), могут быть разложены путем деления и модификации на 256, т.е. 2065 / 256 = 8, который является устройством SCSI, и 2065 % 256 = 17, который является /dev/sdb1.

Другие вопросы по тегам