[linux]OS再インストールなしにマザーボードを交換してみる

OS再インストールなしに、マザーボードを交換してみる

C7プロセッサを載せた自宅サーバのマザーボードが不安定になったので、マザーボードを交換してみた。面倒なOS再インストールおよびミドルウェア再設定なしで。何も考えずにするとディスク(VG)が見えなくなるので厄介。
▼環境

 OS:CentOS 5.3
 マザーボード:EPIA-LN10000EG(C7) → D945GCLF2(Atom330)

マザーボードのSATAコントローラが交換前後で異なるので、マザーボード交換後は当然ディスク(というよりLVM VG)が見えなくなる。
▼ 以下やったこと。
マザーボード交換後、何も手当てをせずに起動してみる。
initrdを読み込んで、VGを探し始めたところで「No volume groups found」といわれてしまう。
予想通りの結果。initrdの中にICH7用のSATAドライバがないから(現時点で読み込んでいるのはVIAのSATAドライバ)。
念のためディスク自身が使用できることを確認するために、CentOSのインストールDVDのレスキューモードで起動。VGも認識したので、ディスク自身も使用できること(問題ないこと)は確定。
さて、ここでinitrdをICH7用ドライバを読み込むように作り変えることになるのだが、どれがICH7用ドライバかわからない。レスキューモードで起動しているがlsmodをみても判断できない。
ということで・・・
外付けHDDにCentOSをインストールしてみる(再インストールなしと書いているが、データを破壊しないという意味なので・・・)。
※このときGRUBの2段階目は外付けHDDに向くので、後ほど注意!
インストール後、/etc/modprobe.confの内容を確認。
こんな感じ。

alias scsi_hostadapter ata_piix
alias scsi_hostadapter1 usb-storage
alias snd-card-0 snd-hda-intel
options snd-card-0 index=0
options snd-hda-intel index=0
remove snd-hda-intel { /usr/sbin/alsactl store 0 >/dev/null 2>&1 || : ; }; /sbin/modprobe -r –ignore-remove snd-hda-intel
alias eth0 r8169

これをどこかにメモしておいて、こちらのOSはシャットダウン。外付けHDDは外す。
次に、もう一度CentOSのインストールDVDのレスキューモードで起動。
内蔵HDDの(/mnt/sysimage)/etc/modprobe.confの中身を上記メモの内容に置き換えて、initrdを再作成する。

# vi /mnt/sysimage/etc/modprobe.conf
(上記メモ内容に置き換え)
# chroot /mnt/sysimage
# cp -p /boot/initrd-2.6.18-92.1.22.el5.img? /boot/initrd-2.6.18-92.1.22.el5.img.c7
# mkinitrd -f? /boot/initrd-2.6.18-92.1.22.el5.img 2.6.18-92.1.22.el5

作成したinitrdを解凍してみて、ちゃんとICH7用のドライバが組み込まれていることを確認する

# gzip -dc? /boot/initrd-2.6.18-92.1.22.el5.img > /tmp/initrd.cpio
# mkdir /tmp/initrddir
# cd /tmp/initrddir
# cpio -i –file ../initrd.cpio
# less init
(ここで、insmod /lib/ata_piix.koがあることを確認)

確認できたら、GRUB(ブートローダ)の2段目の向き先を内蔵ディスクに戻す

(先ほどのchrootの環境のまま)
# /sbin/grub
grub> root (hd0,0)
grub> setup (hd0)
grub> quit
# sync

これにて完了!
あとはexitして、再起動すれば元通りに起動できる。