Я использую cryptsetup с устройствами закольцовывания. Я ищу способ, учитывая отображение устройства, определить, какое устройство закольцовывания используется этим устройством.
т.е. получите/dev/loop1 в результате операции на/dev/mapper/some_mapping
Как это может быть сделано?
Спасибо.
cryptsetup status some_mapping
распечатывает запись устройства
, поэтому я думаю, что это сработает для вашего случая (не уверен в более общем / dev / mapper
вопрос, когда не используется cryptsetup
).
это древняя тема, я знаю, но ответ может пригодиться будущему поколению скриптовых программистов
Я нашел хотя бы какой-то ответ на упомянутый вопрос, находясь в путешествии:
все устройства могут быть отображены с помощью
$ 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.