summaryrefslogtreecommitdiffstats
path: root/test/TEST-20-NFS/client-init.sh
diff options
context:
space:
mode:
Diffstat (limited to 'test/TEST-20-NFS/client-init.sh')
-rwxr-xr-xtest/TEST-20-NFS/client-init.sh49
1 files changed, 49 insertions, 0 deletions
diff --git a/test/TEST-20-NFS/client-init.sh b/test/TEST-20-NFS/client-init.sh
new file mode 100755
index 0000000..061a2b1
--- /dev/null
+++ b/test/TEST-20-NFS/client-init.sh
@@ -0,0 +1,49 @@
+#!/bin/sh
+: > /dev/watchdog
+. /lib/dracut-lib.sh
+. /lib/url-lib.sh
+
+export PATH=/usr/sbin:/usr/bin:/sbin:/bin
+command -v plymouth > /dev/null 2>&1 && plymouth --quit
+exec > /dev/console 2>&1
+
+export TERM=linux
+export PS1='initramfs-test:\w\$ '
+stty sane
+if getargbool 0 rd.shell; then
+ [ -c /dev/watchdog ] && printf 'V' > /dev/watchdog
+ strstr "$(setsid --help)" "control" && CTTY="-c"
+ setsid $CTTY sh -i
+fi
+
+echo "made it to the rootfs! Powering down."
+
+while read -r dev _ fstype opts rest || [ -n "$dev" ]; do
+ [ "$fstype" != "nfs" -a "$fstype" != "nfs4" ] && continue
+ echo "nfs-OK $dev $fstype $opts" | dd oflag=direct,dsync of=/dev/disk/by-id/ata-disk_marker
+ break
+done < /proc/mounts
+
+if [ "$fstype" = "nfs" -o "$fstype" = "nfs4" ]; then
+
+ serverip=${dev%:*}
+ path=${dev#*:}
+ echo serverip="${serverip}"
+ echo path="${path}"
+ echo /proc/mounts status
+ cat /proc/mounts
+
+ echo test:nfs_fetch_url nfs::"${serverip}":"${path}"/root/fetchfile
+ if nfs_fetch_url nfs::"${serverip}":"${path}"/root/fetchfile /run/nfsfetch.out; then
+ echo nfsfetch-OK
+ echo "nfsfetch-OK" | dd oflag=direct,dsync of=/dev/disk/by-id/ata-disk_marker2
+ fi
+else
+ echo nfsfetch-BYPASS fstype="${fstype}"
+ echo "nfsfetch-OK" | dd oflag=direct,dsync of=/dev/disk/by-id/ata-disk_marker2
+fi
+
+: > /dev/watchdog
+
+sync
+poweroff -f