Fedora Core 5 を他のコンピュータに移行作業
会社のサーバーのCPUファンが故障し、熱暴走。特殊なCPUファンのため、CPUファンの交換ができないため、サーバーは、あえなく廃棄処分に・・・。不幸中の幸いは、ハードディスクが生きていたことと同じ型番のコンピュータが1台だけあったことなのだが・・・。
緊急措置ということで、ハードディスクの入れ替えでサーバーを復旧させることはできたのだが、業務の都合上、そのコンピュータを元の状態に戻さないといけないことになり、悪戦苦闘することになるとは・・・。
ちなみに、移行にあたっての条件は下記の通り。
- ハードディスクの環境は、諸事情により変更できない。(つまり、OSは、Fedora Core 5のまま(ちなみに、現時点で、最新版は、Fedora Core 20))
- 元のコンピュータとは、違うハード構成のパソコンに移行
予想していたことだが、この後、悪戦苦闘することになるのだが・・・。
Kernel panic - not syncing: Attempted to kill init!
他のハード構成のコンピュータにハードディスクを入れ替えて、起動した時に表示されたメッセージがこれ。
正直言って、「kernel panic」の文字を見たときには、「うわー、やっちまった」と思ったのだが・・・。
ま、出てきてしまったものはしょうがないので、調べてみると、このメッセージが出る前を見てみると、下記のメッセージが・・・。
No Volume Groups found
Volume Group "Volgroup00" not found
どうやら、ハードウェアが認識されていないみたいだ。ということは、このハード構成では駄目なのかなと思ったのだが、とりあえず、調べてみると、どうやら、以前とは違うハード構成のため、initrd(Inital RAM Disk)を再作成しないといけないことがわかった。
ちなみに、「initrdって、何?」っていう状態だったのだが、下記のホームページを参考にすることで、理解することができた。感謝。
ということで、まず、このままでは起動できないので、Fedora Core 5 Rescue Diskのisoファイルを下記サイトからダウンロードして、CD-Rに焼き、CDブートでコンピュータを起動することにした。
Rescue Diskの準備もでき、移行先のコンピュータで起動してみると、うまく起動しない。Rescue Diskの作成に失敗したかなと思い、とりあえず、BIOSの設定を見てみると、起動時の読み込み先で、何故か、ハードディスクの方がDVDドライブよりも先に読み込む設定になっていたので、DVDドライブを先に読むように変更してみると、うまく起動した。
あとは、下記のホームページを参考にinitrdを再作成した。initrdの再作成には結構時間がかかるかなと思っていたのだが、作業自体は、わずか数分で作成できた。
一応、自分用のメモとして、手順を残しておくと、Rescue Diskのシェルで、
#rootディレクトリを/mnt/sysimageに変更。
chroot /mnt/sysimage
#bootディレクトリに移動
cd /boot
#「vmlinuz」の文字列が含まれるファイルを検索(vmlinuz以下の数字、文字列をメモする。)
ls -lhtr vmlinuz*
#現在のinitrdをリネームして、保存。(元の状態のバックアップ。最悪の事態を回避するために重要。)
#xxxxxxxxxxxxxxxxxxxxは、vmlinuz以下の数字、文字列
mv initrd-xxxxxxxxxxxxxxxxxxxx.img initrd-xxxxxxxxxxxxxxxxxxxx.img.old
#initrdを再作成
mkinitrd initrd-xxxxxxxxxxxxxxxxxxxx.img xxxxxxxxxxxxxxxxxxxx
#再起動
reboot
#起動する前に、CD-Rはコンピュータから回収しておくこと。(CDブートしてしまうため。)
initrdを再作成した後は、無事、ハードウェアも読み込まれ、起動したのだが・・・。さらなる問題が発生したのであった。
X Window System が起動しない
想定内のトラブル。古いOSなので、グラフィックでは、必ずつまづくと思っていたんだよね。案の定、対応してなかった。
ファイルサーバーなので、別にコマンドラインでもいいと思うのだが、Xの設定もしてあるので、なるべく、同じ環境にしないといけないので、仕方なく、Xの設定もすることにした。
とりあえず、エラーのログが表示されるので、それを確認し、その後、さらに詳しいログを見るかと聞かれるので、それも見ると、Xの設定画面が表示されるので、そこで該当するグラフィックボードを選択するのだが、当然のことながら、一覧が古すぎて、対応するものがない。以前のものは、i810に設定してあったみたいだが、今回のオンボードのIntel GMA 3100では、使えないみたいだ。
仕方がないので、vesaでごまかしてみることにすると、起動途中に変な画面が表示されるもののグラフィックログイン画面まで到着。
とりあえず、ログイン後は、問題なさそうなので、vesaで対応することにした。というか、バージョンアップできない時点で、たぶん、これしか選択肢ないだろう。
NICに苦戦する
時の移り変わりは激しいもので、この作業するまでは、有線LANボードが絶滅寸前とは知らなかった・・・。ま、通常は、マザーボードに付いているから問題ないんだろうけど・・・。
最後に、これも想定内だったけど、思った通り、LANボードでつまづいた。想定外だったのは、上記にも書いたとおり、販売されている有線LANボードが少なくて、選択肢がほとんどないことで、今回の作業で一番困ったのが、これ。
まず、Fedora Core 5の起動時にeth0の起動に失敗していることを確認したので、オンボードLANのチップセットを確認するために、筐体を開けてみると、小さな見にくい文字で、「Broadcom 5709」と書かれているのを発見。とりあえず、調べてみると、BroadcomのホームページでLinux用のドライバーが配布されていることがわかったので、調べてみると、確かに下記のサイトにあった。
しかし、ここのサイトにあるのは、RHEL、SUSE用。駄目元で、RHELのSRPMをダウンロードし、rpmbuildしてみるが、エラーが出て、断念。
その後、いろいろと調べてみると、HPのProLiant向けのホームページに対応表が掲載されているのを発見。これを見ると、Fedora core 7が自動認識してくれるがそれ以前は、駄目なことがわかったので、オンボードLANを使うのをあきらめることにした。
BCM5706/08/09 Ethernet controllerの自動認識について bnx2対応(x86,x86_64共通)
ちなみに、ここまでは想定内だったのは、昔、Realtek RTL8319でひどい目にあったことがあるからで、Windowsしか使ったことがない人にはわからないと思うけど、ハードウェアの場合、ハードの性能よりもドライバーの方が重要な意味合いを持つことが多々ある。市販のLANボードの場合、Windowsのドライバーは、添付されて発売しているので、問題ないのだが、Linuxで動作させようとすると、メーカー側、Linux側で対応しているドライバーの数がWindowsに比べて少ないため、チップセットによっては動かない可能性がある。
特に、安いLANボードには、Realtek製のチップセットを採用しているものが多いので気をつけないといけない。(よく調べていないので、今はそんなことないのかもしれないけど・・・。)
ということで、Linuxの場合、LANボードに使われているチップセットを確認して、使用する必要があるのだが、上記の通り、調べてみると、選択肢がほとんどない状態。しかも、付けられるのは、ハードの構成上、PCIバスしかないし・・・。
一応、中古もあたって見たのだが、古いNICは、見つからず、近くのハードオフで、Realtek RTL8319のジャンク品が1、2点あるだけ。しかも、スロットは、ロープロファイルとあっては・・・。
結局、自宅にたまたまあった古いIntel製のNICを無理矢理改良して、ロープロファイルのスロットに差し込んで、対応した。
その後、自宅の回線につないで動作確認したのだが、eth0は、認識しているのに、インターネットにつながらない。一応、BIOSでオンボードLANは、オフ状態にしてあるので、オンボードLANをeth0と認識しているはずはないのだが・・・。設定もDHCPに変更してあり、つながらないはずはないんだけど・・・。
試しに、ifconfigでeth0を確認してみると、IPアドレスも自動的に割り振られ、無事動作もしているみたいだ。
ifconfig -a
つぎにpingでルーターにパケットを送ってみると、無事、パケットが帰ってきているので、問題ないみたいだ。
最後に、気になったので、下記コマンドで、Gatewayを確認してみると・・・。認識されていない。pingは通っているので、問題ないと思っていたんだけど、認識されていないとは・・・。
route -n
Fedora Core 5 のメニューから[管理] → [ネットワーク] で設定をDHCPから手動に変更し、GatewayにルーターのIPアドレスを入力し、再起動すると、無事、インターネットに接続できた。これで、LANボードが使えることがわかったので、以前の設定に戻して終了。
どうにか、使えるようにはしたけど、正直言って、もうやりたくない。とりあえず、動くようになってよかった。