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