CentOS で試す (8)
そろそろ動作確認には飽きてきてたり (を
動作確認微妙です。まだ挙動が見えない部分多数です。のでもう少しきちんと動作検証の必要あり。昨晩の続きを力尽きるまで、とゆーコトで。
script/functions
ちょっと長いんで細切れで。
_log_msg() { if [ "$quiet" = "y" ]; then return; fi echo "$@" }
ログ出力向け。quiet というシェル変数が出てきます。これは init の script/functions を source してる箇所の直後で一部を export してたりなんかします。
# Export relevant variables export break= export init=/sbin/init export quiet=n export readonly=y export rootmnt=/root export debug= export cryptopts=${CRYPTOPTS} export ROOTDELAY= export panic=
上記は結構ポイント高い。というのもその直後でカーネルの起動オプションをパースして云々、な処理をしてるんですが
# Parse command line options for x in $(cat /proc/cmdline); do case $x in
ええと = 付きのソレが以下 (右辺値が変数に格納
- init
- root
- 例外措置あり
- rootflags
- -o が付きます
- rootfstype
- rootdelay
- cryptopts
- nfsroot
- ip
- IPOPTS という変数に右辺値が格納
- boot
- resume
- panic
- debug
- break
そうでないソレが以下
- noresume
- NORESUME に y が格納
- quiet
- quiet に y が格納
- ro
- readonly に y が格納
- rw
- readonly に n が格納
- debug
- debug に y が格納された後に色々
- break
- break に remount が格納
直後に以下な式がある。
if [ -z "${NORESUME}" ]; then export resume=${RESUME} fi
resume と noresume は noresume が優先する模様。という事にて _log_msg というシェル関数はカーネルの起動オプションに quiet が指定された場合は与えられた引数を出力しない、という処理な模様。
因みに
CentOS 云々ってタイトルになってますが、基本でびあんの initramfs の動作検証になってる事をご勘弁下さいまし。