On Thu, 2009-12-24 at 17:12 +0100, Carsten Koch wrote: ...
- I originally set up the system as a diskless (nfsroot) system, but KDE 4 (I am using OpenSuSE 11.2) performs unbearably slow, so I was forced to install a hard disk.
Just in case anyone wants to try to set up an nfsroot VDR system with that main bord, here is what I had to do to make it work:
In general, it is much easier now to set up an nfsroot system, than it was a few years ago.
I attached a hard disk to the PC and installed OpenSUSE 11.2 on it normally. All to one partition, no swap.
I re-built the kernel: cd /usr/src/linux gunzip </proc/config.gz>.config make oldconfig make all
I copied the whole disk partition over to the server, then mounted it from there as /atom.
I created a new initrd for nfsroot: mkinitrd -f nfs -D eth0 /atom See the mkinitrd man page.
I copied that initrd and the kernel to the server, activated a dhcp server and a tftp server with pxelinux. My /tftpboot/pxelinux.cfg/01-00-e0-4c-00-17-3f file contains:
DEFAULT vmlinuz-2.6.31.5-0.1-desktop initrd=initrd-2.6.31.5-0.1-desktop root=192.168.25.6:/nfsroot/atom ip=192.168.25.30:192.168.25.6:192.168.25.4:255.255.255.0:atom:eth0:none TIMEOUT 10000
I changed /nfsroot/atom/etc/ftsab so root is mounted via nfs: 192.168.25.6:/nfsroot/atom / nfs exec,rw 0 0
in /nfsroot/atom/etc/sysconfig/network/ifcfg-eth0 I set STARTMODE='nfsroot' (I read that somewhere. No idea if it is really required)
After that, the system started to boot via the network. I have another system that works fine this way, but the atom system failed to mount the nfs root during boot. There seems to be a timing problem with the network driver.
I worked around that by patching boot/83-mount.sh in the initrd. I put a "sleep 2" before the mount command. (I tried sleep 1, but that was not enough. YMMV).
Note that the initrd is a gzipped cpio archive in NEWC format. I unpacked the old archive using gunzip <initrd-2.6.31.5-0.1-desktop>initrd.cpio mkdir initrd cd initrd cpio -i <../initrd.cpio
I re-packed the modified archive using cpio -t <../initrd.cpio > /tmp/list cpio -H NEWC -o </tmp/list > ../new.cpio gzip -9 ../new.cpio
Carsten.