Browse Source

NFS: Add support for debian based distros

This patch enhances nfsroot and the nfs test-suite with compatibility
for debian based distros. This is mainly the difference of using
portmap instead of rpcbind and the missing file /etc/netconfig
master
Philippe Seewer 16 years ago
parent
commit
3da03a6036
  1. 3
      modules.d/95nfs/check
  2. 8
      modules.d/95nfs/install
  3. 3
      modules.d/95nfs/nfsroot
  4. 2
      modules.d/99base/init
  5. 3
      test/TEST-20-NFS/server-init
  6. 7
      test/TEST-20-NFS/test.sh

3
modules.d/95nfs/check

@ -7,5 +7,6 @@ @@ -7,5 +7,6 @@
[ "$1" = "-h" ] && ! egrep -q '/ nfs[34 ]' /proc/mounts && exit 1

# If our prerequisites are not met, fail anyways.
which rpcbind rpc.statd mount.nfs mount.nfs4 umount >/dev/null 2>&1 || exit 1
which rpcbind >/dev/null 2>&1 || which portmap >/dev/null 2>&1 || exit 1
which rpc.statd mount.nfs mount.nfs4 umount >/dev/null 2>&1 || exit 1
exit 0

8
modules.d/95nfs/install

@ -1,6 +1,10 @@ @@ -1,6 +1,10 @@
#!/bin/sh
dracut_install rpcbind rpc.statd mount.nfs mount.nfs4 umount
dracut_install /etc/netconfig /etc/passwd /etc/services
which portmap >/dev/null 2>&1 && dracut_install portmap
which rpcbind >/dev/null 2>&1 && dracut_install rpcbind

dracut_install rpc.statd mount.nfs mount.nfs4 umount
[ -f /etc/netconfig ] && dracut_install /etc/netconfig
dracut_install /etc/passwd /etc/services
dracut_install /etc/nsswitch.conf /etc/rpc /etc/protocols
dracut_install rpc.idmapd /etc/idmapd.conf
if ldd $(which rpc.idmapd) |grep -q lib64; then

3
modules.d/95nfs/nfsroot

@ -68,7 +68,8 @@ incol2 /proc/filesystems nfs4 || modprobe nfs || exit 1 @@ -68,7 +68,8 @@ incol2 /proc/filesystems nfs4 || modprobe nfs || exit 1
# Start rpcbind and rpc.statd as mount won't let us use locks on a NFSv4
# filesystem without talking to them, even though they are unneeded
# XXX occasionally saw 'rpcbind: fork failed: No such device' -- why?
[ -n "$(pidof rpcbind)" ] || rpcbind
[ -x /sbin/portmap ] && [ -z "$(pidof portmap)" ] && portmap
[ -x /sbin/rpcbind ] && [ -z "$(pidof rpcbind)" ] && rpcbind
[ -n "$(pidof rpc.statd)" ] || rpc.statd

# XXX should I do rpc.idmapd here, or wait and start in the new root

2
modules.d/99base/init

@ -7,11 +7,11 @@ @@ -7,11 +7,11 @@

emergency_shell()
{
source_all emergency
echo ; echo
echo "Bug in initramfs /init detected. Dropping to a shell. Good luck!"
echo
sh -i
source_all emergency
}

export PATH=/sbin:/bin:/usr/sbin:/usr/bin

3
test/TEST-20-NFS/server-init

@ -15,7 +15,8 @@ mount --bind /nfs/client /nfs/ip/192.168.50.101 @@ -15,7 +15,8 @@ mount --bind /nfs/client /nfs/ip/192.168.50.101
mount --bind /nfs/client /nfs/tftpboot/nfs4-5
modprobe sunrpc
mount -t rpc_pipefs sunrpc /var/lib/nfs/rpc_pipefs
rpcbind
[ -x /sbin/portmap ] && portmap
[ -x /sbin/rpcbind ] && rpcbind
modprobe nfsd
mount -t nfsd nfsd /proc/fs/nfsd
exportfs -r

7
test/TEST-20-NFS/test.sh

@ -272,8 +272,11 @@ test_setup() { @@ -272,8 +272,11 @@ test_setup() {
. $basedir/dracut-functions
dracut_install sh ls shutdown poweroff stty cat ps ln ip \
/lib/terminfo/l/linux dmesg mkdir cp ping exportfs \
rpcbind modprobe rpc.nfsd rpc.mountd dhcpd showmount tcpdump \
/etc/netconfig /etc/services sleep mount
modprobe rpc.nfsd rpc.mountd dhcpd showmount tcpdump \
/etc/services sleep mount
which portmap >/dev/null 2>&1 && dracut_install portmap
which rpcbind >/dev/null 2>&1 && dracut_install rpcbind
[ -f /etc/netconfig ] && dracut_install /etc/netconfig
instmods nfsd sunrpc ipv6
inst ./server-init /sbin/init
inst ./hosts /etc/hosts

Loading…
Cancel
Save