How to list all hard disks in linux from command line
Hard Disk、Hard Drive、Disk Drive、または Hard Disk Drive は、通常、コンピュータ内のデジタル情報を保存および取得するためのデータ記憶装置 (ハードウェア デバイス) の名前です。
これらのハードディスクは、異なるファイルシステムをホストしたり、ファイルシステムやファイルを分離するために、さらに複数の論理的なコンテナに分割することができます。 これらはパーティションと呼ばれ、他のディスクやパーティションに影響を与えることなく、独立してマウントすることができます。
システム上のハードディスクは、カーネル内のさまざまなデバイスドライバーによって検出および/または識別され、起動時に固有のデバイス ID が割り当てられ、後でマウントして読み取ることができるようになります (これはすべての仕組みを単純化しすぎですが、この記事では十分です)。
ハードディスクは、それらと対話するために使用されるインターフェイスに基づいて区別することができます。 一般的に使用されているディスクの種類には、SCSI (Small Computer System Interface)、ATAまたはIDE (Advanced Technology Attachment)、SATA (Serial ATA)、SAS (Serial Attached SCSI)などがあります。 先に述べたように、物理的なハードディスクには、起動時に固有のIDが割り当てられます。
Linux 環境では、システムにマウントされているディスクの一覧を表示するために、いくつかの異なるコマンドを使用できます。 ディスク自体ではなくファイルシステムを表示しますが、システムで利用可能なディスクを表示するには良いユーティリティです。
dfで-hまたは-human-readableオプションを使用すると、ディスク使用量を人間が読める形式で出力することができます。
lsblk
lsblkコマンドは、ブロックデバイスをリストアップするコマンドです。 sysfs ファイルシステムと共に udev データベースからデータを読み込み、利用可能な、または指定されたすべてのブロックデバイスのレポートを出力します。
引数を指定しないで lsblk コマンドを実行すると、ブロックデバイスがツリー形式で表示されます。 ここでもsda、sdbなどの名前を確認してください。
lsblkコマンドで使用できる便利なコマンドラインオプションがいくつかあります。 -dまたは-nodepsは、パーティションではなく、デバイスを出力します。
lshw
もうひとつのよく使われるユーティリティは lshw で、これはハードウェアに関する詳細な情報を表示することができます。
bash$ lshw -class disk
上記のコマンドは、システム上のすべてのディスクを一覧表示します。 また、ストレージ コントローラーも出力したい場合は、ストレージ クラスを指定することができます。 また、-shortオプションを使用することで、出力の冗長性をさらに減らすことができます。short オプションを使用することで、さらに出力の冗長性を減らすことができます
bash$ lshw -class disk -class storage -short
blkid
先に述べたlsblkコマンドは、blkidコマンドよりも優れており、推奨されるオプションです。
blkid は、ブロック デバイスに関するいくつかの異なる属性を出力します。
bash$ blkid
fdisk
fdisk は人気のあるコマンドで、主にパーティション テーブルの操作に使用されます。 パーティションテーブルからすべてのパーティションをリストアップしたり、利用可能なデバイスを探したりするのに使えます。
bash$ fdisk -l
出力にこのようなものを求めているのではないでしょうか。
fdiskの上に構築された、より多くのオプションや機能を持つパーティションテーブル操作ツールが他にもいくつかあります。
parted
fdisk と同様に、parted もまたパーティション テーブルを操作するユーティリティです。 ここでも、-list または -l コマンドライン オプションを使用して、デバイスまたはディスクとそのすべての情報を出力することができます。
bash$ parted -l
Model: ATA ST3160815AS (scsi)
Disk /dev/sda: 160GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
/proc/ファイル
もう一つの初歩的な方法は、/proc/partitions/フォルダーの内容をプリントアウトすることです。 これにより、システム内のすべての既知のデバイスとパーティションが表示されます。
bash$ cat /proc/partitions
マイナー「0」または /dev/sda 形式に準拠した名前を探します。
lsscsi
SCSIデバイスしかないことがわかっている場合や、SCSIディスクに関する情報だけが必要な場合は、lsscsiコマンドを使用することができます。
bash$ lsscsi
どのディストリビューションであっても、上記のコマンドのうち少なくとも 1 つを使用して、システム上のディスクをリストアップすることができるはずです。