Compare commits

..

2 Commits

Author SHA1 Message Date
2d176a4b11 tweaks to see if i can get overlayfs working happy with systemd.
see https://projects.archlinux.org/archiso.git/commit/?id=a637bdb8574168ab4cddef13d5de7f458650bda5, changes to archiso/initcpio/hooks/archiso
2015-02-04 19:26:13 -05:00
cecae180ea oops 2015-02-01 02:04:05 -05:00
2 changed files with 14 additions and 21 deletions

View File

@@ -1,15 +0,0 @@
# mkinitcpio preset file for the 'linux' package
ALL_config="/etc/mkinitcpio.conf"
ALL_kver="/boot/vmlinuz-linux"
#PRESETS=('default' 'fallback')
PRESETS=('default')
#default_config="/etc/mkinitcpio.conf"
default_image="/boot/initramfs-linux.img"
#default_options=""
#fallback_config="/etc/mkinitcpio.conf"
#fallback_image="/boot/initramfs-linux-fallback.img"
#fallback_options="-S autodetect"

View File

@@ -11,13 +11,19 @@ _mnt_fs() {
ro_dev=$(losetup --find --show --read-only "${img}")
echo ${ro_dev} >> /run/archiso/used_block_devices
ro_dev_size=$(blockdev --getsz ${ro_dev})
if [[ "${cowfile_size}" == "100" ]]; then
rw_dev_size=${ro_dev_size}
else
# size calculation done in this way to avoid integer overflow when ro_dev_size is > 10.2G
rw_dev_size=$((ro_dev_size/100*cowfile_size))
fi
if [[ "${cow_persistent}" == "P" ]]; then
if [[ -f "/run/archiso/cowspace/${cow_directory}/${img_name}.cow" ]]; then
msg ":: Found '/run/archiso/cowspace/${cow_directory}/${img_name}.cow', using as persistent."
else
msg ":: Creating '/run/archiso/cowspace/${cow_directory}/${img_name}.cow' as persistent."
truncate -s "${cowfile_size}" "/run/archiso/cowspace/${cow_directory}/${img_name}.cow"
dd of="/run/archiso/cowspace/${cow_directory}/${img_name}.cow" count=0 seek=${rw_dev_size} &> /dev/null
fi
else
if [[ -f "/run/archiso/cowspace/${cow_directory}/${img_name}.cow" ]]; then
@@ -25,13 +31,13 @@ _mnt_fs() {
rm -f "/run/archiso/cowspace/${cow_directory}/${img_name}.cow"
fi
msg ":: Creating '/run/archiso/cowspace/${cow_directory}/${img_name}.cow' as non-persistent."
truncate -s "${cowfile_size}" "/run/archiso/cowspace/${cow_directory}/${img_name}.cow"
dd of="/run/archiso/cowspace/${cow_directory}/${img_name}.cow" count=0 seek=${rw_dev_size} &> /dev/null
fi
rw_dev=$(losetup --find --show "/run/archiso/cowspace/${cow_directory}/${img_name}.cow")
echo ${rw_dev} >> /run/archiso/used_block_devices
dmsetup create ${dm_snap_name} --table "0 ${ro_dev_size} snapshot ${ro_dev} ${rw_dev} ${cow_persistent} 8"
echo "0 ${ro_dev_size} snapshot ${ro_dev} ${rw_dev} ${cow_persistent} 8" | dmsetup create ${dm_snap_name}
_mnt_dev "/dev/mapper/${dm_snap_name}" "${newroot}${mnt}" "-w"
echo $(readlink -f /dev/mapper/${dm_snap_name}) >> /run/archiso/used_block_devices
@@ -102,7 +108,9 @@ run_hook() {
[[ -z "${dm_snap_prefix}" ]] && dm_snap_prefix="arch"
[[ -z "${archisodevice}" ]] && archisodevice="/dev/disk/by-label/${archisolabel}"
if [[ -z "${cowfile_size}" ]]; then
cowfile_size="256M"
cowfile_size="100"
else
cowfile_size=${cowfile_size/%}
fi
if [[ -n "${cow_label}" ]]; then
@@ -168,7 +176,7 @@ archiso_mount_handler() {
_mnt_sfs "/run/archiso/bootmnt/${archisobasedir}/${arch}/airootfs.sfs" "/run/archiso/sfs/airootfs"
# _mnt_fs "/run/archiso/sfs/airootfs/airootfs.img" "${newroot}" "/"
mount --bind "/run/archiso/sfs/airootfs" "/new_root"
mount --bind "run/archiso/sfs/airootfs" "/new_root"
if [[ "${copytoram}" == "y" ]]; then
umount /run/archiso/bootmnt