外付けHDDのドライバをカーネルモジュールにして、めでたしめでたし…かと思ったら、起動時に変なメッセージが出ています。読んでみるとHDD 5台構成にしたはずのRAID 5が4台構成で動いています。
md: md0 stopped. md: bind<sdb> md: bind<sdd> md: bind<sde> md: bind<sdf> md: bind<sdc> md: kicking non-fresh sdb from array! md: unbind<sdb> ...
あるぇー、なんで /dev/sdbが弾かれてるの?HDD壊れたかしら?って思ったのですが、違いました。内蔵HDDをsdfのままで一度起動したことが原因でした。
デバイスファイル名だとわかりづらいので、変化前の内蔵HDDがsdaだったときのデバイスファイル名を小文字で、変化後のsdfだったときのデバイスファイル名を大文字で書きましょう。対応表は下記の通り。
変化前 | 変化後 | コメント |
---|---|---|
sda | SDF | 内蔵HDD |
sdb | SDA | 外付けHDD 1 |
sdc | SDB | 外付けHDD 2 |
sdd | SDC | 外付けHDD 3 |
sde | SDD | 外付けHDD 4 |
sdf | SDE | 外付けHDD 5 |
上記を踏まえて時系列で説明してみましょう。
とまあ、RAIDシステムのバカなんだか賢いんだかよくわかんねえ動きをしてくれた結果、4台構成になってしまったわけです。それにしてもHDD認識の順番がころころ変わるのは困るのよねー…。
直し方は時間かかりますがとても簡単です。sdbが物理的に壊れたわけではないので、単にsdbをもう一度アレイに追加すれば良いだけです。
# mdadm --manage /dev/md0 -a /dev/sdb
こんな感じです。長くても1日ほっとけば直ってると思います。アレイを直している様子が見たければ、$ cat /proc/mdstatで概要が、# mdadm --detail /dev/md0で詳細情報が見られます。
家のファイルサーバを復活させたついでに、Linux Kernelを2.6.30からlongterm maintenanceの2.6.35.9に入れ替えました。2.6.30以降のどこかでファイルサーバのCPU(Intel Atom)への対応が入ったのと、longtermなら中途半端なバージョンよりは安定している気がすると思ってのことです。
コンパイルしていざ再起動するとkernel panic…。rootがマウントできないと怒っています。
今までは内蔵HDDがsdaで、外付けのRAIDがsdb, sdc, sdd, sde, sdfだったのですが、カーネルを入れ替えたら内蔵HDDがsdf外付けのRAIDがsda, sdb, sdc, sdd, sdeになってしまったようです。
認識順序が変わったかなと思って、試しにroot=/dev/sda1をroot=/dev/sdf1に変えて再起動したところあっさり起動しました。しかしトラブった時のために昔の環境も残しておきたいのですよ。
カーネルごとに設定を書けるgrubは良いとしても、/etc/fstabはそうはいきません。swap領域に /dev/sda5を使っているので、カーネル入れ換えごとに /dev/sda5にしたり、/dev/sdf5にするのは面倒くさいです。
設定ファイルをいちいち書き換えるのは面倒くさいので、内蔵HDDさんにはなんとしても /dev/sdaで居ていただかなくてはなりません。そのためにはカーネルから一番最初に内蔵HDDを認識してもらう必要があります。
幸運なことに私の環境では内蔵HDDのドライバはata_piixで、外付けHDDのドライバはsata_sil24と異なるドライバが使われていましたので、ata_piixをカーネル組み込みに、sata_sil24だけモジュールにしました。これならata_piixが一番最初に認識され、rootがマウントされ、その後sata_sil24が認識されます。バッチリです。
最初はLinuxのHDD認識のアルゴリズムを見ないとわからないけど、面倒くさそうだなあ??と考えていたのですが、そんなこと調べるまでもなく単純に解決できたのでした。
めでたし、めでたし。
< | 2010 | > | ||||
<< | < | 12 | > | >> | ||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
- | - | - | 1 | 2 | 3 | 4 |
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 | - |
合計:
本日: