web-dev-qa-db-ja.com

どのループデバイスが開発マッパーブロックデバイスの背後にあるかを調べます

ループバックデバイスでcryptsetupを使用しています。デバイスマッピングを前提として、このデバイスで使用されているループバックデバイスを特定する方法を探しています。

つまり、/ dev/mapper/some_mappingの操作の結果として/ dev/loop1を取得します

これはどのように行うことができますか?

ありがとう。

3
miluz

それは古代のトピックですが、答えは将来の世代のスクリプトプログラマーに役立つことを願っています

旅行中の参照された質問に対する少なくともいくつかの答えを見つけました:

すべてのデバイスを表示できます

$ 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

3
cieply

cryptsetup status some_mappingdeviceエントリを出力するので、それでうまくいくと思います(cryptsetupを使用しない場合のより一般的な/dev/mapperの質問についてはわかりません)。

0
ws_e_c421

losetupは、rootとして使用されている場合、またはグループディスクにいる場合にデバイス番号を表示します(ループデバイスにはioctlが必要です)。

他の回答の1つ(つまり2065)に表示される数値は、256で除算して改造することで分解できます。 2065/256 = 8(scsiデバイス)および2065%256 = 17(/ dev/sdb1)。

0
Xennex81