Snap.Shot.cx

[次の記事] ミスターA、受付さん、新人くん、...
[前の記事] PCをBluetoothオーディオのトランスミッタとして使う

[Linux] Ubuntu casperでシャットダウン時にプロンプトを表示させない
01/29/2011 17:13 (投稿者:たかの)

casperというのは、UbuntuのLiveCDにも使われている、読取専用のルートファイルシステム(squashfs)を利用した起動の仕組み。
この仕組みを利用して、僕はカスタマイズしたMaverickのrootfsをUSBメモリに入れ、データはNILFS2ベースのcasper-rwとhome-rwに書き込むようにしている。
具体的にどうなってるかは、LiveCDのinitrdを紐解いてみるか、casperパッケージの/usr/share/initramfs-tools/scripts/casperを起点に追ってみると面白いと思うが、簡潔にまとめるのは難しいのでここでは割愛する。
この記事は、そんな環境でのちょっとした小ネタのはなし。

LiveCD起動のときと同様、僕の環境でも、シャットダウン時には必ずこんなメッセージが出る。

Please remove the disc and close the tray (if any) then press ENTER:

んで、ここでEnterキーを叩いてはじめてシャットダウンなり再起動がかかる。
これは通常のブート環境に戻したいのに、ふたたびLiveCDから起動してしまうような悲しい事態を避けるための配慮だと思うんだけど、起動シーケンスなど熟知していて、とにかく早く電源を切りたい自分のような人間には余計なおせっかいに思う。
(切れているはずの電源が切れていなくて、何度がっかりしたことか!)

このメッセージを出しているのが誰なのか、そしてこれを抑止するにはどうしたらいいんかいな?とちょっと追ってみたら、/etc/init.d/casperという当たり前の場所に収まっていた。
(もちろんcasperパッケージ由来なので、インストールされていない環境には存在しないはず)

仕組みも極めて分かりやすく、ソースを読めば一目瞭然。

prompt=1
if grep -qs noprompt /proc/cmdline; then
prompt=
fi
(中略)
[ "$prompt" ] || return 0

であるので、ブート時のカーネルパラメータに"noprompt"と記載しておけばよい。

たぶんUbuntuの文書を順に紐解けば、ちゃんとどこかに書いてあるんだろうけど、一生懸命探し出す能力も時間も無い僕みたいな奴でも、ちゃんとソースを追ってゆけば分かるというお話でした。

メールでコメント

(Powered by Zope)
リンクはご自由にどうぞ。各記事には記事番号がついていますので、URLは変わりません。
© 2000-2013 Yukimasa TAKANO, all RIGHTs reserved.