水曜。
久しぶりにGentoo Linuxをいじってみてた。
Gentoo Linuxは他のLinuxと違ってアプリのインストールはソースからのビルドを前提にしてる(ビルドやパッケージ管理はシステムが面倒をみてくれる)。アプリ一つインストールするにも時間とCPUパワーをやたら消費するんだけど、代わりにそのシステムの環境にぴったり合ったコンパイルオプションでアプリケーションをビルドできるから、キビキビサクサクのLinux環境が得られる。
でも自分が使ってるGentooはLinuxの勉強のためのものだから、VMwareにインストールしてて、しかもたまーーーにしか起動しない。今回の起動もたぶん半年以上ぶり。
それだけ期間を置いての起動だと、システムのアップデートにも時間がかかるんだな。
emerge --syncコマンドでportageツリー(パッケージリスト)を最新にしたあと、emerge -uDp world コマンドで全アップデートリストを表示してみると、出るわ出るわ、山のように出てきた。。。
あまりに多かったから、必要そうなモジュールだけ20ほど選んで更新した。etc-updateコマンドを使った設定ファイルの手動更新まで含めて4~5時間ってとこかな。更新のインストールまでは自動でやってくれるんだけど、設定ファイルの更新はほぼ手動で、これがしんどくて時間のかかる作業。
そこまで作業して、ふと思った。
「こりゃ最新のGentooをインストールし直す方が速くて楽でないかい?」
勉強用のLinuxだから大切なデータが入ってるわけでもないし、これはこれで残しておいて、新しいVM追加しちゃおっと♪
(これが悪夢の始まりなんだがw)
ってことで、早速WebでGentooのサイトへ。
おお、Gentoo Linux 2006.0 がリリースされてるではないか!
VMwareに新規VMを作成して、ダウンロードしたLive CDのisoファイルをCDドライブとして設定。
そしてVMを起動。。。おおーーー、何か昔と違って綺麗^^
でも何か様子が違う。
なんだなんだ、インストーラが用意されてる?Webで見られるインストールマニュアルもStage 3が前提でStage1や2はサポート対象外っぽい?
Gentoo Linuxはインストーラなんて無くて、かつStage 1からのフルスクラッチでOSをビルドするのが醍醐味なんじゃないか。それがコンパイル済みのモジュールインストールだなんて、いつからそんなヤワなOSに成り下がったんだ?なんて思いつつ、腕に覚えもないくせに無理矢理インストーラを使ったStage 1からのビルドに挑戦 → 丸1日ビルドの後、Stage 2に入ったところでエラー(Exception)!
エラー画面がバグっててメッセージが読み取れないし、原因を追求する腕もない。さすがにもう1日無駄な時間と電力(ビルド中はずーっとCPU使用率100%のままw)を浪費するのも嫌だったから、諦めて渋々Stage 3からのインストールに挑戦。Stage 3からのインストールだとある程度はコンパイル済みのモジュールをインストールするようになってて、今度は1時間ぐらいでインストールが完了。はやw
さて再起動♪
。。。
起動しない。ドライブ認識してくれない。。。
Activating udev...
Determining root device...
Block device /dev/sda3 is not a valid root device...
The root block device is unspecified or not detected.
Please specify a device to boot, or "shell" for a shell...
boot() ::
こんな感じで止まっちゃう。
ここからが自分の腕の無さの見せ所(?)、めっちゃ時間がかかった。
結果、のべて約1日、イライライライラしながら延々とWeb検索・再インストール・再起動を何十回も繰り返してやっと起動に成功。分かってしまえば理由は単純。VMwareでSCSIドライブLinuxをインストールする場合、カーネルにBuslogicのSCSIドライバを含めないといけなかった。なんか昔もほぼ同じトラブルを経験してたような。。。^^;
完全に忘れてたけど、これでもう二度と忘れることはあるまい。2日もかかって、身に付いたと言えるのはせいぜい2、3の知識。まぁそんなもんだw
どうでもいい文章で長くなったけど、ここに手順をメモしとこうかな。
1. 起動でエラーになったらLive CDを使って起動し直す。
2. Live CDのGentoo Linux環境からHDDにインストール済みのGentoo Linux環境に入る。
# sudo su -
# mount /dev/sda3 /mnt/gentoo
# mount /dev/sda1 /mnt/gentoo/boot
# swapon /dev/sda2
# mount -t proc none /mnt/gentoo/proc
# chroot /mnt/gentoo /bin/bash
# env-update && source /etc/profile
3. カーネルオプションを変更してカーネルを構築し直す(genkernel/grubを使う前提)
# cd /usr/src/linux
# genkernel --menuconfig --no-mrproper --no-clean all
【設定項目】
Device Drivers ---> SCSI device support --->
<*> SCSI generic support
<*> SCSI disk support
Device Drivers ---> SCSI device support ---> SCSI low-level drivers --->
<*> BusLogic SCSI Support
4. Live CDの環境に戻って(HDDから)再起動
# exit
# umount /mnt/gentoo/proc /mnt/gentoo/boot /mnt/gentoo
# reboot
****
Linux Forums - Gentoo Linux Help - mounting /dev/sda3 as root device problems
Gentoo Linux Documentation - FAQ - カーネルが起動しません。何をすべきでしょうか?