132 lines
2.9 KiB
Bash
Executable File
132 lines
2.9 KiB
Bash
Executable File
#!/bin/sh
|
|
exec < /dev/console > /dev/console 2>&1
|
|
set -x
|
|
export PATH=/usr/sbin:/usr/bin:/sbin:/bin
|
|
export TERM=linux
|
|
export PS1='nfstest-server:\w\$ '
|
|
stty sane
|
|
echo "made it to the rootfs!"
|
|
echo server > /proc/sys/kernel/hostname
|
|
|
|
wait_for_if_link() {
|
|
local cnt=0
|
|
local li
|
|
|
|
while [ $cnt -lt 600 ]; do
|
|
ip link show
|
|
|
|
li=$(ip -o link show dev "$1" 2> /dev/null)
|
|
[ -n "$li" ] && return 0
|
|
sleep 0.1
|
|
cnt=$((cnt + 1))
|
|
done
|
|
return 1
|
|
}
|
|
|
|
wait_for_if_up() {
|
|
local cnt=0
|
|
local li
|
|
while [ $cnt -lt 200 ]; do
|
|
li=$(ip -o link show up dev "$1")
|
|
[ -n "$li" ] && return 0
|
|
sleep 0.1
|
|
cnt=$((cnt + 1))
|
|
done
|
|
return 1
|
|
}
|
|
|
|
wait_for_route_ok() {
|
|
local cnt=0
|
|
while [ $cnt -lt 200 ]; do
|
|
li=$(ip route show)
|
|
[ -n "$li" ] && [ -z "${li##*$1*}" ] && return 0
|
|
sleep 0.1
|
|
cnt=$((cnt + 1))
|
|
done
|
|
return 1
|
|
}
|
|
|
|
linkup() {
|
|
wait_for_if_link "$1" 2> /dev/null && ip link set "$1" up 2> /dev/null && wait_for_if_up "$1" 2> /dev/null
|
|
}
|
|
|
|
udevadm settle
|
|
|
|
ip link show
|
|
|
|
wait_for_if_link enx525401123456
|
|
wait_for_if_link enx525401123457
|
|
wait_for_if_link enx525401123458
|
|
wait_for_if_link enx525401123459
|
|
|
|
ip link set dev enx525401123456 name net1
|
|
ip link set dev enx525401123457 name net2
|
|
ip link set dev enx525401123458 name net3
|
|
ip link set dev enx525401123459 name net4
|
|
|
|
modprobe --all -b -q 8021q ipvlan macvlan
|
|
: > /dev/watchdog
|
|
ip addr add 127.0.0.1/8 dev lo
|
|
linkup lo
|
|
ip addr add 192.168.50.1/24 dev net1
|
|
linkup net1
|
|
: > /dev/watchdog
|
|
ip link add dev net2.1 link net2 type vlan id 1
|
|
ip link add dev net2.2 link net2 type vlan id 2
|
|
ip link add dev net2.3 link net2 type vlan id 3
|
|
ip link add dev net2.4 link net2 type vlan id 4
|
|
ip addr add 192.168.54.1/24 dev net2.1
|
|
ip addr add 192.168.55.1/24 dev net2.2
|
|
ip addr add 192.168.56.1/24 dev net2.3
|
|
ip addr add 192.168.57.1/24 dev net2.4
|
|
linkup net2
|
|
ip link set dev net2.1 up
|
|
ip link set dev net2.2 up
|
|
ip link set dev net2.3 up
|
|
ip link set dev net2.4 up
|
|
ip addr add 192.168.51.1/24 dev net3
|
|
linkup net3
|
|
linkup net4
|
|
: > /dev/watchdog
|
|
modprobe af_packet
|
|
: > /dev/watchdog
|
|
modprobe sunrpc
|
|
: > /dev/watchdog
|
|
mount -t rpc_pipefs sunrpc /var/lib/nfs/rpc_pipefs
|
|
: > /dev/watchdog
|
|
[ -x /sbin/portmap ] && portmap
|
|
: > /dev/watchdog
|
|
mkdir -p /run/rpcbind
|
|
[ -x /sbin/rpcbind ] && rpcbind
|
|
: > /dev/watchdog
|
|
modprobe nfsd
|
|
: > /dev/watchdog
|
|
mount -t nfsd nfsd /proc/fs/nfsd
|
|
: > /dev/watchdog
|
|
exportfs -r
|
|
: > /dev/watchdog
|
|
rpc.nfsd
|
|
: > /dev/watchdog
|
|
rpc.mountd
|
|
: > /dev/watchdog
|
|
rpc.idmapd -S
|
|
: > /dev/watchdog
|
|
exportfs -r
|
|
: > /dev/watchdog
|
|
: > /var/lib/dhcpd/dhcpd.leases
|
|
: > /dev/watchdog
|
|
chmod 777 /var/lib/dhcpd/dhcpd.leases
|
|
: > /dev/watchdog
|
|
dhcpd -cf /etc/dhcpd.conf -lf /var/lib/dhcpd/dhcpd.leases net1 net3
|
|
#echo -n 'V' : > /dev/watchdog
|
|
#sh -i
|
|
#tcpdump -i net1
|
|
# Wait forever for the VM to die
|
|
echo "Serving"
|
|
while :; do
|
|
sleep 10
|
|
: > /dev/watchdog
|
|
done
|
|
mount -n -o remount,ro /
|
|
poweroff -f
|