summaryrefslogtreecommitdiffstats
path: root/hooks
diff options
context:
space:
mode:
authorThomas Bächler <thomas@archlinux.org>2010-02-16 00:30:48 +0100
committerThomas Bächler <thomas@archlinux.org>2010-02-16 00:30:48 +0100
commit8a81daeb4fdc9f559ef972ac5a2cda9f313000f1 (patch)
tree144cf7663228304793e0ea9ac1b5be1d9a23292b /hooks
parentc83d5eb8c694ac266b3055c38254e751e8917e8e (diff)
downloadmkinitcpio-8a81daeb4fdc9f559ef972ac5a2cda9f313000f1.tar.gz
mkinitcpio-8a81daeb4fdc9f559ef972ac5a2cda9f313000f1.tar.xz
Introduce mount handlers
Instead of having special NFS code in /init, make it possible for a hook to register a mount handler When a hook sets the mount_handler environment variable, the normal mount code will be skipped and the handler will be called with the path to mount point as the first and only argument.
Diffstat (limited to 'hooks')
-rw-r--r--hooks/net14
1 files changed, 14 insertions, 0 deletions
diff --git a/hooks/net b/hooks/net
index ff33955..d2085c7 100644
--- a/hooks/net
+++ b/hooks/net
@@ -80,6 +80,20 @@ run_hook ()
rootfstype="nfs"
echo "NFS-Mount: ${nfs_server}:${nfs_path}"
+
+ # set mount handler for NFS
+ mount_handler="nfs_mount_handler"
fi
fi
}
+
+nfs_mount_handler() {
+ if [ -z "$nfs_server" -o -z "$nfs_path" ]; then
+ err "Unable to mount root filesystem over NFS: wrong parameters."
+ echo "You are being dropped to a recovery shell"
+ echo " Type 'exit' to try and continue booting"
+ launch_interactive_shell
+ msg "Trying to continue (this will most likely fail) ..."
+ fi
+ nfsmount ${nfs_option:+-o ${nfs_option}} "${nfs_server}:${nfs_path}" "$1"
+}