Я использую cryptsetup с устройствами обратной связи. Я ищу способ, учитывая сопоставление устройств, определить, какое устройство обратной связи используется этим устройством.
т.е. получить / dev / loop1 в результате операции с / dev / mapper / some_mapping
Как это может быть сделано?
это древняя тема, я знаю, но ответ может быть полезен для будущего поколения программистов сценариев
Я нашел хоть какой-то ответ на упомянутый вопрос в путешествии:
все устройства могут отображаться с
$ 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
losetup показывает номер устройства, когда он используется как root или когда вы находитесь на групповом диске (на устройстве цикла требуется ioctl).
Числа, которые вы видите в одном из других ответов (например, 2065), можно разложить путем деления и модификации на 256, т.е. 2065/256 = 8, что является устройством scsi, и 2065% 256 = 17, то есть / dev / sdb1.
cryptsetup status some_mapping
распечатывает device
запись, поэтому я думаю, что это сработает для вашего случая (не уверен в более общем /dev/mapper
вопрос, когда не использую cryptsetup
).