]> git.ipfire.org Git - thirdparty/dracut.git/blob - test/TEST-20-NFS/server-init.sh
style: shfmt reformat
[thirdparty/dracut.git] / test / TEST-20-NFS / server-init.sh
1 #!/bin/sh
2 exec < /dev/console > /dev/console 2>&1
3 set -x
4 export PATH=/sbin:/bin:/usr/sbin:/usr/bin
5 export TERM=linux
6 export PS1='nfstest-server:\w\$ '
7 echo > /dev/watchdog
8 stty sane
9 echo "made it to the rootfs!"
10 echo server > /proc/sys/kernel/hostname
11
12 wait_for_if_link() {
13 local cnt=0
14 local li
15 while [ $cnt -lt 600 ]; do
16 li=$(ip -o link show dev $1 2> /dev/null)
17 [ -n "$li" ] && return 0
18 if [[ $2 ]]; then
19 li=$(ip -o link show dev $2 2> /dev/null)
20 [ -n "$li" ] && return 0
21 fi
22 sleep 0.1
23 cnt=$(($cnt + 1))
24 done
25 return 1
26 }
27
28 wait_for_if_up() {
29 local cnt=0
30 local li
31 while [ $cnt -lt 200 ]; do
32 li=$(ip -o link show up dev $1)
33 [ -n "$li" ] && return 0
34 sleep 0.1
35 cnt=$(($cnt + 1))
36 done
37 return 1
38 }
39
40 wait_for_route_ok() {
41 local cnt=0
42 while [ $cnt -lt 200 ]; do
43 li=$(ip route show)
44 [ -n "$li" ] && [ -z "${li##*$1*}" ] && return 0
45 sleep 0.1
46 cnt=$(($cnt + 1))
47 done
48 return 1
49 }
50
51 linkup() {
52 wait_for_if_link $1 2> /dev/null && ip link set $1 up 2> /dev/null && wait_for_if_up $1 2> /dev/null
53 }
54
55 wait_for_if_link eth0 ens2
56
57 ip addr add 127.0.0.1/8 dev lo
58 ip link set lo up
59 ip link set dev eth0 name ens2
60 ip addr add 192.168.50.1/24 dev ens2
61 ip addr add 192.168.50.2/24 dev ens2
62 ip addr add 192.168.50.3/24 dev ens2
63 linkup ens2
64
65 echo > /dev/watchdog
66 modprobe af_packet
67 echo > /dev/watchdog
68 mount --bind /nfs/client /nfs/nfs3-5
69 echo > /dev/watchdog
70 mount --bind /nfs/client /nfs/ip/192.168.50.101
71 echo > /dev/watchdog
72 mount --bind /nfs/client /nfs/tftpboot/nfs4-5
73 echo > /dev/watchdog
74 modprobe sunrpc
75 echo > /dev/watchdog
76 mount -t rpc_pipefs sunrpc /var/lib/nfs/rpc_pipefs
77 echo > /dev/watchdog
78 [ -x /sbin/portmap ] && portmap
79 echo > /dev/watchdog
80 mkdir -p /run/rpcbind
81 [ -x /sbin/rpcbind ] && rpcbind
82 echo > /dev/watchdog
83 modprobe nfsd
84 echo > /dev/watchdog
85 mount -t nfsd nfsd /proc/fs/nfsd
86 echo > /dev/watchdog
87 exportfs -r
88 echo > /dev/watchdog
89 rpc.nfsd
90 echo > /dev/watchdog
91 rpc.mountd
92 echo > /dev/watchdog
93 rpc.idmapd
94 echo > /dev/watchdog
95 exportfs -r
96 echo > /dev/watchdog
97 mkdir -p /var/lib/dhcpd
98 > /var/lib/dhcpd/dhcpd.leases
99 echo > /dev/watchdog
100 chmod 777 /var/lib/dhcpd/dhcpd.leases
101 echo > /dev/watchdog
102 rm -f /var/run/dhcpd.pid
103 dhcpd -d -cf /etc/dhcpd.conf -lf /var/lib/dhcpd/dhcpd.leases &
104 echo "Serving NFS mounts"
105 while :; do
106 [ -n "$(jobs -rp)" ] && echo > /dev/watchdog
107 sleep 10
108 done
109 mount -n -o remount,ro /
110 poweroff -f