overlayfs: upstream patch to fix missing /run/overlayfs dir message at boot [release 059-6mamba;Sun Mar 17 2024]

This commit is contained in:
Silvan Calarco 2024-03-17 20:58:04 +01:00
parent b60116f793
commit 2bf77fb551
19 changed files with 94 additions and 631 deletions

View File

@ -1,12 +0,0 @@
diff -Nru dracut-011.orig//modules.d/50plymouth/plymouth-populate-initrd dracut-011/modules.d/50plymouth/plymouth-populate-initrd
--- dracut-020.orig//modules.d/50plymouth/plymouth-populate-initrd.sh 2011-07-18 17:05:06.000000000 +0200
+++ dracut-020/modules.d/50plymouth/plymouth-populate-initrd.sh 2011-08-11 18:34:19.125257177 +0200
@@ -7,7 +7,7 @@
inst /sbin/plymouthd /bin/plymouthd
dracut_install /bin/plymouth \
"${PLYMOUTH_LOGO_FILE}" \
- /etc/system-release
+ /etc/openmamba-release
mkdir -m 0755 -p "${initdir}/usr/share/plymouth"

View File

@ -1,13 +0,0 @@
diff -Nru dracut-027.orig/dracut.sh dracut-027/dracut.sh
--- dracut-027.orig/dracut.sh 2013-03-26 16:55:03.000000000 +0100
+++ dracut-027/dracut.sh 2013-04-05 11:52:47.509677138 +0200
@@ -895,6 +895,9 @@
if ! [[ -d "$systemdutildir" ]]; then
[[ -d /lib/systemd ]] && systemdutildir=/lib/systemd
+fi
+
+if ! [[ -d "$systemdutildir" ]]; then
[[ -d /usr/lib/systemd ]] && systemdutildir=/usr/lib/systemd
fi

View File

@ -1,11 +0,0 @@
--- dracut-032/dracut-functions.sh.orig 2013-08-30 18:05:41.908672162 +0200
+++ dracut-032/dracut-functions.sh 2013-08-30 18:05:54.521558808 +0200
@@ -81,7 +81,7 @@
[[ -d /usr/lib ]] && libdirs+=" /usr/lib"
fi
- libdirs+="$(ldconfig_paths)"
+ libdirs+=" $(ldconfig_paths)"
export libdirs
fi

View File

@ -1,12 +0,0 @@
diff -ru dracut-037.orig/modules.d/99base/init.sh dracut-037/modules.d/99base/init.sh
--- dracut-037.orig/modules.d/99base/init.sh 2014-03-19 17:16:08.000000000 +0100
+++ dracut-037/modules.d/99base/init.sh 2014-03-28 19:40:16.466316363 +0100
@@ -56,7 +56,7 @@
if ! ismounted /dev/pts; then
mkdir -m 0755 /dev/pts
- mount -t devpts -o gid=5,mode=620,noexec,nosuid devpts /dev/pts >/dev/null
+ mount -t devpts -o gid=4,mode=620,noexec,nosuid devpts /dev/pts >/dev/null
fi
if ! ismounted /dev/shm; then

View File

@ -1,10 +0,0 @@
--- dracut-037.orig/modules.d/10i18n/module-setup.sh 2014-03-19 17:16:08.000000000 +0100
+++ dracut-037/modules.d/10i18n/module-setup.sh 2014-03-28 19:43:39.088543767 +0100
@@ -220,6 +220,7 @@
mksubdirs ${initdir}${VCONFIG_CONF}
print_vars KEYMAP EXT_KEYMAPS UNICODE FONT FONT_MAP FONT_UNIMAP >> ${initdir}${VCONFIG_CONF}
fi
+ inst_simple /usr/lib/locale/locale-archive
return 0
}

View File

@ -1,25 +0,0 @@
diff -Nru dracut-037.orig/mkinitrd-dracut.sh dracut-037/mkinitrd-dracut.sh
--- dracut-037.orig/mkinitrd-dracut.sh 2014-03-19 17:16:08.000000000 +0100
+++ dracut-037/mkinitrd-dracut.sh 2014-03-28 19:38:53.690041537 +0100
@@ -210,17 +210,17 @@
if [[ $quiet == 1 ]];then
echo "$target|$kernel|$dracut_args|$basicmodules"
if [[ $basicmodules ]]; then
- dracut $dracut_args --add-drivers "$basicmodules" "$target" \
+ dracut -H $dracut_args --add-drivers "$basicmodules" "$target" \
"$kernel" &>/dev/null
else
- dracut $dracut_args "$target" "$kernel" &>/dev/null
+ dracut -H $dracut_args "$target" "$kernel" &>/dev/null
fi
else
if [[ $basicmodules ]]; then
- dracut $dracut_args --add-drivers "$basicmodules" "$target" \
+ dracut -H $dracut_args --add-drivers "$basicmodules" "$target" \
"$kernel"
else
- dracut $dracut_args "$target" "$kernel"
+ dracut -H $dracut_args "$target" "$kernel"
fi
fi
done

View File

@ -1,18 +0,0 @@
--- a/modules.d/98systemd/module-setup.sh
+++ b/modules.d/98systemd/module-setup.sh
@@ -83,6 +83,7 @@
$systemdsystemunitdir/systemd-udevd-kernel.socket \
$systemdsystemunitdir/systemd-ask-password-plymouth.path \
$systemdsystemunitdir/systemd-journald.socket \
+ $systemdsystemunitdir/systemd-journald-audit.socket \
$systemdsystemunitdir/systemd-ask-password-console.service \
$systemdsystemunitdir/systemd-modules-load.service \
$systemdsystemunitdir/systemd-halt.service \
@@ -105,6 +106,7 @@
$systemdsystemunitdir/sockets.target.wants/systemd-udevd-control.socket \
$systemdsystemunitdir/sockets.target.wants/systemd-udevd-kernel.socket \
$systemdsystemunitdir/sockets.target.wants/systemd-journald.socket \
+ $systemdsystemunitdir/sockets.target.wants/systemd-journald-audit.socket \
$systemdsystemunitdir/sockets.target.wants/systemd-journald-dev-log.socket \
$systemdsystemunitdir/sysinit.target.wants/systemd-udevd.service \
$systemdsystemunitdir/sysinit.target.wants/systemd-udev-trigger.service \

