[pacman-dev] [mkinitcpio][PATCH 4/5] init: mount separate /usr

Dave Reisner d at falconindy.com
Thu Jan 12 18:12:06 EST 2012


Use findmnt to detect the existance of a separate /usr partition
existing in the real root. If it does exist, fetch the options for it
and mount it. This currently makes a lot of assumptions and won't be
very friendly towards something such as a dm-crypt device.

Signed-off-by: Dave Reisner <dreisner at archlinux.org>
---
Yes, 2.20.1-2 is techincally the requirement, but vercmp doesn't care.

 PKGBUILD |    2 +-
 init     |    9 +++++++++
 2 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/PKGBUILD b/PKGBUILD
index fc6b398..c596a69 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -8,7 +8,7 @@ license=('GPL')
 groups=('base')
 conflicts=('mkinitcpio')
 provides=("mkinitcpio=$pkgver")
-depends=('mkinitcpio-busybox>=1.16.1-2' 'module-init-tools' 'util-linux>=2.19' 'libarchive' 'coreutils'
+depends=('mkinitcpio-busybox>=1.16.1-2' 'module-init-tools' 'util-linux>=2.20.1' 'libarchive' 'coreutils'
          'bash' 'findutils' 'sed' 'grep' 'filesystem>=2011.10-1' 'udev>=177-1' 'file' 'gzip')
 makedepends=('asciidoc' 'git')
 optdepends=('xz: Use lzma or xz compression for the initramfs image'
diff --git a/init b/init
index 571a11a..8cf90b1 100644
--- a/init
+++ b/init
@@ -98,6 +98,15 @@ elif [ ! -x "/new_root${init}" ]; then
     launch_interactive_shell --exec
 fi
 
+# mount /usr if it exists
+if [ -f /new_root/etc/fstab ]; then
+    if usr_source=$(findmnt -nero source -s/new_root/etc/fstab /usr); then
+        mountopts=$(findmnt -nero options -s/new_root/etc/fstab /usr)
+        fsck_device "$usr_source"
+        mount "$usr_source" /new_root/usr -o "$mountopts"
+    fi
+fi
+
 if [ "${break}" = "postmount" ]; then
     echo ":: Post-mount break requested, type 'exit' to resume operation"
     launch_interactive_shell
-- 
1.7.8.3



More information about the pacman-dev mailing list