summaryrefslogtreecommitdiffstats
path: root/hooks/usr
diff options
context:
space:
mode:
authorDave Reisner <dreisner@archlinux.org>2012-05-14 02:05:50 +0200
committerDave Reisner <dreisner@archlinux.org>2012-05-18 19:09:38 +0200
commitf88b2b53a4b2dcb177cb8b7197e2a61fd510c7ef (patch)
treeacc17508300dcc712add2d1571883aafca64d1c8 /hooks/usr
parentc5b1a1cef975686ff130c71b5212e3304af5625a (diff)
downloadmkinitcpio-f88b2b53a4b2dcb177cb8b7197e2a61fd510c7ef.tar.gz
mkinitcpio-f88b2b53a4b2dcb177cb8b7197e2a61fd510c7ef.tar.xz
usr: add usr mounting as a late running hook
Mount separate /usr partitions voluntarily, as a late running hook. This is an unfortunate patch that will no doubt result in some hatemail, though it won't thoroughly break anyone to the point of not booting. As a side effect, findmnt is no longer a requisite of the core /init, so move it to the shutdown and usr hooks where it's required. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
Diffstat (limited to 'hooks/usr')
-rw-r--r--hooks/usr16
1 files changed, 16 insertions, 0 deletions
diff --git a/hooks/usr b/hooks/usr
new file mode 100644
index 0000000..389e14c
--- /dev/null
+++ b/hooks/usr
@@ -0,0 +1,16 @@
+#!/usr/bin/ash
+
+run_latehook() {
+ local realtab=/new_root/etc/fstab
+
+ if [ -f "$realtab" ]; then
+ if usr_source=$(findmnt -snero source --tab-file="$realtab" /usr); then
+ mountopts=$(findmnt -snero options --tab-file="$realtab" /usr)
+ fsck_device "$usr_source"
+ msg ":: mounting '$usr_source' on /usr"
+ mount "$usr_source" /new_root/usr -o "$mountopts"
+ fi
+ fi
+}
+
+# vim: set ft=sh ts=4 sw=4 et: