can't open '/dev/console'
【症状】
ディスクレス・クライアントがブートの途中で
switch_root: can't open '/dev/console': No such file or directory Kernel panic - not syncing: Attempted to kill init!
というメッセージで止まってしまう。
【解決策】
ディスクレス・クライアントの雛形となるファイルシステムをシステム停止状態でコピーすると/devの下が空のままコピーされる。/devの下のデバイスファイルは動的に作られるが、netbootによるディスクレスを構成する場合には、最低限consoleデバイスが必要となる。(現在、Fedora 8で確認。)
雛形のdevディレクトリ(/tftpboot/DIR/root/dev/)でconsoleを作成してからクライアントのsnapshotを作成する、もしくはクライアントのsnapshotのdevディレクトリ(/tftpboot/DIR/snapshot/CLIENT/dev/)でconsoleを作成する。(前者の方が理想的。)consoleの作成は以下の通り。
[root@server-01 dev]# pwd /tftpboot/f8/root/dev [root@server-01 dev]# ls -l total 0 [root@server-01 dev]# mknod console c 5 1 [root@server-01 dev]# chmod 600 console [root@server-01 dev]# ls -l total 4 crw------- 1 root root 5, 1 2008-02-09 17:04 console [root@server-01 dev]#
最終的にはクライアント側で /dev/ はtmpfsにマウントされ、そこで動的にデバイスファイルが生成される。このconsoleはそれまでの間、一時的に必要(と推測できる)。次のサンプルはクライアント側で/devに対するマウント状況を調べたところ:
[root@client-01 ~]# mount | grep '/dev ' 192.168.0.7:/tftpboot/f8/snapshot on /dev type nfs (rw,relatime,vers=3,rsize=32768,wsize=32768,hard,intr,nolock,nosharecache,proto=tcp,timeo=600,retrans=2,sec=sys,addr=192.168.0.7) none on /dev type tmpfs (rw,relatime) [root@client-01 ~]# df /dev Filesystem 1K-blocks Used Available Use% Mounted on none 514340 56 514284 1% /dev [root@client-01 ~]#
一旦NFSでsnapshotをマウントしてから、最終的にはtmpfs(メモリのキャッシュを使う)として再マウントしている。その後、デバイスファイルを生成している。