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 の動作検証になってる事をご勘弁下さいまし。