
Ubuntu日本語フォーラム

ログインしていません。
initrd.imgの中を変更したく,以下のページを参考に現initrd.img-...を展開しました
参考サイト.
$ cd boot $ sudo mkdir initrd $ sudo zcat ../initrd.img-2.6.24-21-generic | sudo cpio -i
これで伸長はできたようです.上記サイトのcpio -cオプションは違う模様.
/boot/initrdディレクトリで,所望のところを編集し,
$ cd /boot/initrd $ sudo find . | sudo cpio --quiet -o | sudo gzip -c | sudo tee ../initrd.img-2.6.24-21-generic > /dev/null
としました.
再起動したところ,kernel panicで,not syncing: VFS: Unable to mount root fs on unknown-block(0,0)と言われてしまい,起動しなくなってしまいます.
質問は:どこがおかしいのでしょうかということより,正しいinitrd.imgファイルの展開,作成の仕方をご教授頂ければなと思います.
何卒よろしくお願いいたします.
オフライン
https://wiki.ubuntu.com/CustomizeLiveInitrd
こっちのやり方で試すとどうなりますか?
もしこれでダメだということになると、initrdを展開した後に間違った場所を修正してしまった、とかそういう展開ではないかと思います。
オフライン
hito様
サポート有り難うございます.
ばっちり,仰せのとおりでできました.
追加があるのですが,
1.
御教授頂いたwikiがあるのは知っていたのですが,どうもうまくページをたどることができません.(Kernelの再構築のページなど,googleで引いています)
あのページのindexってどこかあるんでしょうか.
2.
initrdを自分向けにカスタムにして名前をかえても,apt-get updateでkernelのupdateがあるとmenu.lstも書き換えられてしまいますよね.それを回避する方法はないのでしょうか.
どなたか識者の方.宜しくお願い致します.
オフライン
euda による投稿:
1.
御教授頂いたwikiがあるのは知っていたのですが,どうもうまくページをたどることができません.(Kernelの再構築のページなど,googleで引いています)
あのページのindexってどこかあるんでしょうか.
MoinMoinベースのWikiは検索ページの一番下にインデックスがあったりします。
(意外と判らないんじゃないかなと思ったりしますが。。)
https://wiki.ubuntu.com/FindPage
または、キーワードになる言葉で検索したほうが早いかも知れませんね。
euda による投稿:
2.
initrdを自分向けにカスタムにして名前をかえても,apt-get updateでkernelのupdateがあるとmenu.lstも書き換えられてしまいますよね.それを回避する方法はないのでしょうか.
こちらは自信は無いので、識者の回答待ちにしたほうが良いですが、
いまのKernelパッケージにpinを立てておくのが正解かなと思ったりします。
#新しいinitrdをkernelパッケージ化してpinしたほうが良さそうですが。。
オフライン
kkさん御返答有り難うございます.
pinってのが今はわかりませんが,いずれにしてもkernelのupdateで新しい機能はできるだけ取り入れたいが,自分作ったのinitrd.imgの中の/etc/modprobe.d/blacklistのエントリーだけはとっておきたいというのは難しいのではないのでしょうか.
ちょっと,もう少し勉強してみます.
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
最後の編集者: kiyoshi (2008-10-19 23:55:54)
オフライン
kiyoshi様
御返答有り難う御座います.
なるほど,そういうことができるんですね.
ただ,kernel本体はupdateして,initrd.imgはまったくカスタマイズしたものそのまま,ってのも何か不具合がないか不安です.
もう少し,理解を深めてからトライしてみます.
しばらくは,kernel update > そのままアップデート > initrd.img伸長 > 編集 > initrd.img圧縮・作成で運用したいと思います.
皆さんのお知恵にはため息が出るばかり.
どこで,勉強するんですか?
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
最後の編集者: kiyoshi (2008-10-21 12:35:46)
オフライン
すいません、何をされたいのかを正確に把握できていないのですが、
(initrdというかinitramfs時点からblacklistに入れたいドライバがある?)
普通に/etc/modprobe.d/以下を編集しておくと、カーネルのインストール時には
暗黙でinitramfs作り直しが走るので、たぶん何も気にしなくていいはずです。
# というか、/etc/modprobe.d以下を改変したinitrd(initramfs)を作るだけなら、
# update-initramfs -uで良かったりもしますが……。
オフライン
kiyoshi様,hito様
何度もサポート有り難う御座います.
ちょっと,ここのところ小生肉体的に熱暴走しておりまして,活動できませんでした.
背景を説明していないので,どうも話が宙ぶらりんのようなので背景を書きます.
Libretto L2にXubuntuの6.06(それ以上のヴァージョンだとXが1280x600にならないのです)を入れて使っていましたが,rebootに問題がありました(これはXubuntuだけではなくVineでもそうでした).System haltはするのですがrebootしないのです.これについて,linux-usersのメーリングリストで聞いたところ,ohci-hcdというkernel moduleのdistrust_firmwareというオプションが悪さをしていると聞きました.なるほど,Vine Linuxでは/etc/modprobe.d/optionsにそのオプションを無効にする記述で対処できました.しかしながら,Xubuntuではうまくいきませんでした.Googleを調べていると,2chで執拗にこの問題について書き込んでいる人を見つけました.リンク[2chの記事自体はdat落ち,リンクはgoogle cache]
その人によれば,initrd.imgのなかにetc/modprobe.d/blacklistを仕込み,そのファイルにohci-hcd moduleをblacklist指定すればよいという書き込みがあったので,表記のような質問をした次第です.
小生がやって見たところ,
1.
/etc/modprobe.d/optionに options ohci-hcd distrust_firmware=0
2.
initrd.imgに内包されているetc/modprobe.d/blacklistに blacklist ohcd-hcd
この2つの指定が両方ないとrebootしないことがわかりました.
で,今回の進展ですが,
hito による投稿:
普通に/etc/modprobe.d/以下を編集しておくと、カーネルのインストール時には
暗黙でinitramfs作り直しが走るので、たぶん何も気にしなくていいはずです。
ということで,initrd.imgはまっさらのまま,/etc/modprobe.d/optionの記述は解除,その代わり/etc/modprobe.d/blacklistでohci-hcdをblacklist指定.で走らせてみました.結果,問題なくrebootするようになりました.ohci-hcdはUSBドライバーのようなので,blacklist指定でUSBがつかえなるか不安でしたが,USBメモリーを挿すとマウントするので動いているようです.結局initrd.imgとはまったく関係ないところで解決した感じです.
ただ,(話拡散して恐縮ですが)電源まわりの解決で,すべてうまく行くようになると思ったのですが,どうもshutdown -Pしても,pcmciaにさしたモデムカードの電源ランプがついたままで,すべての給電が落ちるわけではないようです.そろそろここら辺が限界でLibrettoにも引退していただこうかと思っております.
皆様色々と有り難うございました.
オフライン