ひさびさ更新。

今回は、HDDデバイス名をdmesgコマンドで調べる時の事を考えてみます。
dmesgで出力されるメッセージは結構長いので、grepなどの検索を利用したいのですが、HDDがPATA(=IDE)接続のときと、SATA接続のときで、検索パターンを変えないといかんです。そのパターンについて以下に記述。

なお、以下の方法はLinux Kernel2.6系の話です。
Linux Kernel2.4系だと、SATAもhdaとかで認識するらしいので。

* HDDがPATAの場合
dmesg | grep hdを使います。

$ dmesg | grep hd
    ide0: BM-DMA at 0x1810-0x1817, BIOS settings: hda:DMA, hdb:pio
hda: TOSHIBA MK4025GASL, ATA DISK drive
hda: max request size: 128KiB
hda: 78140160 sectors (40007 MB), CHS=65535/16/63, UDMA(100)
hda: cache flushes supported
 hda: hda1
SCSI device sda: 40088160 512-byte hdwr sectors (20525 MB)
SCSI device sda: 40088160 512-byte hdwr sectors (20525 MB)

hda: TOSHIBA MK4025GASL, ATA DISK drive
っていうところで、型番がわかります。

* HDDがSATA接続の場合
HDDはsd~で認識されるので、dmesg | grep sd としたいところですが、
それだと型番が表示されません。とはいえ、grep sdで引っかかる行の直前に型番が表示されるので、
dmesg | grep -B 5 sd
として、grepでマッチした行の前5行分も表示すると良いでしょう。lessで見ながら検索するのもお勧め。

$ dmesg | grep -B 5 sd
ata1.00: ATA-8: Hitachi HDP725050GLA360, GM4OA52A, max UDMA/133
ata1.00: 976773168 sectors, multi 16: LBA48 NCQ (depth 0/32)
ata1.00: configured for UDMA/133
  Vendor: ATA       Model: Hitachi HDP72505  Rev: GM4O
  Type:   Direct-Access                      ANSI SCSI revision: 05
SCSI device sda: 976773168 512-byte hdwr sectors (500108 MB)
sda: Write Protect is off
sda: Mode Sense: 00 3a 00 00
SCSI device sda: drive cache: write back
SCSI device sda: 976773168 512-byte hdwr sectors (500108 MB)
sda: Write Protect is off
sda: Mode Sense: 00 3a 00 00
SCSI device sda: drive cache: write back
 sda: sda1 sda2 sda3
sd 0:0:0:0: Attached scsi disk sda
--
ata4.00: configured for UDMA/133
  Vendor: HL-DT-ST  Model: DVDRAM GH20NS10   Rev: EL00
  Type:   CD-ROM                             ANSI SCSI revision: 05
  Vendor: ATA       Model: ST3750640AS       Rev: 3.AA
  Type:   Direct-Access                      ANSI SCSI revision: 05
SCSI device sdb: 1465149168 512-byte hdwr sectors (750156 MB)
sdb: Write Protect is off
sdb: Mode Sense: 00 3a 00 00
SCSI device sdb: drive cache: write back
SCSI device sdb: 1465149168 512-byte hdwr sectors (750156 MB)
sdb: Write Protect is off
sdb: Mode Sense: 00 3a 00 00
SCSI device sdb: drive cache: write back
 sdb: unknown partition table
sd 3:0:0:0: Attached scsi disk sdb
--
...

まず、注目する箇所は以下、
Vendor: ATA Model: Hitachi HDP72505 Rev: GM4O
Type: Direct-Access ANSI SCSI revision: 05

自分の経験上、Vendor: ATA, Type: Direct-AccessだとHDDなのだと思います。
型番はModel: ~ と出力されるのですが、場合によって型番の末尾が省略されるので注意です。
今回の場合、型番の正式名称は、
ata1.00: ATA-8: Hitachi HDP725050GLA360, GM4OA52A, max UDMA/133
の行のHDP725050GLA360になります。

もうひとつのHDDは省略されておらず、
Vendor: ATA Model: ST3750640AS Rev: 3.AA
Type: Direct-Access ANSI SCSI revision: 05
から、ST3750640ASになります。

SATA HDDがsda等として認識される理由 (SCSIに見える理由)

http://okwave.jp/qa3351535.htmlより引用:

    カーネルのファイルシステムの階層構造の問題で,
    SATAの最下層のデバイスドライバsata-strageなどがその上位のプロトコルドライバとしてscsi_modを指定しているためです。
    つまりアプリから見るとSCSIディスクにみえるのはsata-strageがSCSIプロトコルをエミュレーションしているためです。

    これに対してIDEデバイスはディスクドライバとしてide-diskなどがありますからちゃんとIDEに見えます。

    USBメモリなども同じ理由でSCSIに見える場合が多いと思います。

HDDインターフェイスの名称

Wikipediaによると、
HDDインターフェイスの名称は出現年の古い順に
IDE(製品会社独自の規格名) -> ATA(統一規格名) -> SATA(統一規格名)、PATA(=ATA)
っていうことらしい。
IDEをベースにATA規格ができたから、IDE = ATAと呼ばれるようになったようです。
その後、新規格のSATAが出てきて、昔のATAをPATAと呼ぶようになったと。