Linux機に接続されているHDDを把握する方法

自分用の備忘録に近いですが、LinuxでHDDを調べるコマンドを集めてみました。
もう少し分かりやすくまとめたい所ですが、時間が無いのでとりあえずです。

/dev/以下を見て、どんなデバイスがあるかを知る

/dev/hda
IDEプライマリーのマスターディスク
/dev/hda1
hdaの第1基本パーティション*1
/dev/hdb
IDEプライマリーのスレーブディスク
/dev/hdb5
hdbの第1論理パーティション*2
/dev/hdc
IDEセカンダリーのマスターディスク
/dev/hdd
IDEセカンダリーのスレーブディスク
/dev/sda
SATA or SCSI*3
/dev/md0
ソフトウェアRAID
$ ls -l /dev/hd*
brw-rw---- 1 root cdrom 3, 0 2008-12-20 04:58 /dev/hda

/dev/hdaは光ディスクドライブという事がわかります。
これはUbuntu 7.10での結果です。

ディストリビュージョンによる?
$ ls -l /dev/hd*
brw-rw---- 1 root disk 22, 0 1220 05:09 /dev/hdc

/dev/hdcも光ディスクドライブの筈ですが、diskと表示されます。
これはCentOS 5.1での結果です。

$ ls -l /dev/sd*
brw-r----- 1 root disk 8, 0 1220 14:02 /dev/sda
brw-r----- 1 root disk 8, 1 1220 05:09 /dev/sda1
brw-r----- 1 root disk 8, 2 1220 14:02 /dev/sda2

SATAです。
/dev/sda1とsda2の2つにパーティションが分割されています。

$ ls -l /dev/md*
brw-r----- 1 root disk 9, 0 1220 05:09 /dev/md0

ソフトウェアRAIDを組んでいないけど、/dev/md0があります。

dmesgでHDDのデバイス名を探す

PATAの場合
$ dmesg | grep hd

fdiskを使う

# /sbin/fdisk -l /dev/sda

Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        1044     8281507+  8e  Linux LVM

2つのパーティションがあり、/dev/sda2はLVMで管理されている事がわかります。

dfを使う

$ df
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/mapper/VolGroup00-LogVol00
                       7491040   4810512   2293868  68% /
/dev/sda1               101086     23543     72324  25% /boot
tmpfs                   257744         0    257744   0% /dev/shm

LVMが/にマウントされ、/dev/sda1が/bootにマウントされています。

hdparmを使う

# /sbin/hdparm -i /dev/hdc

/dev/hdc:

 Model=VMware Virtual IDE CDROM Drive, FwRev=00000001, SerialNo=10000000000000000001
 Config={ SoftSect Fixed Removeable DTR<=5Mbs DTR>10Mbs nonMagnetic }
 RawCHS=0/0/0, TrkSize=0, SectSize=0, ECCbytes=0
 BuffType=unknown, BuffSize=32kB, MaxMultSect=0
 (maybe): CurCHS=0/0/0, CurSects=0, LBA=yes, LBAsects=0
 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio1 pio2 pio3 pio4
 DMA modes:  sdma0 sdma1 sdma2 mdma0 mdma1 mdma2
 UDMA modes: udma0 udma1 *udma2
 AdvancedPM=no
 Drive conforms to: ATA/ATAPI-4 T13 1153D revision 17:  ATA/ATAPI-1 ATA/ATAPI-2 ATA/ATAPI-3 ATA/ATAPI-4

 * signifies the current active mode

/dev/hdcはCDROMドライブという事がわかります。

*1:基本パーティションは1〜4

*2:論理パーティションは5から始まります。

*3:Linuxカーネル 2.4系だとSATAはhdaになるそうです。