init: mount separate /usr
On Thu, Jan 12, 2012 at 5:12 PM, Dave Reisner <d@falconindy.com> wrote:
> Use findmnt to detect the existance of a separate /usr partition
existence
> 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@archlinux.org>
> ---
> Yes, 2.20.1-2 is techincally the requirement, but vercmp doesn't care.
It cares...you were just not reading the rules it abides by. If one
version or the other is missing a pkgrel, it ignores it.
$ vercmp 2.20.1-2 2.20.1-1
1
$ vercmp 2.20.1-2 2.20.1-2
0
$ vercmp 2.20.1-2 2.20.1-3
-1
$ vercmp 2.20.1-2 2.20.1
0
$ vercmp 2.20.1 2.20.1-2
0
>
> *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
>
>
|