トップ «前の日記(2005年07月09日) 最新 次の日記(2005年07月12日)» 編集
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|10|12|
2009|02|03|06|07|10|11|12|
2010|01|02|03|04|07|09|10|11|12|
2011|01|03|04|05|06|07|08|10|
2012|01|06|08|09|10|12|
2013|01|02|03|04|07|09|11|12|
2014|01|03|04|05|06|09|
2015|04|
2016|01|08|
ここは旧えびめもです。えびめも2に移行します(2016/12/1)

2005年07月11日

仕事

東京出張。明日まで組み込みLinuxセミナー講師。

Linux

bashを /sbin/init として保存してブートする実験をすると
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 260k freed
auto: auto: No such file or directory
Kernel panic: Attempted to kill init!
というエラーが出る。autoってファイルを探しているようだ。
$ man init
-a, auto 
  LILO ブートローダは、 デフォルトのコマンドラインで (ユーザの介入なしに) カーネルを起動すると、 
  コマンドラインに単語 "auto" を追加する。 init はこの単語を見つけると、"AUTOBOOT" 環境変数を
  "yes" に設定する。 ただしこの機能をセキュリティの判断には使えない。 あたりまえだが、 ユーザーは
  "auto" や -a を手動でコマンドラインに追加することもできる。
なるほど、liloがkernelコマンドラインにautoを付け、カーネルが /init/sbin に auto を付けるのか。結果、 bash が auto をシェルスクリプトとして起動しようとしてるらしい。んで、当然そんなものない。
linux-2.4.31/init/main.c
                if (!strncmp(line,"init=",5)) {
                        line += 5;
                        execute_command = line;
                        /* In case LILO is going to boot us with default command line,
                         * it prepends "auto" before the whole cmdline which makes
                         * the shell think it should execute a script with such name.
                         * So we ignore all arguments entered _before_ init=... [MJ]
                         */
                        args = 0;
                        continue;
                }
init=を付ければautoを無視するようなコードを発見。まぁ原因が分かって良かった。

traceroute?

たまたまザッピングしてたらNHK教育で『いろいろな国に traceroute をかけてホップ数を数えてみよう!』ってコーナーをやってた。
tracerouteで距離が分かるんですよ
皆さんもtracerouteに挑戦してみよう
だって。そんなんピンポイント知識すぎ。