ループバックデバイスでcryptsetupを使用しています。デバイスマッピングを前提として、このデバイスで使用されているループバックデバイスを特定する方法を探しています。
つまり、/ dev/mapper/some_mappingの操作の結果として/ dev/loop1を取得します
これはどのように行うことができますか?
ありがとう。
それは古代のトピックですが、答えは将来の世代のスクリプトプログラマーに役立つことを願っています
旅行中の参照された質問に対する少なくともいくつかの答えを見つけました:
すべてのデバイスを表示できます
$ 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
エントリを出力するので、それでうまくいくと思います(cryptsetup
を使用しない場合のより一般的な/dev/mapper
の質問についてはわかりません)。
losetupは、rootとして使用されている場合、またはグループディスクにいる場合にデバイス番号を表示します(ループデバイスにはioctlが必要です)。
他の回答の1つ(つまり2065)に表示される数値は、256で除算して改造することで分解できます。 2065/256 = 8(scsiデバイス)および2065%256 = 17(/ dev/sdb1)。