← recipes

Commit 43f91a9a

0
files
+0
added
-0
deleted
@@ -121,17 +121,12 @@ _detect_kernel() {
121 121 done
122 122 }
123 123 _detect_initramfs() {
124 + # Bierzemy TYLKO initramfs LIVE. Klasyczny /boot/initramfs.img to live-initramfs
125 + # z ISO (obsługuje squashfs+overlay). Initramfsy per-wersja (/boot/initramfs-<ver>.img
126 + # z pagan-initramfs) są DYSKOWE (root=/LUKS) i NIE wystartują jako live — dlatego
127 + # ich NIE bierzemy: gdy brak live, zbudujemy własny (patrz build_live_initramfs).
124 128 [[ -n "$MKISO_INITRAMFS" ]] && { printf '%s' "$MKISO_INITRAMFS"; return; }
125 - # 1) klasyczny pojedynczy plik, 2) per-wersja dla działającego jądra,
126 - # 3) najnowszy per-wersja. (pagan-initramfs tworzy /boot/initramfs-<ver>.img.)
127 129 if [[ -e /boot/initramfs.img ]]; then printf '%s' /boot/initramfs.img; return; fi
128 - if [[ -e "/boot/initramfs-$KREL.img" ]]; then printf '%s' "/boot/initramfs-$KREL.img"; return; fi
129 - local newest="" k
130 - for k in /boot/initramfs-*.img; do
131 - [[ -e "$k" ]] || continue
132 - newest="$k" # glob sortuje leksykalnie; wystarczy „jakiś istniejący”
133 - done
134 - [[ -n "$newest" ]] && printf '%s' "$newest"
135 130 }
136 131
137 132 KERNEL="$(_detect_kernel)"
@@ -304,6 +299,15 @@ INITEOF
304 299 for p in /usr/bin/busybox /bin/busybox /sbin/busybox; do [[ -x "$p" ]] && BB="$p" && break; done
305 300 [[ -n "$BB" ]] || die "brak busybox — doinstaluj: sudo pag install busybox"
306 301 cp "$BB" "$idir/bin/busybox"; chmod 755 "$idir/bin/busybox"
302 + # gdy busybox jest dynamiczny – dociągnij jego biblioteki + loader
303 + if ! ldd "$BB" 2>/dev/null | grep -q 'not a dynamic executable\|statically linked'; then
304 + local _lib _d _ld
305 + for _lib in $(ldd "$BB" 2>/dev/null | awk '/=>[[:space:]]*\// {print $3}'); do
306 + [[ -f "$_lib" ]] || continue; _d="${_lib#/}"; mkdir -p "$idir/${_d%/*}"; cp -fL "$_lib" "$idir/$_d" 2>/dev/null || true
307 + done
308 + _ld="$(ldd "$BB" 2>/dev/null | awk '/ld-linux/ {print $1}')"
309 + [[ -f "$_ld" ]] && { mkdir -p "$idir${_ld%/*}"; cp -fL "$_ld" "$idir$_ld" 2>/dev/null || true; }
310 + fi
307 311 local c
308 312 for c in sh mount umount ls cat echo sleep readlink mkdir switch_root cp rm ln grep \
309 313 poweroff reboot blkid mknod stty sed sort cut tr head losetup find; do