マウントするかどうかにかかわらず、特定のシステムに接続されているすべての書き込み可能なストレージデバイスを見つける必要があります。
これを行う愚かな方法は、/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などの詳細を提供します。disk
tape
storage
例えば
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を除く)。