forked from mirrored-repos/manjaro-tools
initcpio: fixes; overlayfs works now; aufs needs still work
This commit is contained in:
parent
bc88270c4c
commit
60f8ae179f
4 changed files with 67 additions and 16 deletions
6
Makefile
6
Makefile
|
@ -104,6 +104,9 @@ CPIOINST = \
|
|||
initcpio/install/miso_kms \
|
||||
initcpio/install/miso_shutdown
|
||||
|
||||
CPIO = \
|
||||
initcpio/script/miso_shutdown
|
||||
|
||||
MAN_XML = \
|
||||
buildpkg.xml \
|
||||
buildtree.xml \
|
||||
|
@ -195,6 +198,8 @@ install_iso:
|
|||
install -dm0755 $(DESTDIR)$(PREFIX)/lib/initcpio/install
|
||||
install -m0755 ${CPIOINST} $(DESTDIR)$(PREFIX)/lib/initcpio/install
|
||||
|
||||
install -m0755 ${CPIO} $(DESTDIR)$(PREFIX)/lib/initcpio
|
||||
|
||||
install -dm0755 $(DESTDIR)$(PREFIX)/share/manjaro-tools
|
||||
install -m0644 ${SHARED_ISO} $(DESTDIR)$(PREFIX)/share/manjaro-tools
|
||||
|
||||
|
@ -247,6 +252,7 @@ uninstall_iso:
|
|||
for f in ${LIBS_ISO}; do rm -f $(DESTDIR)$(PREFIX)/lib/manjaro-tools/$$f; done
|
||||
for f in ${CPIOHOOKS}; do rm -f $(DESTDIR)$(PREFIX)/lib/initcpio/hooks/$$f; done
|
||||
for f in ${CPIOINST}; do rm -f $(DESTDIR)$(PREFIX)/lib/initcpio/install/$$f; done
|
||||
for f in ${CPIO}; do rm -f $(DESTDIR)$(PREFIX)/lib/initcpio/$$f; done
|
||||
rm -f $(DESTDIR)$(PREFIX)/share/man/man1/buildiso.1.gz
|
||||
rm -f $(DESTDIR)$(PREFIX)/share/man/man1/deployiso.1.gz
|
||||
rm -f $(DESTDIR)$(PREFIX)/share/man/man5/manjaro-tools.conf.5.gz
|
||||
|
|
|
@ -42,10 +42,16 @@ _mnt_overlayfs() {
|
|||
local lower_dir="${1}"
|
||||
local newroot="${2}"
|
||||
local mnt="${3}"
|
||||
local work_dir=/run/miso/cowspace/${cow_directory}/workdir
|
||||
local upper_dir=/run/miso/cowspace/${cow_directory}/upperdir
|
||||
mkdir -p ${upper_dir} ${work_dir}
|
||||
mount -t overlay overlay -o lowerdir=${lower_dir},upperdir=${upper_dir},workdir=${work_dir} "${newroot}${mnt}"
|
||||
local work_dir="/run/miso/cowspace/${cow_directory}/workdir"
|
||||
local upper_dir="/run/miso/cowspace/${cow_directory}/upperdir"
|
||||
local tmp_mnt="/ro_branch/${img_name}"
|
||||
mkdir -p "/rw_branch/upper"
|
||||
mkdir -p "/rw_branch/work"
|
||||
|
||||
mount -t overlay overlay -olowerdir="/ro_branch/${img_name}",upperdir="/rw_branch/upper",workdir="/rw_branch/work" "${newroot}/"
|
||||
|
||||
mkdir -p "${upper_dir}" "${work_dir}"
|
||||
mount -t overlay overlay -o lowerdir="${lower_dir}",upperdir="${upper_dir}",workdir="${work_dir}" "${newroot}${mnt}"
|
||||
}
|
||||
|
||||
# args: /path/to/image_file, mountpoint
|
||||
|
@ -155,7 +161,7 @@ miso_mount_handler() {
|
|||
fi
|
||||
|
||||
if [[ "${checksum}" == "y" ]]; then
|
||||
for fs in livefs mhwdfs desktopfs rootfs;do
|
||||
for fs in rootfs desktopfs mhwdfs livefs;do
|
||||
if [[ -f "/run/miso/bootmnt/${misobasedir}/${arch}/${fs}.md5" ]]; then
|
||||
msg -n ":: Self-test requested, please wait..."
|
||||
if _verify_checksum "${fs}"; then
|
||||
|
@ -173,7 +179,7 @@ miso_mount_handler() {
|
|||
fi
|
||||
|
||||
if [[ "${verify}" == "y" ]]; then
|
||||
for fs in livefs mhwdfs desktopfs rootfs;do
|
||||
for fs in rootfs desktopfs mhwdfs livefs;do
|
||||
if [[ -f "/run/miso/bootmnt/${misobasedir}/${arch}/${fs}.sfs.sig" ]]; then
|
||||
msg -n ":: Signature verification requested, please wait..."
|
||||
if _verify_signature; then
|
||||
|
@ -206,15 +212,17 @@ miso_mount_handler() {
|
|||
fi
|
||||
mkdir -p -m 0700 "/run/miso/cowspace/${cow_directory}"
|
||||
|
||||
local _src=/run/miso/bootmnt/${misobasedir}/${arch}
|
||||
local _src="/run/miso/bootmnt/${misobasedir}/${arch}"
|
||||
local _dest="/run/miso/sfs"
|
||||
|
||||
for fs in livefs mhwdfs desktopfs rootfs;do
|
||||
if [[ -f "${_src}/${fs}.sfs" ]]; then
|
||||
_mnt_sfs "${_src}/${fs}.sfs" "/run/miso/sfs/${fs}"
|
||||
_mnt_overlayfs "/run/miso/sfs/${fs}" "${newroot}" "/"
|
||||
fi
|
||||
if [[ -f "/run/miso/sfs/${fs}/${fs}.img" ]]; then
|
||||
_mnt_dmsnapshot "/run/miso/sfs/${fs}/${fs}.img" "${newroot}" "/"
|
||||
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}" "/"
|
||||
else
|
||||
_mnt_overlayfs "${_dest}/${sfs}" "${newroot}" "/"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
|
|
|
@ -21,9 +21,9 @@ build() {
|
|||
add_file /usr/lib/udev/rules.d/10-dm.rules
|
||||
add_file /usr/lib/udev/rules.d/95-dm-notify.rules
|
||||
add_file /usr/lib/initcpio/udev/11-dm-initramfs.rules /usr/lib/udev/rules.d/11-dm-initramfs.rules
|
||||
if [[ $miso_GNUPG_FD ]]; then
|
||||
if [[ $MISO_GNUPG_FD ]]; then
|
||||
mkdir -p "$BUILDROOT$dest"/gpg
|
||||
gpg --homedir "$BUILDROOT$dest"/gpg --import <&$miso_GNUPG_FD
|
||||
gpg --homedir "$BUILDROOT$dest"/gpg --import <&$MISO_GNUPG_FD
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
37
initcpio/script/miso_shutdown
Normal file
37
initcpio/script/miso_shutdown
Normal file
|
@ -0,0 +1,37 @@
|
|||
#!/bin/ash
|
||||
|
||||
# /oldroot depends on things inside /oldroot/run/miso...
|
||||
mkdir /oldrun
|
||||
mount -n --move /oldroot/run /oldrun
|
||||
|
||||
# Unmount all mounts now.
|
||||
umount $(mount | awk '$3 ~/^\/oldroot/ {print $3}' | sort -r)
|
||||
|
||||
# Remove all dm-snapshot devices.
|
||||
dmsetup remove_all
|
||||
|
||||
# Remove all loopback devices.
|
||||
for _lup in $(grep ^/dev/loop /oldrun/miso/used_block_devices | tac); do
|
||||
if ! losetup -d ${_lup} 2> /dev/null; then
|
||||
umount -d ${_lup}
|
||||
fi
|
||||
done
|
||||
|
||||
# Unmount the space used to store *.cow.
|
||||
umount /oldrun/miso/cowspace
|
||||
|
||||
# Unmount boot device if needed (no copytoram=y used)
|
||||
if [[ ! -d /oldrun/miso/copytoram ]]; then
|
||||
if [[ -d /oldrun/miso/img_dev ]]; then
|
||||
umount /oldrun/miso/img_dev
|
||||
else
|
||||
umount /oldrun/miso/bootmnt
|
||||
fi
|
||||
fi
|
||||
|
||||
# reboot / poweroff / halt, depending on the argument passed by init
|
||||
# if something invalid is passed, we halt
|
||||
case "$1" in
|
||||
reboot|poweroff|halt) "$1" -f ;;
|
||||
*) halt -f;;
|
||||
esac
|
Loading…
Reference in a new issue