initcpio: fix dm-snapshot mounting to also use overlay/aufs

This commit is contained in:
udeved 2016-10-13 21:32:31 +02:00
parent 72fa1e26b0
commit 426d3f26cb
2 changed files with 25 additions and 23 deletions

View file

@ -1,8 +1,7 @@
# args: source, newroot, mountpoint
_mnt_dmsnapshot() {
local img="${1}"
local newroot="${2}"
local mnt="${3}"
local mnt="${2}"
local img_fullname="${img##*/}";
local img_name="${img_fullname%%.*}"
local dm_snap_name="${dm_snap_prefix}_${img_name}"
@ -33,7 +32,7 @@ _mnt_dmsnapshot() {
dmsetup create ${dm_snap_name} --table "0 ${ro_dev_size} snapshot ${ro_dev} ${rw_dev} ${cow_persistent} ${cow_chunksize}"
_mnt_dev "/dev/mapper/${dm_snap_name}" "${newroot}${mnt}" "-w" "defaults"
_mnt_dev "/dev/mapper/${dm_snap_name}" "${mnt}" "-w" "defaults"
echo $(readlink -f /dev/mapper/${dm_snap_name}) >> /run/miso/used_block_devices
}
@ -209,16 +208,18 @@ miso_mount_handler() {
mkdir -p -m 0700 "/run/miso/cowspace/${cow_directory}"
local src="/run/miso/bootmnt/${misobasedir}/${arch}"
local dest="/run/miso/sfs"
local lower_dir=
local dest_sfs="/run/miso/sfs" dest_img="/run/miso/img"
local lower_dir
mkdir -p ${dest_img}
for sfs in livefs mhwdfs desktopfs rootfs;do
if [[ -f "${src}/${sfs}.sfs" ]]; then
_mnt_sfs "${src}/${sfs}.sfs" "${dest}/${sfs}"
lower_dir=${lower_dir:-}${lower_dir:+:}"${dest}/${sfs}"
if [[ -f "${dest}/${sfs}/${sfs}.img" ]]; then
_mnt_dmsnapshot "${dest}/${sfs}/${sfs}.img" "${newroot}" "/"
_mnt_sfs "${src}/${sfs}.sfs" "${dest_sfs}/${sfs}"
if [[ -f "${dest_sfs}/${sfs}/${sfs}.img" ]]; then
lower_dir=${lower_dir:-}${lower_dir:+:}"${dest_img}/${sfs}"
_mnt_dmsnapshot "${dest_sfs}/${sfs}/${sfs}.img" "${dest_img}/${sfs}"
else
lower_dir=${lower_dir:-}${lower_dir:+:}"${dest_sfs}/${sfs}"
fi
fi
done

View file

@ -1,8 +1,7 @@
# args: source, newroot, mountpoint
_mnt_dmsnapshot() {
local img="${1}"
local newroot="${2}"
local mnt="${3}"
local mnt="${2}"
local img_fullname="${img##*/}";
local img_name="${img_fullname%%.*}"
local dm_snap_name="${dm_snap_prefix}_${img_name}"
@ -33,11 +32,11 @@ _mnt_dmsnapshot() {
dmsetup create ${dm_snap_name} --table "0 ${ro_dev_size} snapshot ${ro_dev} ${rw_dev} ${cow_persistent} ${cow_chunksize}"
_mnt_dev "/dev/mapper/${dm_snap_name}" "${newroot}${mnt}" "-w" "defaults"
_mnt_dev "/dev/mapper/${dm_snap_name}" "${mnt}" "-w" "defaults"
echo $(readlink -f /dev/mapper/${dm_snap_name}) >> /run/miso/used_block_devices
}
_mnt_overlayfs_union(){
_mnt_overlayfs_root(){
local src="${1}"
local newroot="${2}"
local mnt="${3}"
@ -214,18 +213,20 @@ miso_mount_handler() {
mkdir -p -m 0700 "/run/miso/cowspace/${cow_directory}"
local work_dir="/run/miso/cowspace"
_mnt_overlayfs_union "${work_dir}" "${newroot}" "/"
_mnt_overlayfs_root "${work_dir}" "${newroot}" "/"
local _src="/run/miso/bootmnt/${misobasedir}/${arch}"
local _dest="/run/miso/sfs"
local src="/run/miso/bootmnt/${misobasedir}/${arch}"
local dest_sfs="/run/miso/sfs" dest_img="/run/miso/img"
mkdir -p ${dest_img}
for sfs in livefs mhwdfs desktopfs rootfs;do
if [[ -f "${_src}/${sfs}.sfs" ]]; then
_mnt_sfs "${_src}/${sfs}.sfs" "${_dest}/${sfs}"
if [[ -f "${_dest}/${sfs}/${sfs}.img" ]]; then
_mnt_dmsnapshot "${_dest}/${sfs}/${sfs}.img" "${newroot}" "/"
if [[ -f "${src}/${sfs}.sfs" ]]; then
_mnt_sfs "${src}/${sfs}.sfs" "${dest_sfs}/${sfs}"
if [[ -f "${dest_sfs}/${sfs}/${sfs}.img" ]]; then
_mnt_dmsnapshot "${dest_sfs}/${sfs}/${sfs}.img" "${dest_img}/${sfs}"
_mnt_overlayfs "${dest_img}/${sfs}" "${newroot}" "/"
else
_mnt_overlayfs "${_dest}/${sfs}" "${newroot}" "/"
_mnt_overlayfs "${dest_sfs}/${sfs}" "${newroot}" "/"
fi
fi
done