View File

@ -1,11 +0,0 @@
--- dracut-040/modules.d/98systemd/module-setup.sh.orig 2015-01-10 00:28:56.552983678 +0100
+++ dracut-040/modules.d/98systemd/module-setup.sh 2015-01-10 00:29:53.702055474 +0100
@@ -18,7 +18,7 @@
}
installkernel() {
- instmods autofs4 ipv6
+ hostonly='' instmods autofs4 ipv6
instmods -s efivarfs
}

View File

@ -1,13 +0,0 @@
--- dracut-040/dracut.sh.orig 2014-11-11 22:39:32.180194759 +0100
+++ dracut-040/dracut.sh 2014-11-11 22:41:23.392285954 +0100
@@ -1198,8 +1198,9 @@
[[ -d $udevdir ]] \
|| udevdir="$(pkg-config udev --variable=udevdir 2>/dev/null)"
if ! [[ -d "$udevdir" ]]; then
- [[ -d /lib/udev ]] && udevdir=/lib/udev
+ [[ -d /lib/udev ]] && udevdir=/lib/udev || {
[[ -d /usr/lib/udev ]] && udevdir=/usr/lib/udev
+ }
fi
[[ -d $systemdutildir ]] \

View File

@ -1,11 +0,0 @@
--- dracut-040/dracut.sh.orig 2014-11-15 19:25:44.508996499 +0100
+++ dracut-040/dracut.sh 2014-11-15 19:26:34.259000458 +0100
@@ -822,7 +822,7 @@
bzip2) compress="bzip2 -9";;
lzma) compress="lzma -9 -T0";;
xz) compress="xz --check=crc32 --lzma2=dict=1MiB -T0";;
- gzip) compress="gzip -n -9 --rsyncable"; command -v pigz > /dev/null 2>&1 && compress="pigz -9 -n -T -R";;
+ gzip) compress="gzip -n -9"; command -v pigz > /dev/null 2>&1 && compress="pigz -9 -n -T -R";;
lzo) compress="lzop -9";;
lz4) compress="lz4 -l -9";;
esac

View File

