2004-03-10 曇り,傘持って行ったけど雨降らず [長年日記]
_1 ふつうのコンソールとシリアルコンソールに同時に出力
特にKernelなどで設定する必要はなくgrub.confをいじるだけでOK.会社の先輩にキーワードだけを教えてもらって,実際に参考にしたのはここ.実際にはこんな感じ.
image=vmlinuz-2.6.3-xxx label=2.6.3-xxx read-only append="root=/dev/sda3 console=tty0 console=ttyS1,19200n8"
append の後半にある console がポイント.前者はいわゆるふつうのコンソールへの出力を,後者はシリアルコンソールへの出力を宣言.
_2 Re: Kernel-update
先日
起動には何の問題もないのだがdfすると / が2回マウントされているように見える.
と書いた.machuさんとこでも同じことが起きているようだ.なんかオレの調査待ちみたいな感じになっているのでカーネルコンパイル中にえいやっと調べてみた.
前回の調査で二重マウントの原因はgenkernelによってインストールされているlinuxrcというファイルが原因らしいところまでは突き止めた.今回はその続きから.
/var/log/emerge.log によると今使っているバージョンは3.0.1でその前は1.8.この間で何かが変わっているに違いない.genkernel-1.8のlinuxrcとgenkernel-3.0についているlinuxrcでそれっぽいところが見つかった.
genkernel-1.8 の linuxrc 11 #mount -o remount,rw / 12 mount /proc
genkernel-3.0 の linuxrc 8 mount -o remount,rw / 9 mount /proc
となっている.問題はこれか?それとも genkernel-3.0 の linuxrc には以下のこの部分か?
echo "STEP 4: Determining root device" while true do while [ "${got_good_root}" != "1" ] do if [ "${REAL_ROOT}" = "shell" ] then /bin/ash #set REAL_ROOT to "" so we get a prompt for the real root after the shell exits. REAL_ROOT="" got_good_root=0 continue elif [ "${REAL_ROOT}" = "" ] then #no REAL_ROOT determined/specified. Prompt user for root block device. echo "Root block device unspecified or not detected." echo "Please specify a device to boot, or \"shell\" for a shell." echo -n ": " read REAL_ROOT got_good_root=0 elif [ -b "${REAL_ROOT}" ] then got_good_root=1 else REAL_ROOT="" got_good_root=0 fi done if [ "${CDROOT}" -eq "1" -a "${got_good_root}" = "1" ] then break else echo "STEP 4a: Mounting root" mount -o rw ${REAL_ROOT} /newroot if [ "$?" = "0" ] then break else echo "Could not mount specified ROOT, try again" got_good_root=0 REAL_ROOT="" fi fi done
grub などのオプションで real_root が指定されていると上のルーチンが走り指定したディスクをマウントするようだ.どちらにしても genkernel-3.0 についている linuxrc はディスクのマウント処理を行っている.
このあと initrc 内でも root をマウントするので二重マウントになるんだろう.linuxrcはgentoo固有のモノなので修正するならこちらだな.なんとなく原因はわかったので実際にlinuxrcをいじってのテストを次のマシン再起動時にやってみよう.
追記 : gentooのbugzillaに登録されているみたい.二重マウントによって正しくshutdownされないことのほうが問題になっているみたい.やはり今日試してみるか.