Linuxコンピュータに接続されているすべてのストレージデバイスを探す

Linuxコンピュータに接続されているすべてのストレージデバイスを探す

マウントするかどうかにかかわらず、特定のシステムに接続されているすべての書き込み可能なストレージデバイスを見つける必要があります。

これを行う愚かな方法は、/dev書き込み可能なデバイス(hd *とsd *)に対応するすべてのエントリを試すことです。

より良い解決策はありますか?それともこれに固執すべきですか?

答え1

人だけが正しいなら詰まったlsblk広く使用されているutil-linuxパッケージで利用可能なストレージデバイス:

$ lsblk -o 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

利用可能な他の多くの列でスクリプトに適しています。

答え2

出力を再確認したり、クラスのデバイスに関する詳細をlshw抽出したりできます(他のデバイスも可能です)。クラスは、ストレージコントローラ、scsi、sata、sasなどの詳細を提供します。disktapestorage

例えば

lshw -class disk -class tape

この-shortオプションは、優れた簡潔な要約を提供します。たとえば、私の家のzfsonlinuxサーバー/ワークステーション/実験ボックスには(残念ながらテープデバイスはありません):

# lshw -テープのようなディスクのようなストレージのような短い
ハードウェアパスデバイスクラスの説明
================================================== =======
/0/100/4/0 ストレージ JMB362 SATA コントローラ
/0/100/5/0 scsi10 ストレージ JMB362 SATA コントローラ
/0/100/5/0/0.0.0 /dev/sdc ディスク 120GB Patriot Wildfire
/0/100/b/0 scsi1 ストレージ SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon]
/0/100/b/0/0.0.0 /dev/sdd ディスク 1TB WDC WD10EARS-00Y
/0/100/b/0/0.1.0 /dev/sde ディスク 1TB WDC WD10EACS-00Z
/0/100/b/0/0.2.0 /dev/sdf ディスク 1TB WDC WD10EACS-00Z
/0/100/b/0/0.3.0 /dev/sdg ディスク 1TB ST31000528AS
/0/100/b/0/0.4.0 /dev/sdh ディスク 1TB ST31000528AS
/0/100/b/0/0.5.0 /dev/sdi ディスク 1TB ST31000528AS
/0/100/b/0/0.6.0 /dev/sdj ディスク 1TB ST31000528AS
/0/100/11 scsi2 ストレージ SB7x0/SB8x0/SB9x0 SATA コントローラ [AHCI モード]
/0/100/11/0 /dev/sda ディスク 128GB Patriot Torqx 2
/0/100/11/1 /dev/sdb ディスク 1TB ST31000528AS
/0/1 scsi11 ストレージ     
/0/1/0.0.0 /dev/sdk ディスク 1967MB SCSI ディスク
/0/1/0.0.1 /dev/sdl ディスク SCSI ディスク
/0/1/0.0.2 /dev/sdm ディスク SCSI ディスク
/0/1/0.0.3 /dev/sdn ディスク SCSI ディスク
/0/2 scsi66 ストレージ     
/0/2/0.0.0 /dev/sdo ディスク SCSI ディスク
/0/3 scsi67 ストレージ     
/0/3/0.0.0 /dev/sdp ディスク 4057MB SCSI ディスク

/ 0 / 1デバイスは実際にUSBカードリーダー(スロットの1つに2 GBのSDカードが接続されている)ですが、/ 0 / 2デバイスは充電用に接続されたAndroid携帯電話です。 0/3デバイスは4GB USBフラッシュドライブです。

lshwプレーンテキスト、html、xml、およびjson出力を生成できます。ハードウェアの詳細をsqliteデータベース形式にダンプすることもできます。

Debianと他のほとんどのディストリビューション用にパッケージ化されています。ホームページとソースhttp://ezix.org/project/wiki/HardwareLiSter

答え3

このコマンドを試してください

ls -l /dev /dev/mapper |grep '^b'

システムのすべてのブロックデバイスを一覧表示します。

答え4

lsblkすべてのブロックストレージデバイスが一覧表示されます。

fdisk -lリストされているすべてのデバイスのすべてのパーティションをリストします。/proc/partitions

lshw -shortシステムのすべてのハードウェアに関する情報を提供します(FireWireを除く)。

関連情報