blancco-init: per-kernel kmod tarball, lazy umount of the report share
- Fetch kmod-$KVER.tar.gz first, falling back to kmod.tar.gz, so more than one boot kernel can share the web root. Live now boots the UEFI path on Ubuntu's 24.04 HWE 7.0.0-34-generic kernel: Panther Lake laptops (Dell Pro 14, AX211 on CNVi) need iwlwifi firmware API 100, which the 6.8 driver cannot load. 6.8 stays deployed as the rollback. - The 10s DefaultTimeoutStopSec did not reach the /mnt/share mount: a mount unit's timeout is TimeoutSec=, defaulting to the start timeout. Add a mnt-share.mount drop-in with TimeoutSec=10s, LazyUnmount=yes and ForceUnmount=yes. NOT in the playbook yet: it builds the initrd and kmod tarball from the server's running kernel (6.8). The 7.0 artifacts on 172.16.9.1 were built off-box; installing linux-generic-hwe-24.04 on the server is what makes a playbook run reproduce them.
This commit is contained in:
@@ -152,7 +152,11 @@ mkdir -p /run/upper/upper /run/upper/work
|
|||||||
mount -t overlay overlay -o lowerdir=/run/lower,upperdir=/run/upper/upper,workdir=/run/upper/work /run/newroot
|
mount -t overlay overlay -o lowerdir=/run/lower,upperdir=/run/upper/upper,workdir=/run/upper/work /run/newroot
|
||||||
|
|
||||||
echo " [5/5] Loading drivers and settings"
|
echo " [5/5] Loading drivers and settings"
|
||||||
wget -q -T 30 -O /tmp/kmod.tar.gz http://$SERVER/blancco/kmod.tar.gz 2>&1
|
# Modules (+ iwlwifi firmware) for the running kernel. kmod-$KVER.tar.gz
|
||||||
|
# lets several boot kernels share one web root; kmod.tar.gz is the
|
||||||
|
# original single-kernel name, kept as the fallback.
|
||||||
|
wget -q -T 30 -O /tmp/kmod.tar.gz "http://$SERVER/blancco/kmod-$KVER.tar.gz" 2>/dev/null ||
|
||||||
|
wget -q -T 30 -O /tmp/kmod.tar.gz http://$SERVER/blancco/kmod.tar.gz 2>&1
|
||||||
[ -s /tmp/kmod.tar.gz ] && (cd /run/newroot && gunzip -c /tmp/kmod.tar.gz | tar xf - && rm -f /tmp/kmod.tar.gz)
|
[ -s /tmp/kmod.tar.gz ] && (cd /run/newroot && gunzip -c /tmp/kmod.tar.gz | tar xf - && rm -f /tmp/kmod.tar.gz)
|
||||||
|
|
||||||
mkdir -p /run/newroot/albus
|
mkdir -p /run/newroot/albus
|
||||||
@@ -221,13 +225,21 @@ XEOF
|
|||||||
|
|
||||||
# Restart after an erasure stalled on "A stop job is running for
|
# Restart after an erasure stalled on "A stop job is running for
|
||||||
# /mnt/share": the network goes down before the SMB report share is
|
# /mnt/share": the network goes down before the SMB report share is
|
||||||
# unmounted, and the CIFS umount waits out systemd's 90s default. Reports
|
# unmounted, and the CIFS umount waits out the 90s timeout. A mount unit's
|
||||||
# are written long before shutdown, so cap stop jobs at 10s.
|
# timeout is TimeoutSec= (default: the START timeout), so
|
||||||
mkdir -p /run/newroot/etc/systemd/system.conf.d
|
# DefaultTimeoutStopSec alone does not reach it. Lazy + forced umount
|
||||||
|
# detaches the dead share at once; reports are written long before this.
|
||||||
|
mkdir -p /run/newroot/etc/systemd/system.conf.d /run/newroot/etc/systemd/system/mnt-share.mount.d
|
||||||
cat > /run/newroot/etc/systemd/system.conf.d/10-fast-stop.conf << XEOF
|
cat > /run/newroot/etc/systemd/system.conf.d/10-fast-stop.conf << XEOF
|
||||||
[Manager]
|
[Manager]
|
||||||
DefaultTimeoutStopSec=10s
|
DefaultTimeoutStopSec=10s
|
||||||
XEOF
|
XEOF
|
||||||
|
cat > /run/newroot/etc/systemd/system/mnt-share.mount.d/10-fast-umount.conf << XEOF
|
||||||
|
[Mount]
|
||||||
|
TimeoutSec=10s
|
||||||
|
LazyUnmount=yes
|
||||||
|
ForceUnmount=yes
|
||||||
|
XEOF
|
||||||
|
|
||||||
# Disable Xorg screensaver + DPMS so display stays on during long erasures.
|
# Disable Xorg screensaver + DPMS so display stays on during long erasures.
|
||||||
# Numbered 00-* to run before vendor xinitrc.d hooks.
|
# Numbered 00-* to run before vendor xinitrc.d hooks.
|
||||||
|
|||||||
Reference in New Issue
Block a user