ASUS P5W DH Deluxe 975X+ICH7R の SATA ハードディスクの認識 (2007/06/06)
マザーボード ASUS P5W DH Deluxe 975X+ICH7R のマシンに Debian/GNU Linux sid をインストールしました.CPU は Intel Core 2 Extreme 2.93GHz です.以前にもIntel ICH7R におけるシリアルATAコントローラについてで書きましたが,ハードディスクが /dev/sda か /dev/sdc のどちらに認識されるかどうかがよく分からない,という問題がありました./dev/sdc に認識される確率が高かったため,/dev/sdc で認識されるものとして設定していました.しかし,cfdisk などでパーティション構成を見ようとすると,/dev/sda を指定しなければならず,おかしな状況に落ち入っていました.
/dev/sdc にハードディスクが認識されるとき,/dev/sda と /dev/sdb がリムーバブルハードディスクとして認識されます.実際,dmesg で関連する部分のログを見ると,
Vendor: Generic Model: STORAGE DEVICE Rev: 9317 Type: Direct-Access ANSI SCSI revision: 00 Vendor: Generic Model: STORAGE DEVICE Rev: 9317 Type: Direct-Access ANSI SCSI revision: 00 usb-storage: device scan complete sd 0:0:0:0: Attached scsi removable disk sda sd 0:0:0:1: Attached scsi removable disk sdb ... Vendor: ATA Model: ST3320620AS Rev: 3.AA Type: Direct-Access ANSI SCSI revision: 05 SCSI device sdc: 625142448 512-byte hdwr sectors (320073 MB)となっています.できれば,シリアルATAのハードディスクを /dev/sda に認識してもらいたいものです.
そこで当初,イーサネットカードのデバイス名を割り当てるに書いたように,udev を用いてハードディスクを /dev/sda として割り当ててもらえないかと考えました.しかし,結果的にうまくいきませんでした.
次に,デバイスの認識の順番であるので,/etc/modules か /etc/mkinitrd/modules を変更すればよいのではないかと考えました.より早く読みこまれると思われる /etc/mkinitrd/modules を変更することにしました.その手順は次のとおりです.
-
/etc/mkinitrd/modules に次の2行を書き加えます.
ata_piix ahci
ahci はシリアルATAコントローラの設定で BIOS で AHCI (Advanced Host Controller Interface) のモードを選択している場合,書き加えたほうが無難です.
-
initrd のイメージを作成します.
# mkinitrd -o /boot/initrd.img-2.6.21-2-amd64 2.6.21-2-amd64
なお,書き込んだ内容は次のように確認します.
# mount -o loop /boot/initrd.img-2.6.21-2-amd64 /mnt
そして,/mnt/loadmodules の中身を見ます.
modprobe -k ata_piix modprobe -k ahci modprobe -k unix 2> /dev/null modprobe -k usb-storage modprobe -k sd_mod
このように,ata_piix や ahci が先に読み込まれるのが確認できます.
-
/etc/fstab をマウントするデバイスを /dev/sdc から /dev/sda に変更します.
... /dev/sda5 / ext3 defaults,errors=remount-ro 0 1 /dev/sda2 /boot ext3 defaults 0 2 ...
-
再起動します.
以上の結果,/dev/sda がハードディスクとして認識されるようになりました.以下は,dmesg の出力です.
Vendor: ATA Model: ST3320620AS Rev: 3.AA Type: Direct-Access ANSI SCSI revision: 05 SCSI device sda: 625142448 512-byte hdwr sectors (320073 MB) ... sd 0:0:0:0: Attached scsi disk sda ... Vendor: ATA Model: Config Disk Rev: RGL1 Type: Direct-Access ANSI SCSI revision: 05 SCSI device sdb: 640 512-byte hdwr sectors (0 MB) ... sd 1:0:0:0: Attached scsi disk sdb ... Vendor: Generic Model: STORAGE DEVICE Rev: 9317 Type: Direct-Access ANSI SCSI revision: 00 sd 4:0:0:0: Attached scsi removable disk sdc Vendor: Generic Model: STORAGE DEVICE Rev: 9317 Type: Direct-Access ANSI SCSI revision: 00 sd 4:0:0:1: Attached scsi removable disk sdd
(追記 2007/07/27) linux-image-2.6.18-4-amd64 のときは,/etc/mkinitrd/modules に achi を書き込まなくても,initrd.img のロードするモジュールに achi が含まれていましたが,linux-image-2.6.21-2-amd64 から /etc/mkinitrd/modules に achi を書き込まなければ,achi をロードしてくれませんでした.その場合,Kernel panic で起動停止しますので,/etc/mkinitrd/modules に achi を書き加えるほうが無難かと思います.
梅原 大祐 / UMEHARA Daisuke umehara@kit.ac.jp Last modified: 2020/05/01 15:37