お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2008-10-17 22:14:09

euda
メンバ
登録日: 2008-10-16

/boot/initrd.img-...の圧縮・伸長

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ファイルの展開,作成の仕方をご教授頂ければなと思います.
何卒よろしくお願いいたします.

オフライン

 

#2 2008-10-17 22:50:35

hito
管理者
登録日: 2007-03-18

Re: /boot/initrd.img-...の圧縮・伸長

https://wiki.ubuntu.com/CustomizeLiveInitrd

こっちのやり方で試すとどうなりますか?

もしこれでダメだということになると、initrdを展開した後に間違った場所を修正してしまった、とかそういう展開ではないかと思います。 

オフライン

 

#3 2008-10-19 21:11:23

euda
メンバ
登録日: 2008-10-16

Re: /boot/initrd.img-...の圧縮・伸長

hito様

サポート有り難うございます.
ばっちり,仰せのとおりでできました.

追加があるのですが,
1.
御教授頂いたwikiがあるのは知っていたのですが,どうもうまくページをたどることができません.(Kernelの再構築のページなど,googleで引いています)
あのページのindexってどこかあるんでしょうか.
2.
initrdを自分向けにカスタムにして名前をかえても,apt-get updateでkernelのupdateがあるとmenu.lstも書き換えられてしまいますよね.それを回避する方法はないのでしょうか.

どなたか識者の方.宜しくお願い致します.

オフライン

 

#4 2008-10-19 22:02:22

kk
メンバ
From: Hyogo
登録日: 2008-03-30

Re: /boot/initrd.img-...の圧縮・伸長

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したほうが良さそうですが。。

オフライン

 

#5 2008-10-19 23:18:05

euda
メンバ
登録日: 2008-10-16

Re: /boot/initrd.img-...の圧縮・伸長

kkさん御返答有り難うございます.
pinってのが今はわかりませんが,いずれにしてもkernelのupdateで新しい機能はできるだけ取り入れたいが,自分作ったのinitrd.imgの中の/etc/modprobe.d/blacklistのエントリーだけはとっておきたいというのは難しいのではないのでしょうか.
ちょっと,もう少し勉強してみます.

オフライン

 

#6 2008-10-19 23:55:20

kiyoshi
拒否
From: Linux-Loving-Person
登録日: 2007-02-07

Re: /boot/initrd.img-...の圧縮・伸長

※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。

最後の編集者: kiyoshi (2008-10-19 23:55:54)

オフライン

 

#7 2008-10-20 00:41:55

euda
メンバ
登録日: 2008-10-16

Re: /boot/initrd.img-...の圧縮・伸長

kiyoshi様

御返答有り難う御座います.
なるほど,そういうことができるんですね.
ただ,kernel本体はupdateして,initrd.imgはまったくカスタマイズしたものそのまま,ってのも何か不具合がないか不安です.
もう少し,理解を深めてからトライしてみます.
しばらくは,kernel update > そのままアップデート > initrd.img伸長 > 編集 > initrd.img圧縮・作成で運用したいと思います.

皆さんのお知恵にはため息が出るばかり.
どこで,勉強するんですか?

オフライン

 

#8 2008-10-20 12:43:51

kiyoshi
拒否
From: Linux-Loving-Person
登録日: 2007-02-07

Re: /boot/initrd.img-...の圧縮・伸長

※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。

最後の編集者: kiyoshi (2008-10-21 12:35:46)

オフライン

 

#9 2008-10-20 13:20:01

hito
管理者
登録日: 2007-03-18

Re: /boot/initrd.img-...の圧縮・伸長

すいません、何をされたいのかを正確に把握できていないのですが、
(initrdというかinitramfs時点からblacklistに入れたいドライバがある?)
普通に/etc/modprobe.d/以下を編集しておくと、カーネルのインストール時には
暗黙でinitramfs作り直しが走るので、たぶん何も気にしなくていいはずです。

# というか、/etc/modprobe.d以下を改変したinitrd(initramfs)を作るだけなら、
# update-initramfs -uで良かったりもしますが……。

オフライン

 

#10 2008-10-23 18:15:30

euda
メンバ
登録日: 2008-10-16

Re: /boot/initrd.img-...の圧縮・伸長

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にも引退していただこうかと思っております.
皆様色々と有り難うございました.

オフライン

 

Board footer

Powered by FluxBB