Вкратце: При попытке загрузить бездисковые станции с сервера по tftp клиент не может примонтировать отдаваемые диски:
VFS: Cannot open root device "nfs" or unknown-block(0,255)
Please append a correct "root=" boot option; here are the available partitions:
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block()
Подробности: Пытаюсь cобрать кластер по данному описнаию: http://cluster.linux-ekb.info/thincluster.php
На сервере установлен Debian Leny-5.0.6, ядро 2.6.26-2-686
Есть 2 сетевых интерфейса:
eth1 - смотрит в локалку, инициализируется по dhcp
eth0 - связь с нодами кластера, адрес прошит 192.168.1.33; сеть 192.168.1.0/24
iptables настраивал через arno-iptables-firewall. По eth1 маскирует всё, кроме 22-го порта, eth0 - не маскирует совсем.
NFS службы все подняты:
# rpcinfo -p 192.168.1.33
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100003 3 udp 2049 nfs
100003 3 tcp 2049 nfs
100005 1 udp 2049 mountd
100005 3 udp 2049 mountd
100005 1 tcp 2049 mountd
100005 3 tcp 2049 mountd
/etc/exports:
/usr/local/linux/ws 192.168.1.0/24(rw,no_root_squash)
/home/mpiuser 192.168.1.0/24(rw,no_root_squash)
Вручную диски сервера в кластерой локалке без проблем монтируются со стороннего компьютера (mount 192.168.1.33:/usr/local/linux/ws ~/net )
При загрузке клиента он получает адрес по dhcp, PXE-загрузчик полует ядро bzImage, инициализирует сетевой интерфейс и выпадает в панику при пропытке примонтировать отдаваемые по сети разделы.
Ядро собирал из исходников с kernel.org (2.6.27.54)
/usr/src/linux/.config:
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
# CONFIG_NFS_V3_ACL is not set
CONFIG_NFSD=y
CONFIG_NFSD_V3=y
# CONFIG_NFSD_V3_ACL is not set
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_EXPORTFS=y
CONFIG_NFS_COMMON=y
Конфигурационные файлы для загрузки по tftpboot не трогал:
/var/lib/tftpboot/pxelinux.cfg/C0A801C7:
default linux
prompt 0
label linux
kernel bzImage
append mpimain init=/sbin/init root=/dev/nfs nfsroot=192.168.1.33:/usr/local/linux/ws ip=192.168.1.199:192.168.1.33:192.168.1.33:255.255.255.0:node199::
Есть одна деталь, когда настраивал загрузку клиента, то tftpd отпинывал клиента пока в настройках xinetd принудительно не сменил ipv6 на ipv4:
:/etc/init.d# diff xinetd xinetd.prig
27c27
< XINETD_OPTS="$XINETD_OPTS -inetd_ipv4"
---
> XINETD_OPTS="$XINETD_OPTS -inetd_ipv6"
Вся кластерные сервисы сидят на ipv4, и ядро клиентов собирал без поддержки ipv6 (/usr/src/linux/.config: "# CONFIG_IPV6 is not set")
~# lsof -i
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
portmap 2182 daemon 4u IPv4 6162 UDP *:sunrpc
portmap 2182 daemon 5u IPv4 6169 TCP *:sunrpc (LISTEN)
rpc.statd 2194 statd 5r IPv4 6197 UDP *:674
rpc.statd 2194 statd 7u IPv4 6205 UDP *:42758
rpc.statd 2194 statd 8u IPv4 6208 TCP *:37665 (LISTEN)
exim4 2750 Debian-exim 3u IPv4 7103 TCP localhost.localdomain:smtp (LISTEN)
xinetd 2788 root 5u IPv4 7183 UDP *:tftp
famd 2791 root 3u IPv4 7199 TCP localhost.localdomain:847 (LISTEN)
unfsd 2858 root 3u IPv4 7590 UDP *:nfs
unfsd 2858 root 4u IPv4 7591 TCP *:nfs (LISTEN)
sshd 2961 root 3u IPv6 7942 TCP *:ssh (LISTEN)
sshd 2961 root 4u IPv4 7944 TCP *:ssh (LISTEN)
dhcpd3 2996 root 5u IPv4 8073 UDP *:bootps
dhclient 3004 root 5u IPv4 8152 UDP *:bootpc
sshd 3147 root 3r IPv4 8613 TCP 10.0.0.194:ssh->10.0.0.157:36522 (ESTABLISHED)
Где может быть заковырка? Поскольку паника происходит при попытке ядра клиента подключиться к дискам сервера, то, скорее всего, что-то неверно с передаваемыми параметрами для монтирования NFS. Однако гугление и яндексение не дало рабочей идеи.