You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.9 KiB
59 lines
1.9 KiB
{% calculate chmod='755' %}
|
|
#!/bin/sh
|
|
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
|
|
# ex: ts=8 sw=4 sts=4 et filetype=sh
|
|
|
|
type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
|
|
|
|
mount_live_root_aufs() {
|
|
mkdir /run/initramfs/workspace
|
|
mountoption="-o udba=reval,br:/run/initramfs/workspace=rw:/run/initramfs/squashfs=ro"
|
|
if getargbool 0 scratch
|
|
then
|
|
mkdir /run/initramfs/delta
|
|
mountoption="-o udba=reval,br:/run/initramfs/workspace=rw:/run/initramfs/delta=ro+wh:/run/initramfs/squashfs=ro"
|
|
fi
|
|
mount -t aufs $mountoption none $NEWROOT
|
|
if getargbool 0 scratch
|
|
then
|
|
mkdir /run/builder
|
|
mountoption="-o udba=reval,br:/run/initramfs/delta=rw:/run/initramfs/squashfs=ro"
|
|
mount -t aufs $mountoption none /run/builder
|
|
fi
|
|
}
|
|
|
|
mount_live_root_overlay() {
|
|
lowerdir=/run/initramfs/squashfs
|
|
if getargbool 0 scratch
|
|
then
|
|
upperdir=/run/initramfs/delta
|
|
builderdir=/run/builder
|
|
mkdir $upperdir
|
|
mkdir $builderdir
|
|
mkdir ${upperdir}-workdir
|
|
mount -t overlay -o lowerdir=${lowerdir},upperdir=${upperdir},workdir=${upperdir}-workdir none $builderdir
|
|
lowerdir=$builderdir
|
|
fi
|
|
upperdir=/run/initramfs/workspace
|
|
mkdir ${upperdir}
|
|
mkdir ${upperdir}-workdir
|
|
mount -t overlay -o lowerdir=${lowerdir},upperdir=${upperdir},workdir=${upperdir}-workdir none $NEWROOT
|
|
}
|
|
|
|
mount_live_root() {
|
|
local module_found=
|
|
for typefs in overlay aufs
|
|
do
|
|
if ! mount -t $typefs -o remount none /init 2>&1 | grep -q "unknown filesystem"
|
|
then
|
|
mount_live_root_$typefs
|
|
module_found=1
|
|
break
|
|
fi
|
|
done
|
|
[[ -z $module_found ]] &&
|
|
die "Cannot mount layered filesystem! Compile the kernel with CONFIG_OVERLAY_FS!"
|
|
}
|
|
|
|
[ -n "$root" -a -z "${root%%live*}" -o "$root" = "nfs" ] && mount_live_root
|