Узнайте, какое устройство петли находится позади устройства 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.