$ cat /proc/partitions
major minor #blocks name
8 0 976762584 sda
8 1 99998720 sda1
8 2 1 sda2
8 3 103561216 sda3
8 4 291514368 sda4
8 5 1998848 sda5
8 16 31506432 sdb
8 17 31505439 sdb1
出力から物理ディスク ( /dev/sda
) と論理ディスク ( )を区別したい。/dev/sda1
/proc/partitions
- 私が見る簡単な方法の1つは、整数で終わるかどうかを正規表現パターンで確認することです
- 私のマシンの出力を見ると、すべてのエントリ
sda
よりもマイナー値が最小ですsdaN
- の存在を確認するので、(失敗する) ディレクトリと(成功する) ディレクトリ
/sys/block/[NAME]
を読み込もうとします。/sys/block/sdaN
/sys/block/sda
どれが信頼できるかわかりませんが、他に方法はありますか?
また、次のようなツリー構造を確実に作成するにはどうすればよいですかsda : {sda1, sda2, sda3, sda4, sda4}, sdb : {sdb1}
- その名前だけで
- マイナー番号による
- もう一度調べて
/sys/block
- 位置順 (sda1 は常に sda の後に来ることが確認されていますか? たとえば、論理パーティションのエントリは常に物理ディスクのエントリの後に来るのでしょうか?)