You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.9 KiB
47 lines
1.9 KiB
#!/bin/sh |
|
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/services |
|
dracut_install /etc/nsswitch.conf /etc/rpc /etc/protocols |
|
dracut_install rpc.idmapd /etc/idmapd.conf |
|
dracut_install sed |
|
|
|
if ldd $(which rpc.idmapd) |grep -q lib64; then |
|
LIBDIR="/lib64" |
|
else |
|
LIBDIR="/lib" |
|
fi |
|
|
|
dracut_install $(ls {/usr,}$LIBDIR/libnfsidmap_nsswitch.so* 2>/dev/null ) |
|
dracut_install $(ls {/usr,}$LIBDIR/libnfsidmap/*.so 2>/dev/null ) |
|
dracut_install $(ls {/usr,}$LIBDIR/libnfsidmap*.so* 2>/dev/null ) |
|
|
|
nsslibs=$(sed -e '/^#/d' -e 's/^.*://' -e 's/\[NOTFOUND=return\]//' /etc/nsswitch.conf \ |
|
| tr -s '[:space:]' '\n' | sort -u | tr -s '[:space:]' '|') |
|
nsslibs=${nsslibs#|} |
|
nsslibs=${nsslibs%|} |
|
|
|
dracut_install $(for i in $(ls {/usr,}$LIBDIR/libnss*.so 2>/dev/null); do echo $i;done | egrep "$nsslibs") |
|
|
|
inst_hook cmdline 90 "$moddir/parse-nfsroot.sh" |
|
inst_hook pre-pivot 99 "$moddir/nfsroot-cleanup.sh" |
|
inst "$moddir/nfsroot" "/sbin/nfsroot" |
|
mkdir -p "$initdir/var/lib/nfs/rpc_pipefs" |
|
mkdir -p "$initdir/var/lib/rpcbind" |
|
mkdir -p "$initdir/var/lib/nfs/statd/sm" |
|
|
|
# Rather than copy the passwd file in, just set a user for rpcbind |
|
# We'll save the state and restart the daemon from the root anyway |
|
egrep '^root:' "$initdir/etc/passwd" 2>/dev/null || echo 'root:x:0:0::/:/bin/sh' >> "$initdir/etc/passwd" |
|
egrep '^nobody:' /etc/passwd >> "$initdir/etc/passwd" |
|
egrep '^nfsnobody:' /etc/passwd >> "$initdir/etc/passwd" |
|
egrep '^rpc:' /etc/passwd >> "$initdir/etc/passwd" |
|
egrep '^rpcuser:' /etc/passwd >> "$initdir/etc/passwd" |
|
#which nologin >/dev/null 2>&1 && dracut_install nologin |
|
|
|
# rpc user needs to be able to write to this directory to save the warmstart |
|
# file |
|
chmod 777 "$initdir/var/lib/rpcbind"
|
|
|