@ -1,348 +0,0 @@
diff -Nru dracut-043.orig/modules.d/99squash-live/apply-live-updates.sh dracut-043/modules.d/99squash-live/apply-live-updates.sh
--- dracut-043.orig/modules.d/99squash-live/apply-live-updates.sh 1970-01-01 01:00:00.000000000 +0100
+++ dracut-043/modules.d/99squash-live/apply-live-updates.sh 2015-11-12 15:42:07.545276936 +0100
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+if [ -b /dev/mapper/live-rw ] && [ -d /run/initramfs/live/updates -o -d /updates ]; then
+ info "Applying updates to live image..."
+ mount -o bind /run $NEWROOT/run
+ # avoid overwriting symlinks (e.g. /lib -> /usr/lib) with directories
+ for d in /updates /run/initramfs/live/updates; do
+ [ -d "$d" ] || continue
+ (
+ cd $d
+ find . -depth -type d | while read dir; do
+ mkdir -p "$NEWROOT/$dir"
+ done
+ find . -depth \! -type d | while read file; do
+ cp -a "$file" "$NEWROOT/$file"
+ done
+ )
+ done
+ umount $NEWROOT/run
+fi
diff -Nru dracut-043.orig/modules.d/99squash-live/checkisomd5@.service dracut-043/modules.d/99squash-live/checkisomd5@.service
--- dracut-043.orig/modules.d/99squash-live/checkisomd5@.service 1970-01-01 01:00:00.000000000 +0100
+++ dracut-043/modules.d/99squash-live/checkisomd5@.service 2015-11-12 15:42:07.545276936 +0100
@@ -0,0 +1,14 @@
+[Unit]
+Description=Media check on %f
+DefaultDependencies=no
+Before=shutdown.target
+
+[Service]
+Type=oneshot
+RemainAfterExit=no
+ExecStart=/usr/bin/checkisomd5 --verbose %f
+StandardInput=tty-force
+StandardOutput=inherit
+StandardError=inherit
+TimeoutSec=0
+SuccessExitStatus=2
diff -Nru dracut-043.orig/modules.d/99squash-live/iso-scan.sh dracut-043/modules.d/99squash-live/iso-scan.sh
--- dracut-043.orig/modules.d/99squash-live/iso-scan.sh 1970-01-01 01:00:00.000000000 +0100
+++ dracut-043/modules.d/99squash-live/iso-scan.sh 2015-11-12 15:42:07.545276936 +0100
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
+
+PATH=/usr/sbin:/usr/bin:/sbin:/bin
+
+isofile=$1
+
+[ -z "$isofile" ] && exit 1
+
+ismounted "/run/initramfs/isoscan" && exit 0
+
+mkdir -p "/run/initramfs/isoscan"
+
+do_iso_scan() {
+ local _name
+ local dev
+ for dev in /dev/disk/by-uuid/*; do
+ _name=$(dev_unit_name "$dev")
+ [ -e /tmp/isoscan-${_name} ] && continue
+ > /tmp/isoscan-${_name}
+ mount -t auto -o ro "$dev" "/run/initramfs/isoscan" || continue
+ if [ -f "/run/initramfs/isoscan/$isofile" ]; then
+ losetup -f "/run/initramfs/isoscan/$isofile"
+ rm -f -- "$job"
+ exit 0
+ else
+ umount "/run/initramfs/isoscan"
+ fi
+ done
+}
+
+do_iso_scan
+
+rmdir "/run/initramfs/isoscan"
+exit 1
diff -Nru dracut-043.orig/modules.d/99squash-live/module-setup.sh dracut-043/modules.d/99squash-live/module-setup.sh
--- dracut-043.orig/modules.d/99squash-live/module-setup.sh 1970-01-01 01:00:00.000000000 +0100
+++ dracut-043/modules.d/99squash-live/module-setup.sh 2015-11-12 15:42:07.545276936 +0100
@@ -0,0 +1,34 @@
+#!/bin/bash
+
+# called by dracut
+check() {
+ # a live host-only image doesn't really make a lot of sense
+ [[ $hostonly ]] && return 1
+ return 0
+}
+
+depends() {
+ return 0
+}
+
+installkernel() {
+ instmods squashfs loop overlay overlayfs ehci-hcd ohci-hcd uhci-hcd xhci-hcd usb_storage iso9660
+}
+
+install() {
+ inst_multiple umount dmsetup blkid dd losetup grep blockdev find
+ inst_multiple -o checkisomd5
+ inst_hook cmdline 30 "$moddir/parse-squash-live.sh"
+ inst_hook cmdline 31 "$moddir/parse-iso-scan.sh"
+ inst_hook pre-udev 30 "$moddir/squash-live-genrules.sh"
+ inst_hook pre-udev 30 "$moddir/squash-liveiso-genrules.sh"
+ inst_hook pre-pivot 20 "$moddir/apply-live-updates.sh"
+ inst_script "$moddir/squash-live-root.sh" "/sbin/squash-live-root"
+ inst_script "$moddir/iso-scan.sh" "/sbin/iso-scan"
+ # should probably just be generally included
+ inst_rules 60-cdrom_id.rules
+ inst_simple "$moddir/checkisomd5@.service" "/etc/systemd/system/checkisomd5@.service"
+ dracut_need_initqueue
+ # fix required since systemd-udev 212 because udev now mounts in its own namespace
+ sed -i "s/MountFlags=.*/MountFlags=shared/" ${initdir}/lib/systemd/system/systemd-udevd.service
+}
diff -Nru dracut-043.orig/modules.d/99squash-live/parse-iso-scan.sh dracut-043/modules.d/99squash-live/parse-iso-scan.sh
--- dracut-043.orig/modules.d/99squash-live/parse-iso-scan.sh 1970-01-01 01:00:00.000000000 +0100
+++ dracut-043/modules.d/99squash-live/parse-iso-scan.sh 2015-11-12 15:42:07.545276936 +0100
@@ -0,0 +1,9 @@
+#!/bin/sh
+# live images are specified with
+# root=live:backingdev
+
+isofile=$(getarg iso-scan/filename)
+
+if [ -n "$isofile" ]; then
+ /sbin/initqueue --settled --unique /sbin/iso-scan "$isofile"
+fi
diff -Nru dracut-043.orig/modules.d/99squash-live/parse-squash-live.sh dracut-043/modules.d/99squash-live/parse-squash-live.sh
--- dracut-043.orig/modules.d/99squash-live/parse-squash-live.sh 1970-01-01 01:00:00.000000000 +0100
+++ dracut-043/modules.d/99squash-live/parse-squash-live.sh 2015-11-12 15:42:07.545276936 +0100
@@ -0,0 +1,57 @@
+#!/bin/sh
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+# ex: ts=8 sw=4 sts=4 et filetype=sh
+# live images are specified with
+# root=live:backingdev
+
+[ -z "$root" ] && root=$(getarg root=)
+
+# support legacy syntax of passing liveimg and then just the base root
+if getargbool 0 rd.live.image -d -y liveimg; then
+ liveroot="live:$root"
+fi
+
+if [ "${root%%:*}" = "live" ] ; then
+ liveroot=$root
+fi
+
+[ "${liveroot%%:*}" = "live" ] || return
+
+modprobe -q loop
+
+case "$liveroot" in
+ live:LABEL=*|LABEL=*) \
+ root="${root#live:}"
+ root="$(echo $root | sed 's,/,\\x2f,g')"
+ root="live:/dev/disk/by-label/${root#LABEL=}"
+ rootok=1 ;;
+ live:CDLABEL=*|CDLABEL=*) \
+ root="${root#live:}"
+ root="$(echo $root | sed 's,/,\\x2f,g')"
+ root="live:/dev/disk/by-label/${root#CDLABEL=}"
+ rootok=1 ;;
+ live:UUID=*|UUID=*) \
+ root="${root#live:}"
+ root="live:/dev/disk/by-uuid/${root#UUID=}"
+ rootok=1 ;;
+ live:PARTUUID=*|PARTUUID=*) \
+ root="${root#live:}"
+ root="live:/dev/disk/by-partuuid/${root#PARTUUID=}"
+ rootok=1 ;;
+ live:PARTLABEL=*|PARTLABEL=*) \
+ root="${root#live:}"
+ root="live:/dev/disk/by-partlabel/${root#PARTLABEL=}"
+ rootok=1 ;;
+ live:/*.[Ii][Ss][Oo]|/*.[Ii][Ss][Oo])
+ root="${root#live:}"
+ root="liveiso:${root}"
+ rootok=1 ;;
+ live:/dev/*)
+ rootok=1 ;;
+ live:/*.[Ii][Mm][Gg]|/*.[Ii][Mm][Gg])
+ [ -f "${root#live:}" ] && rootok=1 ;;
+esac
+info "root was $liveroot, is now $root"
+
+# make sure that init doesn't complain
+[ -z "$root" ] && root="live"
diff -Nru dracut-043.orig/modules.d/99squash-live/squash-live-genrules.sh dracut-043/modules.d/99squash-live/squash-live-genrules.sh
--- dracut-043.orig/modules.d/99squash-live/squash-live-genrules.sh 1970-01-01 01:00:00.000000000 +0100
+++ dracut-043/modules.d/99squash-live/squash-live-genrules.sh 2015-11-12 15:42:07.546276928 +0100
@@ -0,0 +1,16 @@
+#!/bin/sh
+if [ "${root%%:*}" = "live" ]; then
+ {
+ printf 'KERNEL=="%s", SYMLINK+="live"\n' \
+ ${root#live:/dev/}
+ printf 'SYMLINK=="%s", SYMLINK+="live"\n' \
+ ${root#live:/dev/}
+ } >> /etc/udev/rules.d/99-live-mount.rules
+ {
+ printf 'KERNEL=="%s", RUN+="/sbin/initqueue --settled --onetime --unique /sbin/squash-live-root $env{DEVNAME}"\n' \
+ ${root#live:/dev/}
+ printf 'SYMLINK=="%s", RUN+="/sbin/initqueue --settled --onetime --unique /sbin/squash-live-root $env{DEVNAME}"\n' \
+ ${root#live:/dev/}
+ } >> /etc/udev/rules.d/99-live-squash.rules
+ echo '[ -e /dev/root ]' > $hookdir/initqueue/finished/squash.sh
+fi
diff -Nru dracut-043.orig/modules.d/99squash-live/squash-live-root.sh dracut-043/modules.d/99squash-live/squash-live-root.sh
--- dracut-043.orig/modules.d/99squash-live/squash-live-root.sh 1970-01-01 01:00:00.000000000 +0100
+++ dracut-043/modules.d/99squash-live/squash-live-root.sh 2015-11-12 16:22:57.150019442 +0100
@@ -0,0 +1,112 @@
+#!/bin/sh
+
+type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
+
+PATH=/usr/sbin:/usr/bin:/sbin:/bin
+
+if getargbool 0 rd.live.debug -n -y rdlivedebug; then
+ exec > /tmp/liveroot.$$.out
+ exec 2>> /tmp/liveroot.$$.out
+ set -x
+fi
+
+[ -z "$1" ] && { warn "Missing livedvd from command line."; action_on_fail "Could not boot."; }
+livedev="$1"
+
+# With e.g. root=live:/openmamba_live/openmamba-live.iso DEVLABEL is /openmamba_live
+DEVLABEL="$2"
+
+# parse various live image specific options that make sense to be
+# specified as their own things
+live_dir=$(getarg rd.live.dir -d live_dir)
+[ -z "$live_dir" ] && live_dir="LiveOS"
+getargbool 0 rd.live.ram -d -y live_ram && live_ram="yes"
+getargbool 0 rd.live.overlay.reset -d -y reset_overlay && reset_overlay="yes"
+getargbool 0 rd.live.overlay.readonly -d -y readonly_overlay && readonly_overlay="--readonly" || readonly_overlay=""
+overlay=$(getarg rd.live.overlay -d overlay)
+
+# CD/DVD media check
+[ -b $livedev ] && fs=$(blkid -s TYPE -o value $livedev)
+if [ "$fs" = "iso9660" -o "$fs" = "udf" ]; then
+ check="yes"
+fi
+getarg rd.live.check -d check || check=""
+if [ -n "$check" ]; then
+ type plymouth >/dev/null 2>&1 && plymouth --hide-splash
+ if [ -n "$DRACUT_SYSTEMD" ]; then
+ p=$(str_replace "$livedev" "-" '\x2d')
+ systemctl start checkisomd5@${p}.service
+ else
+ checkisomd5 --verbose $livedev
+ fi
+ if [ $? -eq 1 ]; then
+ die "CD check failed!"
+ exit 1
+ fi
+ type plymouth >/dev/null 2>&1 && plymouth --show-splash
+fi
+
+ln -s $livedev /run/initramfs/livedev
+
+getarg ro && liverw=ro
+getarg rw && liverw=rw
+[ -z "$liverw" ] && liverw=ro
+
+# FIXME: loop to wait for partition to become available
+c=0
+while [ ! -e $livedev -a $c -lt 10 ]; do
+ echo "Device $livedev not ready; sleeping 1 second"
+ sleep 1
+ c=$(($c+1))
+done
+
+# mount the backing of the live image first
+mkdir /cdrom
+mount -n -t $fstype -o $liverw $livedev /cdrom
+RES=$?
+if [ "$RES" != "0" ]; then
+ warn "Failed to mount block device of live image"
+ action_on_fail "Could not boot."
+fi
+
+if [ -e /cdrom/${live_dir}/squashfs.img ]; then
+ SQUASHED="/cdrom/${live_dir}/squashfs.img"
+fi
+
+if [ -e "$SQUASHED" ] ; then
+ echo "Mounting compressed filesystem"
+ losetup -r /dev/loop1 $SQUASHED
+ mkdir -p /squashfs
+ mount -r -t squashfs /dev/loop1 /squashfs
+
+ if [ ! "${DEVLABEL}" -o "$live_ram" = "yes" ]; then
+ echo "Creating ramdisk (dinamic size=${RAMSIZE}k) using /dev/shm..."
+ mkdir -p /ramfs
+ mount -t tmpfs tmpfs /ramfs -o mode=755
+ mkdir /ramfs/upper /ramfs/work
+ echo "Mounting overlay using ramdisk"
+ mount -t overlay -o lowerdir=/squashfs,upperdir=/ramfs/upper,workdir=/ramfs/work overlay ${NEWROOT}
+ mkdir -p ${NEWROOT}/ramfs
+ mount -n -o bind /ramfs ${NEWROOT}/ramfs
+ else
+ echo "Mounting overlay using /${DEVLABEL}/rwroot"
+ mkdir -p /${DEVLABEL}/rwroot
+ mkdir -p /${DEVLABEL}/rwwork
+ mount -t overlay -o lowerdir=/squashfs,upperdir=/${DEVLABEL}/rwroot,workdir=/${DEVLABEL}/rwwork overlay ${NEWROOT}
+ mkdir -p ${NEWROOT}/flash
+ mount -n -o bind /${DEVLABEL} ${NEWROOT}/flash
+ fi
+ mkdir -p ${NEWROOT}/squashfs ${NEWROOT}/cdrom
+ mount -n -o bind /cdrom ${NEWROOT}/cdrom
+ mount -n -o bind /squashfs ${NEWROOT}/squashfs
+fi
+
+ROOTFLAGS="$(getarg rootflags)"
+if [ -n "$ROOTFLAGS" ]; then
+ ROOTFLAGS="-o $ROOTFLAGS"
+fi
+
+ln -s /dev/shm /dev/root
+printf '# already mounted' > $hookdir/mount/01-$$-live.sh
+
+exit 0
diff -Nru dracut-043.orig/modules.d/99squash-live/squash-liveiso-genrules.sh dracut-043/modules.d/99squash-live/squash-liveiso-genrules.sh
--- dracut-043.orig/modules.d/99squash-live/squash-liveiso-genrules.sh 1970-01-01 01:00:00.000000000 +0100
+++ dracut-043/modules.d/99squash-live/squash-liveiso-genrules.sh 2015-11-12 15:42:07.546276928 +0100
@@ -0,0 +1,14 @@
+#!/bin/sh
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+# ex: ts=8 sw=4 sts=4 et filetype=sh
+if [ "${root%%:*}" = "liveiso" ]; then
+ DEVLABEL=${root#liveiso:/}
+ DEVLABEL=${DEVLABEL%%/*}
+ {
+ printf 'ENV{ID_FS_LABEL}=="%s", RUN+="/bin/mkdir /%s", RUN+="/bin/mount /dev/%%k /%s", RUN+="/sbin/initqueue --settled --onetime --unique /sbin/squash-live-root `/sbin/losetup -f --show %s` /%s"\n' \
+ ${DEVLABEL} ${DEVLABEL} ${DEVLABEL} ${root#liveiso:} ${DEVLABEL}
+# printf 'KERNEL=="loop-control", RUN+="/sbin/initqueue --settled --onetime --unique /sbin/squash-live-root `/sbin/losetup -f --show %s` /%s"\n' \
+# ${root#liveiso:} ${DEVLABEL}
+ } >> /etc/udev/rules.d/99-liveiso-mount.rules
+ echo '[ -e /dev/root ]' > $hookdir/initqueue/finished/squash.sh
+fi

View File

@ -1,13 +0,0 @@
diff --git a/dracut.sh b/dracut.sh
index 98dbe0b..2b583de 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -1595,7 +1595,7 @@ if [[ $do_strip = yes ]] && ! [[ $DRACUT_FIPS_MODE ]]; then
# strip kernel modules, but do not touch signed modules
find "$initdir" -type f -path '*/lib/modules/*.ko' -print0 \
| while read -r -d $'\0' f || [ -n "$f" ]; do
- SIG=$(tail -c 28 "$f")
+ SIG=$(tail -c 28 "$f" | tr -d '\000')
[[ $SIG == '~Module signature appended~' ]] || { printf "%s\000" "$f"; }
done | xargs -r -0 strip -g

View File

@ -1,11 +0,0 @@
--- dracut-046/modules.d/95nfs/module-setup.sh.orig 2018-01-02 01:01:26.222284736 +0100
+++ dracut-046/modules.d/95nfs/module-setup.sh 2018-01-02 01:01:38.984327676 +0100
@@ -101,7 +101,7 @@
inst "$moddir/nfs-lib.sh" "/lib/nfs-lib.sh"
mkdir -m 0755 -p "$initdir/var/lib/nfs/rpc_pipefs"
mkdir -m 0770 -p "$initdir/var/lib/rpcbind"
- mkdir -m 0755 -p "$initdir/var/lib/nfs/statd/sm"
+ mkdir -m 0755 -p "$initdir/var/lib/nfs/sm"
# Rather than copy the passwd file in, just set a user for rpcbind
# We'll save the state and restart the daemon from the root anyway

View File

@ -1,11 +0,0 @@
--- dracut-049.orig/modules.d/99squash-live/squash-liveiso-genrules.sh 2019-01-12 15:30:47.223331178 +0100
+++ dracut-049/modules.d/99squash-live/squash-liveiso-genrules.sh 2019-02-05 16:09:07.275266246 +0100
@@ -5,7 +5,7 @@
DEVLABEL=${root#liveiso:/}
DEVLABEL=${DEVLABEL%%/*}
{
- printf 'ENV{ID_FS_LABEL}=="%s", RUN+="/bin/mkdir /%s", RUN+="/bin/mount /dev/%%k /%s", RUN+="/sbin/initqueue --settled --onetime --unique /sbin/squash-live-root `/sbin/losetup -f --show %s` /%s"\n' \
+ printf 'ENV{ID_FS_LABEL}=="%s", RUN+="/bin/sleep 2", RUN+="/bin/mkdir /%s", RUN+="/bin/mount /dev/%%k /%s", RUN+="/sbin/initqueue --settled --onetime --unique /sbin/squash-live-root `/sbin/losetup -f --show %s` /%s"\n' \
${DEVLABEL} ${DEVLABEL} ${DEVLABEL} ${root#liveiso:} ${DEVLABEL}
# printf 'KERNEL=="loop-control", RUN+="/sbin/initqueue --settled --onetime --unique /sbin/squash-live-root `/sbin/losetup -f --show %s` /%s"\n' \
# ${root#liveiso:} ${DEVLABEL}

View File

@ -1,11 +0,0 @@
--- dracut-057/modules.d/10i18n/module-setup.sh.orig 2022-07-02 17:22:18.108534561 +0200
+++ dracut-057/modules.d/10i18n/module-setup.sh 2022-07-02 17:22:27.486491547 +0200
@@ -63,7 +63,7 @@
readarray -t INCLUDES < <("$CMD" '^include ' "$MAP" | while read -r _ a _ || [ -n "$a" ]; do echo "${a//\"/}"; done)
for INCL in "${INCLUDES[@]}"; do
- for FN in "$dracutsysrootdir""${kbddir}"/keymaps/**/"$INCL"*; do
+ for FN in "$dracutsysrootdir""${kbddir}"/keymaps/*/*/"$INCL"*; do
[[ -f $FN ]] || continue
[[ -v KEYMAPS["$FN"] ]] || findkeymap "$FN"
done

