家のファイルサーバを復活させたついでに、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 | - |
23年4月10日
26年1月23日
26年1月21日
25年12月26日
25年12月22日
21年12月28日
08年3月25日
25年12月10日
25年12月16日
16年3月2日
25年12月19日
25年12月8日
25年12月18日
25年12月11日
22年4月13日
16年1月25日
16年1月8日
13年8月11日
23年9月11日
08年9月10日
wiki
Linux JM
Java API
2002年
2003年
2004年
2005年
2006年
2007年
2008年
2009年
2010年
2011年
2012年
2013年
2014年
2015年
2016年
2017年
2018年
2019年
2020年
2021年
2022年
2023年
2024年
2025年
2026年
過去日記について
アクセス統計
サーバ一覧
サイトの情報合計:
本日: