まず確認すべきコマンド(結論から)
サーバーに接続されているディスクやSCSIデバイスを確認したい場合、現代のLinuxでは lsblk と lsscsi の2本が最短の答えになります。
# ブロックデバイスの全体像を確認(ディスク・パーティション・マウント先を一覧表示)
lsblk
# SCSIバスに接続されたデバイスの詳細一覧(ベンダー・型番・デバイスファイル)
lsscsi
lsscsi はディストリビューションによってはデフォルト未インストールの場合があります。その際は以下でインストールしてください。
# RHEL / Rocky Linux / AlmaLinux / CentOS Stream 系
sudo dnf install lsscsi
# Ubuntu / Debian 系
sudo apt install lsscsi
lsblkでブロックデバイスの全体像を把握する
lsblk はカーネルのsysfsを参照してブロックデバイス構成をツリー形式で出力します。ディスク交換・増設後の確認や、パーティション構成の把握に使う機会が多いコマンドです。追加パッケージは不要で、util-linux に同梱されているため、どのディストリビューションでもそのまま使えます。
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 500G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 499G 0 part /
sdb 8:16 0 2T 0 disk
└─sdb1 8:17 0 2T 0 part /data
nvme0n1 259:0 0 512G 0 disk
└─nvme0n1p1 259:1 0 512G 0 part /opt
ディスクのベンダー・型番・シリアル番号も同時に確認したい場合は -o オプションで出力列を指定します。
# デバイスファイル・サイズ・型番・シリアル・マウント先を一覧表示
lsblk -o NAME,SIZE,MODEL,SERIAL,MOUNTPOINTS
NVMeディスクはSCSIバスを経由しないため lsscsi に表示されないことがありますが、lsblk なら nvme0n1 のような形式で一括確認できます。ストレージ構成を俯瞰する際はまず lsblk から始めるのが効率的です。
lsscsiでSCSIデバイスの詳細を確認する
LinuxではSATA・SAS・USBストレージはいずれもカーネル内でSCSIサブシステムを経由します。lsscsi はそれらのデバイスをSCSIアドレス(ホスト:チャンネル:ターゲット:LUN)付きで一覧表示します。旧来の /proc/scsi/scsi と同等の情報をより見やすい形式で取得できます。
$ lsscsi
[0:0:0:0] disk ATA Maxtor 6L160M0 BACE /dev/sda
[1:0:0:0] disk ATA WDC WD20EZRX 80.0 /dev/sdb
[2:0:0:0] cd/dvd HL-DT-ST BD-RE BH10NS30 1.00 /dev/sr0
各列の読み方は以下のとおりです。
[ホスト:チャンネル:ターゲット:LUN] デバイスタイプ ベンダー 型番 リビジョン デバイスファイル
ホスト番号はコントローラーに対応しているため、複数のSASコントローラーやHBAが搭載されているサーバーでは、どのコントローラーにどのディスクが接続されているかを判断できます。-v オプションで詳細情報を、-g オプションでsysfsのデバイスパスも合わせて表示できます。
# 詳細情報付きで表示
lsscsi -v
# sysfsのデバイスパスも含めて表示
lsscsi -g
sysfsとudevadmでデバイス属性を深掘りする
ベンダー・型番・シリアル番号・ファームウェアリビジョンをスクリプトから取得したい場合は udevadm info が確実です。udevadmはsystemdに統合されており、現代のLinuxディストリビューションであればインストール不要で使えます。
# /dev/sda の全属性を表示
udevadm info --query=all --name=/dev/sda
# ベンダー・型番・シリアルだけを抽出する例
udevadm info --query=all --name=/dev/sda | grep -E 'ID_VENDOR|ID_MODEL|ID_SERIAL'
sysfsを直接参照する方法もあります。デバイスファイル名(sda など)がわかっていれば以下のパスで各属性を読み取れます。
# SCSIデバイスのベンダー・型番をsysfsから直接確認
cat /sys/class/block/sda/device/vendor
cat /sys/class/block/sda/device/model
# ファームウェアリビジョン
cat /sys/class/block/sda/device/rev
旧来の /proc/scsi/scsi ファイルも現在のカーネルで読み取れますが、SCSIサブシステム経由のデバイスのみが対象でNVMeは反映されません。網羅性の面ではsysfsやudevadmを使う方が適切です。
# レガシーな確認方法(SCSIサブシステム経由のデバイスのみ)
cat /proc/scsi/scsi
仮想環境・クラウドでの注意点
仮想マシン(VMware・KVM・Hyper-Vなど)ではいくつか注意が必要です。
仮想ディスクのデバイス順序は保証されない:ゲストOSの再起動やハイパーバイザーの操作によって /dev/sda と /dev/sdb の順序が入れ替わることがあります。ディスクの特定には名前に依存せず、/dev/disk/by-id/ や /dev/disk/by-uuid/ のシンボリックリンクを使うのが安全です。
# 安定したデバイス識別子の一覧を確認
ls -l /dev/disk/by-id/
ls -l /dev/disk/by-uuid/
NVMeデバイスはSCSIバスを使わない:クラウドインスタンスや最新のベアメタルサーバーではNVMeディスクが標準です。lsscsi に表示されない場合でも lsblk には nvme0n1 形式で出力されます。NVMeデバイスの詳細は nvme list コマンド(nvme-cli パッケージ)で確認できます。
# nvme-cli のインストール
sudo dnf install nvme-cli # RHEL系
sudo apt install nvme-cli # Debian系
# NVMeデバイスの一覧表示
sudo nvme list
ある運用現場では、障害対応時に「lsscsi に出ないディスクが存在する」と混乱した事例がありました。原因はNVMeディスクの増設で、lsblk では正常に認識されていました。複数のコマンドを組み合わせて確認する習慣が実務では重要です。
「コマンドは打てる。次は”現場で通用する型”を最短で身につけたい」——そんなあなたへ。
ネットの断片的なTipsをコピペするだけでは、体系的な運用スキルはなかなか積み上がりません。リナックスマスター.JPの無料メルマガ「リナマガ」では、現場で実際に使うLinuxサーバー運用の考え方を、順を追って実務目線でお届けしています。いま登録された方には、安全なサーバー構築の「型」をまとめた『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼント中です。
>> 図解60P『Linux入門マニュアル』を無料で受け取る
(メルマガ登録は10秒・いつでも解除OK)
※ 「独学の時間がもったいない」「プロから現場の技術を最短で学びたい」という本気の方には、2日で実務レベルが身につく初心者向けハンズオンセミナーもご用意しています。