View File

@ -1,28 +0,0 @@
From fe8fa2b0cadbb33e27c8dd8b5851548dcd65835c Mon Sep 17 00:00:00 2001
From: Antonio Alvarez Feijoo <antonio.feijoo@suse.com>
Date: Mon, 27 Jun 2022 13:19:41 +0200
Subject: [PATCH] fix(i18n): add required includes for keymaps
Commit https://github.com/dracutdevs/dracut/commit/f3441cc7 removed shell
options but didn't adapt all the code that requires nullglob and globstar.
This caused the initrd to be generated without the required includes for
keymaps.
---
modules.d/10i18n/module-setup.sh | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/modules.d/10i18n/module-setup.sh b/modules.d/10i18n/module-setup.sh
index 35bda36fb..6fd5fd433 100755
--- a/modules.d/10i18n/module-setup.sh
+++ b/modules.d/10i18n/module-setup.sh
@@ -63,7 +63,9 @@ install() {
readarray -t INCLUDES < <("$CMD" '^include ' "$MAP" | while read -r _ a _ || [ -n "$a" ]; do echo "${a//\"/}"; done)
for INCL in "${INCLUDES[@]}"; do
- for FN in "$dracutsysrootdir""${kbddir}"/keymaps/**/"$INCL"*; do
+ local -a FNS
+ mapfile -t -d '' FNS < <(find "${dracutsysrootdir}${kbddir}"/keymaps/ -type f -name "${INCL}*" -print0)
+ for FN in "${FNS[@]}"; do
[[ -f $FN ]] || continue
[[ -v KEYMAPS["$FN"] ]] || findkeymap "$FN"
done

View File

@ -1,33 +0,0 @@
From e1de5bd2d711df2c6814a3c3ab8472cdb4de9101 Mon Sep 17 00:00:00 2001
From: Antonio Alvarez Feijoo <antonio.feijoo@suse.com>
Date: Fri, 9 Sep 2022 13:11:14 +0200
Subject: [PATCH] fix(i18n): do not fail if FONT in /etc/vconsole.conf has the
file extension
If the FONT option defined in /etc/vconsole.conf refers to a file with its
extension, not just the file name, dracut should not fail and install it. The
systemd-vconsole-setup service ends up calling setfont, which supports both file
names and files with extensions.
---
modules.d/10i18n/module-setup.sh | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/modules.d/10i18n/module-setup.sh b/modules.d/10i18n/module-setup.sh
index 6fd5fd433..ac456112f 100755
--- a/modules.d/10i18n/module-setup.sh
+++ b/modules.d/10i18n/module-setup.sh
@@ -222,8 +222,12 @@ install() {
inst_opt_decompress "${kbddir}"/consolefonts/"${DEFAULT_FONT}".*
if [[ ${FONT} ]] && [[ ${FONT} != "${DEFAULT_FONT}" ]]; then
- FONT=${FONT%.psf*}
- inst_opt_decompress "${kbddir}"/consolefonts/"${FONT}".*
+ if [[ -f "${kbddir}"/consolefonts/"${FONT}" ]]; then
+ inst_opt_decompress "${kbddir}"/consolefonts/"${FONT}"
+ else
+ FONT=${FONT%.psf*}
+ inst_opt_decompress "${kbddir}"/consolefonts/"${FONT}".*
+ fi
fi
if [[ ${FONT_MAP} ]]; then

View File

@ -0,0 +1,88 @@
From bddffedae038ceca263a904e40513a6e92f1b558 Mon Sep 17 00:00:00 2001
From: David Cassany <dcassany@suse.com>
Date: Fri, 22 Sep 2023 16:28:48 +0200
Subject: [PATCH] fix(overlayfs): split overlayfs mount in two steps
This commit splits the creation of required overlayfs underlaying
directories and the actual overlayfs mount. This way it is still
possible to mount the overlayfs with the generated sysroot.mount that
dmsquash-live creates.
The overlayfs tree is created in a pre-mount hook so it is executed
before sysroot.mount is started. Otherwise sysroot.mount starts and
fails before mount hooks are executed.
Signed-off-by: David Cassany <dcassany@suse.com>
---
modules.d/90overlayfs/module-setup.sh | 1 +
modules.d/90overlayfs/mount-overlayfs.sh | 13 -------------
modules.d/90overlayfs/prepare-overlayfs.sh | 21 +++++++++++++++++++++
3 files changed, 22 insertions(+), 13 deletions(-)
create mode 100755 modules.d/90overlayfs/prepare-overlayfs.sh
diff --git a/modules.d/90overlayfs/module-setup.sh b/modules.d/90overlayfs/module-setup.sh
index 27aa7cfa58..893e2dc366 100755
--- a/modules.d/90overlayfs/module-setup.sh
+++ b/modules.d/90overlayfs/module-setup.sh
@@ -15,4 +15,5 @@ installkernel() {
install() {
inst_hook mount 01 "$moddir/mount-overlayfs.sh"
+ inst_hook pre-mount 01 "$moddir/prepare-overlayfs.sh"
}
diff --git a/modules.d/90overlayfs/mount-overlayfs.sh b/modules.d/90overlayfs/mount-overlayfs.sh
index 7e2da1a804..e1d23fb443 100755
--- a/modules.d/90overlayfs/mount-overlayfs.sh
+++ b/modules.d/90overlayfs/mount-overlayfs.sh
@@ -3,24 +3,11 @@
type getarg > /dev/null 2>&1 || . /lib/dracut-lib.sh
getargbool 0 rd.live.overlay.overlayfs && overlayfs="yes"
-getargbool 0 rd.live.overlay.reset -d -y reset_overlay && reset_overlay="yes"
getargbool 0 rd.live.overlay.readonly -d -y readonly_overlay && readonly_overlay="--readonly" || readonly_overlay=""
ROOTFLAGS="$(getarg rootflags)"
if [ -n "$overlayfs" ]; then
- if ! [ -e /run/rootfsbase ]; then
- mkdir -m 0755 -p /run/rootfsbase
- mount --bind "$NEWROOT" /run/rootfsbase
- fi
-
- mkdir -m 0755 -p /run/overlayfs
- mkdir -m 0755 -p /run/ovlwork
- if [ -n "$reset_overlay" ] && [ -h /run/overlayfs ]; then
- ovlfsdir=$(readlink /run/overlayfs)
- info "Resetting the OverlayFS overlay directory."
- rm -r -- "${ovlfsdir:?}"/* "${ovlfsdir:?}"/.* > /dev/null 2>&1
- fi
if [ -n "$readonly_overlay" ] && [ -h /run/overlayfs-r ]; then
ovlfs=lowerdir=/run/overlayfs-r:/run/rootfsbase
else
diff --git a/modules.d/90overlayfs/prepare-overlayfs.sh b/modules.d/90overlayfs/prepare-overlayfs.sh
new file mode 100755
index 0000000000..87bcc19634
--- /dev/null
+++ b/modules.d/90overlayfs/prepare-overlayfs.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+type getarg > /dev/null 2>&1 || . /lib/dracut-lib.sh
+
+getargbool 0 rd.live.overlay.overlayfs && overlayfs="yes"
+getargbool 0 rd.live.overlay.reset -d -y reset_overlay && reset_overlay="yes"
+
+if [ -n "$overlayfs" ]; then
+ if ! [ -e /run/rootfsbase ]; then
+ mkdir -m 0755 -p /run/rootfsbase
+ mount --bind "$NEWROOT" /run/rootfsbase
+ fi
+
+ mkdir -m 0755 -p /run/overlayfs
+ mkdir -m 0755 -p /run/ovlwork
+ if [ -n "$reset_overlay" ] && [ -h /run/overlayfs ]; then
+ ovlfsdir=$(readlink /run/overlayfs)
+ info "Resetting the OverlayFS overlay directory."
+ rm -r -- "${ovlfsdir:?}"/* "${ovlfsdir:?}"/.* > /dev/null 2>&1
+ fi
+fi

View File

@ -1,6 +1,6 @@
Name: dracut
Version: 059
Release: 5mamba
Release: 6mamba
Summary: Generic, modular initramfs generation tool that can be used across various distributions
Group: System/Kernel and Hardware
Vendor: openmamba
@ -10,28 +10,12 @@ URL: https://sourceforge.net/projects/dracut/
Source: https://github.com/dracutdevs/dracut.git/%{version}/dracut-%{version}.tar.bz2
Source1: dracut-openmamba.conf
Source2: dracut-openmamba.png
Patch0: %{name}-020-openmamba_logo_release.patch
Patch5: %{name}-043-squash-overlayfs-live-openmamba.patch
Patch6: %{name}-037-mkinitrd-hostonly.patch
Patch8: %{name}-037-fix_devpts_gid.patch
Patch10: %{name}-037-i18n_install_locale-archive.patch
Patch15: dracut-027-find-systemdutildir.patch
Patch16: dracut-046-nfs-var-statd-sm.patch
Patch17: dracut-032-fix-libdirs.patch
Patch18: dracut-040-fix-udevdir-detection.patch
Patch19: dracut-040-no-gzip-rsyncable.patch
Patch20: dracut-040-fix-autofs4-ipv6-modules.patch
Patch21: dracut-040-dmsetup_fix_path.patch
Patch22: dracut-040-add_systemd_journald_socket.patch
Patch23: dracut-044-bash-4.4.patch
Patch24: dracut-049-squash-live-systemd-240.patch
Patch25: dracut-055-bluetooth-lib64-fix.patch
Patch26: dracut-057-i18n-fix-adding-keymaps-includes.patch
Patch27: dracut-057-upstream-add_required_includes_for_keymaps.patch
Patch28: dracut-057-upstream-dont_fail_if_FONT_has_the_file_extension.patch
Patch29: dracut-059-fix-systemd-pcrphase-rename-systemd-pcrphase-binary.patch
Patch30: dracut-059-systemd-hibernate-resume-systemd-255.patch
Patch31: dracut-059-systemd-executor-systemd-255.patch
Patch32: dracut-059-upstream-overlayfs-split-mount.patch
License: GPL
## AUTOBUILDREQ-BEGIN
BuildRequires: glibc-devel
@ -113,19 +97,14 @@ This package conatins extra optional modules for dracut.
%prep
%setup -q
#%patch6 -p1
#%patch8 -p1
#%patch10 -p1
%patch 21 -p1
%ifarch x86_64 aarch64
%patch 25 -p1
%endif
#%patch26 -p1
#%patch27 -p1 -b .upstream-add_required_includes_for_keymaps
#%patch28 -p1 -b .upstream-dont_fail_if_FONT_has_the_file_extension
%patch 29 -p1 -b .fix-systemd-pcrphase-rename-systemd-pcrphase-binary
%patch 30 -p1 -b .systemd-hibernate-resume-systemd-255
%patch 31 -p1 -b .systemd-executor-systemd-255
%patch 32 -p1 -b .upstream-overlayfs-split-mount
#chmod +x modules.d/99squash-live/*
@ -172,12 +151,10 @@ fi
%files
%defattr(-,root,root)
%config %{_sysconfdir}/dracut.conf
#%{_sysconfdir}/dracut.conf.d/openmamba.conf
%{_bindir}/dracut
%{_bindir}/lsinitrd
%{_bindir}/mkinitrd
%{_bindir}/dracut-catimages
#%{_bindir}/dracut-install
%{_bindir}/dracut
%{_bindir}/mkinitrd
%dir %{_prefix}/lib/dracut
@ -221,8 +198,6 @@ fi
%{_prefix}/lib/dracut/modules.d/09dbus/*
%dir %{_prefix}/lib/dracut/modules.d/10i18n
%{_prefix}/lib/dracut/modules.d/10i18n/*
#%dir %{_prefix}/lib/dracut/modules.d/10rpmversion
#%{_prefix}/lib/dracut/modules.d/10rpmversion/*
%dir %{_prefix}/lib/dracut/modules.d/30convertfs
%{_prefix}/lib/dracut/modules.d/30convertfs/*
%dir %{_prefix}/lib/dracut/modules.d/35network-legacy
@ -375,8 +350,6 @@ fi
%{_prefix}/lib/dracut/modules.d/99memstrack/*
%dir %{_prefix}/lib/dracut/modules.d/99shutdown
%{_prefix}/lib/dracut/modules.d/99shutdown/*
#%dir %{_prefix}/lib/dracut/modules.d/99squash-live
#%{_prefix}/lib/dracut/modules.d/99squash-live/*
%dir %{_prefix}/lib/dracut/modules.d/99squash
%{_prefix}/lib/dracut/modules.d/99squash/*
%dir %{_prefix}/lib/dracut/modules.d/99uefi-lib
@ -406,19 +379,13 @@ fi
%{_mandir}/man8/dracut-pre-trigger.service.8*
%{_mandir}/man8/dracut-pre-udev.service.8*
%{_mandir}/man8/dracut-shutdown.service.8*
#%{_mandir}/man8/mkinitrd.8*
#%{_mandir}/man8/mkinitrd-suse.8*
%{_mandir}/man8/dracut.8*
%doc AUTHORS COPYING
%files modules-extras
%defattr(-,root,root)
#%dir %{_prefix}/lib/dracut/modules.d/00bootchart
#%{_prefix}/lib/dracut/modules.d/00bootchart/*
%dir %{_prefix}/lib/dracut/modules.d/00mksh
%{_prefix}/lib/dracut/modules.d/00mksh/*
#%dir %{_prefix}/lib/dracut/modules.d/00systemd-bootchart
#%{_prefix}/lib/dracut/modules.d/00systemd-bootchart/module-setup.sh
%dir %{_prefix}/lib/dracut/modules.d/02caps
%{_prefix}/lib/dracut/modules.d/02caps/*
%dir %{_prefix}/lib/dracut/modules.d/05busybox
@ -431,16 +398,12 @@ fi
%{_prefix}/lib/dracut/modules.d/35connman/*
%dir %{_prefix}/lib/dracut/modules.d/45ifcfg
%{_prefix}/lib/dracut/modules.d/45ifcfg/*
#%dir %{_prefix}/lib/dracut/modules.d/50gensplash
#%{_prefix}/lib/dracut/modules.d/50gensplash/*
%dir %{_prefix}/lib/dracut/modules.d/80test-makeroot
%{_prefix}/lib/dracut/modules.d/80test-makeroot/*
%dir %{_prefix}/lib/dracut/modules.d/80test-root
%{_prefix}/lib/dracut/modules.d/80test-root/*
%dir %{_prefix}/lib/dracut/modules.d/80test
%{_prefix}/lib/dracut/modules.d/80test/*
#%dir %{_prefix}/lib/dracut/modules.d/90stratis
#%{_prefix}/lib/dracut/modules.d/90stratis/*
%dir %{_prefix}/lib/dracut/modules.d/91tpm2-tss
%{_prefix}/lib/dracut/modules.d/91tpm2-tss/*
%dir %{_prefix}/lib/dracut/modules.d/97biosdevname
@ -448,6 +411,9 @@ fi
#%doc NEWS README README.generic README.kernel README.modules TODO
%changelog
* Sun Mar 17 2024 Silvan Calarco <silvan.calarco@mambasoft.it> 059-6mamba
- overlayfs: upstream patch to fix missing /run/overlayfs dir message at boot
* Wed Jan 10 2024 Silvan Calarco <silvan.calarco@mambasoft.it> 059-5mamba
- removed requirements: plymouth, reiserfsprogs