これは、プラットフォームに大きく依存します。また、方法が異なれば、エッジ ケースの扱いも異なる場合があります (さまざまな種類の「偽の」ディスク、RAID ボリュームなど)。
最新の udev インストールでは、/dev/disk のサブディレクトリにストレージ メディアへのシンボリック リンクがあります。 、シリアル番号 (/dev/disk/by-id/) でディスクまたはパーティションを検索できます )、UUID による (/dev/disk/by-uuid )、ファイルシステム ラベル別 (/dev/disk/by-label/ ) またはハードウェア接続 (/dev/disk/by-path/) ).
Linux 2.6 では、各ディスクおよびディスクのようなデバイスは /sys/block にエントリがあります。 . Linux では黎明期から、ディスクとパーティションは /proc/partitions にリストされています。 .または、lshw:lshw -class disk を使用できます。 .
Linux は lsblk も提供します ストレージ ボリュームの素敵なツリー ビューを表示するユーティリティ (util-linux 2.19 以降、BusyBox を備えた組み込みデバイスには存在しません)。
fdisk がある場合 または disklabel ユーティリティで、どのデバイスで動作できるかを教えてくれるかもしれません.
Unix 用の Rosetta Stone には、多くの UNIX バリアントのユーティリティ名があり、特に「ハードウェア構成のリスト」と「ディスク ラベルの読み取り」の行があります。
lsblk すべてのブロック デバイスを一覧表示します。スクリプト作成に適しています:
$ lsblk -io KNAME,TYPE,SIZE,MODEL
KNAME TYPE SIZE MODEL
sda disk 149.1G TOSHIBA MK1637GS
sda1 part 23.3G
sda2 part 28G
sda3 part 93.6G
sda4 part 4.3G
sr0 rom 1024M CD/DVDW TS-L632M
lsblk util-linux パッケージに含まれているため、提案されている代替案よりもはるかに普遍的です。
どうですか
lshw -class disk