yuriの日記: 拝啓int20様(カーネル更新編) 2
日記 by
yuri
家PC(2.4.20-8)→2.4.25にアプグレードしようとして止まっちゃったときのメッセージ↓
ds:no socket drivers loaded!
VFS:Cannot open root device "LABEL=/" or 00:00
Please append a correct "root=" boot option
Kernel Panic:VFS:Unable to mount rootfs
会社のサーバ機でも
VFS:Cannot open root device "LABEL=/" or 00:00
というメッセージが出てパニクっていたのですが、それを見ていた師匠が
・initrd-2.4.25.img を /var/tmp にコピー
・zcat initrd-2.4.25.img > img (解凍)
・losetup /dev/loop0 img (img をディスクとして扱えるよう、/dev/loop0に関連付け)
・mount /dev/loop0 /hoge (マウント)
という技を披露してくれて、その助けを借りて /hoge の中身を確認したところ、
なんだか足りないものが多い感じがしたので、試しに df をとってみたところ、
/boot 領域が 100% 使用中でした。書き込み失敗してたのね。
会社サーバは古くて使わないカーネルを一掃して再度インストールしたところ
簡単にアップデートできました。
家PCは、df してみたら /boot が 16% …
…他に原因がありそうですが、ちゃんと調べるのは来週以降になりそうです。
ds:no socket drivers loaded!
VFS:Cannot open root device "LABEL=/" or 00:00
Please append a correct "root=" boot option
Kernel Panic:VFS:Unable to mount rootfs
会社のサーバ機でも
VFS:Cannot open root device "LABEL=/" or 00:00
というメッセージが出てパニクっていたのですが、それを見ていた師匠が
・initrd-2.4.25.img を /var/tmp にコピー
・zcat initrd-2.4.25.img > img (解凍)
・losetup /dev/loop0 img (img をディスクとして扱えるよう、/dev/loop0に関連付け)
・mount /dev/loop0 /hoge (マウント)
という技を披露してくれて、その助けを借りて /hoge の中身を確認したところ、
なんだか足りないものが多い感じがしたので、試しに df をとってみたところ、
/boot 領域が 100% 使用中でした。書き込み失敗してたのね。
会社サーバは古くて使わないカーネルを一掃して再度インストールしたところ
簡単にアップデートできました。
家PCは、df してみたら /boot が 16% …
…他に原因がありそうですが、ちゃんと調べるのは来週以降になりそうです。
Red Hat 系っぽいように見えますが... (スコア:1)
カーネルアップデート時に作成される initrd.img の中に入っている、モジュールをロードさせるためのスクリプト(linuxrc)で pivot_root しようとしている為、具合が悪いということがありました。
mkinitrd が悪いのかとか、なんで不要なコマンドが linuxrc に含まれているのかは、Red Hat には割と見切りを付けちゃっているので細かく調べていません。
Red Hat 7.x を使っていて、initrd 内部の linuxrc に以下の部分が含まれていたら、削除して initrd を作り直すといい感じだと思われます。
mount -t proc /proc /proc
echo Mounting /proc filesystem
echo Creating root device
mkrootdev /dev/root
echo 0x0100 > /proc/sys/kernel/real-root-dev
umount /proc
echo Mounting root filesystem
mount --ro -t ext3 /dev/root /sysroot
pivot_root /sysroot /sysroot/initrd
#個人的に作ったカーネルなら initrd が不要なようにビルドした方が使い勝手いいとおもいますがー
$ set -o vi
ご指名ありがとうございます(?) (スコア:1)
loopbackマウントですか。一応知ってはいるのですが、使ったことないです。さすが師匠様。
ちなみに、自宅のマシンはLVMしてるのでinitrdが必要です。
カーネルがなかなかromfsを読んでくれず苦労しました。
# カーネルパニックが出てyuriさんもパニクってたわけですね(ぇ