Короче, запустил я все это дело.
Мой файл pxelinux.cfg/default
LABEL linux
KERNEL vmlinuz-2.6.15
APPEND nfsroot=192.168.4.110:/clients/192.168.4.100/root
Ядро test не загрузилось (такая же ошибка), поэтому поставил системное ядро.
192.168.4.110 - адрес сервера
/clients/192.168.4.100/root - рутовая директория на сервере для клиента (полностью реплицированная файловая система).
Ядро предполагаю скомпилено без поддержки nfsroot (просто так оно компилится по дефолту). В мануале делается упор на сборку именно с nfsroot.
Итак, выскакивает ошибка:
EXT2-fs: unable to read superblock
iso_fill_super: bread failed, dev=md1, iso_blknum=16, block=32
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block (9, 1)
Кстати, насчет документации. Думаю, там ошибка: вместо root=/dev/nfs следует писать boot=/dev/nfs. При этой замене выскакивает такая же ошибка.
Повторяю, ядро собрано скорее всего без поддержки nfsroot и с модулями. То, что я скомпилил - не хочет удаленно грузиться. До initrd дело не доходит, так что дело не в нем.
В чем же все таки здесь дело?
Могу привести строчки из документации:
INSTALL PXELINUX
With DHCP configured to tell the PXE ROM the location of the network boot program, you need to find and install a suitable NBP. PXELinux is a network boot program developed by the author of the SYSLinux boot loader. It uses the PXE API to locate and download a configuration file, and then uses that configuration file to download and execute the Linux kernel. You can download the newest version of SysLinux from www.kernel.org and copy the file pxelinux.0 to the /tftpboot directory.
When PXELinux boots on the client, it tries to load a configuration file. Create an initial configuration file /tftpboot/pxelinux.cfg/default containing the following lines:
LABEL linux
KERNEL vmlinuz-2.2.20
APPEND root=/dev/nfs
COMPILING A NEW KERNEL
Although there are other approaches, let's recompile the kernel to include all of the network drivers that are needed, plus a few other useful tidbits. Using make menuconfig, make sure you have the items shown in Figure One compiled into the kernel (do not compile them as modules):
Figure One: Building a kernel for the network boot clients
Network Device Support/Ethernet
No real harm comes from including unused PCI Ethernet drivers, so go ahead and include any that are in common use on your network.
Networking Options
The kernel needs to perform a DHCP request when it boots to initialize the network interfaces. You should enable IP: kernel-level configuration support (CONFIG_IP_PNP) and the two sub-options Enable by default (CONFIG_IP_PNP_ENABLE) and DHCP support (CONFIG_IP_PNP_DHCP).
Filesystems/Network File Systems
The kernel needs to be able to access its root filesystem using NFS. You should enable NFS filesystem support (CONFIG_NFS _FS) and the two sub-options NFS version 3 support (CONFIG _NFS_V3) and Root file system on NFS (CONFIG_ROOT_NFS).
Block Devices
While not strictly necessary, ram disk support can be very useful. Enable RAM disk support (CONFIG_BLK_DEV_RAM).
Once you've configured the client kernel of your dreams save the configuration, compile the new kernel, and copy the kernel file to /tftpboot:
# make dep bzImage
# cp arch/i386/boot/bzImage \ /tftpboot/vmlinuz-X.X.X
#
Remember to replace X.X.X with the correct version for this kernel. Also remember that this is the kernel for the client, so you should not use make install to install it.
TEST BOOT
Double-check the PXELinux configuration in /tftpboot/ pxelinux.cfg/default to make sure the kernel file specified there matches the kernel file in the /tftpboot directory. Then try booting your client machine.
This time, PXELinux should boot and load the Linux kernel file. Watch to make sure that the kernel successfully detects the Ethernet card in the client machine and successfully obtains startup information from DHCP.
If anything goes wrong, double-check your kernel configuration. You may have accidentally compiled a critical component as a module.
This time, the boot will fail when Linux is unable to mount the root filesystem. That's ok. We're making progress. Next, we mount filesystems from the server.
Благодярю всех ответивших.