- initdir=mnt
- . $basedir/dracut-functions
- dracut_install sh ls shutdown poweroff stty cat ps ln ip \
- /lib/terminfo/l/linux dmesg mkdir cp ping exportfs \
- modprobe rpc.nfsd rpc.mountd showmount tcpdump \
- /etc/services sleep mount chmod
- 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
- which dhcpd >/dev/null 2>&1 && dracut_install dhcpd
- [ -x /usr/sbin/dhcpd3 ] && inst /usr/sbin/dhcpd3 /usr/sbin/dhcpd
- instmods nfsd sunrpc ipv6
- inst ./server-init /sbin/init
- inst ./hosts /etc/hosts
- inst ./exports /etc/exports
- inst ./dhcpd.conf /etc/dhcpd.conf
- 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
- LIBDIR="/lib64"
- else
- LIBDIR="/lib"
- fi
-
- dracut_install $(ls {/usr,}$LIBDIR/libnfsidmap*.so* 2>/dev/null )
- dracut_install $(ls {/usr,}$LIBDIR/libnss*.so 2>/dev/null)
- (
- cd "$initdir";
- mkdir -p dev sys proc etc var/run tmp var/lib/{dhcpd,rpcbind}
- mkdir -p var/lib/nfs/{v4recovery,rpc_pipefs}
- chmod 777 var/lib/rpcbind var/lib/nfs
- )
- inst /etc/nsswitch.conf /etc/nsswitch.conf
- inst /etc/passwd /etc/passwd
- inst /etc/group /etc/group
- for i in /lib*/libnss_files**;do
- inst_library $i
- done
-
- /sbin/depmod -a -b "$initdir" $kernel
- cp -a /etc/ld.so.conf* $initdir/etc
- sudo ldconfig -r "$initdir"
+ export initdir=$TESTDIR/mnt
+ . $basedir/dracut-init.sh
+
+ for _f in modules.builtin.bin modules.builtin; do
+ [[ $srcmods/$_f ]] && break
+ done || {
+ dfatal "No modules.builtin.bin and modules.builtin found!"
+ return 1
+ }
+
+ for _f in modules.builtin.bin modules.builtin modules.order; do
+ [[ $srcmods/$_f ]] && inst_simple "$srcmods/$_f" "/lib/modules/$kernel/$_f"
+ done
+
+ inst_multiple sh ls shutdown poweroff stty cat ps ln ip \
+ dmesg mkdir cp ping exportfs \
+ modprobe rpc.nfsd rpc.mountd showmount tcpdump \
+ /etc/services sleep mount chmod rm
+ for _terminfodir in /lib/terminfo /etc/terminfo /usr/share/terminfo; do
+ [ -f ${_terminfodir}/l/linux ] && break
+ done
+ inst_multiple -o ${_terminfodir}/l/linux
+ type -P portmap >/dev/null && inst_multiple portmap
+ type -P rpcbind >/dev/null && inst_multiple rpcbind
+ [ -f /etc/netconfig ] && inst_multiple /etc/netconfig
+ type -P dhcpd >/dev/null && inst_multiple dhcpd
+ [ -x /usr/sbin/dhcpd3 ] && inst /usr/sbin/dhcpd3 /usr/sbin/dhcpd
+ instmods nfsd sunrpc ipv6 lockd af_packet
+ inst ./server-init.sh /sbin/init
+ inst_simple /etc/os-release
+ inst ./hosts /etc/hosts
+ inst ./exports /etc/exports
+ inst ./dhcpd.conf /etc/dhcpd.conf
+ inst_multiple /etc/nsswitch.conf /etc/rpc /etc/protocols
+ inst_multiple rpc.idmapd /etc/idmapd.conf
+
+ inst_libdir_file 'libnfsidmap_nsswitch.so*'
+ inst_libdir_file 'libnfsidmap/*.so*'
+ inst_libdir_file 'libnfsidmap*.so*'
+
+ _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%|}
+
+ inst_libdir_file -n "$_nsslibs" 'libnss_*.so*'
+
+ (
+ cd "$initdir";
+ mkdir -p dev sys proc run etc var/run tmp var/lib/{dhcpd,rpcbind}
+ mkdir -p var/lib/nfs/{v4recovery,rpc_pipefs}
+ chmod 777 var/lib/rpcbind var/lib/nfs
+ )
+ inst /etc/nsswitch.conf /etc/nsswitch.conf
+
+ inst /etc/passwd /etc/passwd
+ inst /etc/group /etc/group
+
+ cp -a /etc/ld.so.conf* $initdir/etc
+ sudo ldconfig -r "$initdir"
+ dracut_kernel_post