Received: from mail-ua1-x932.google.com (mail-ua1-x932.google.com [IPv6:2607:f8b0:4864:20::932]) by gbr-app-1.alpinelinux.org (Postfix) with ESMTPS id 77801225B43 for <~alpine/users@lists.alpinelinux.org>; Sat, 23 Nov 2024 13:22:56 +0000 (UTC) Received: by mail-ua1-x932.google.com with SMTP id a1e0cc1a2514c-84ff43e87cbso990470241.1 for <~alpine/users@lists.alpinelinux.org>; Sat, 23 Nov 2024 05:22:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1732368174; x=1732972974; darn=lists.alpinelinux.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=N7yTkcNqS2lOTVFCV76jGIb4b5xWeh/6Fx2iOZECcC8=; b=Hg80LJgQkOH7PI5ht9JCvkV27ZHmsS/Yz9ig4EV453cL29BpeTXRDPCbyWLvZ87dYu HBvGY8gNXy4PlfV61Umou/ZoV+94rXyMFXz+IpPItsTTTkGdMDaTTQ9nmO/Eaaj0f2SN aj7v+hMvIop16Iv1oSWjIBqBDCAxj5orwi22ijdaO/5cObewInyJuQ3iYQa/IP40X5Bj nAiwSN8uJ74uSNkFe13AZ1DK6sPAaMukjQQRDpV4o21BF7GPV0oLPG2MaS1bA0Bqj4Tz ZjXRag9iS8JViauLP3TIfBDtnca1cW0mkylMgP3AQkp1Ccin9FdXzAZRzwzYEvbr1w2V 18SQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1732368174; x=1732972974; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=N7yTkcNqS2lOTVFCV76jGIb4b5xWeh/6Fx2iOZECcC8=; b=slWRd3Q4TJLhJB/SG8jH0KEr58NSR16oUgRC16vDt1HzIuEORmD+uTxl/APqv4dt0W rkHFsRh//TE2SKW4CwD2NCYwu5Vt02GePLnG0E2MvAH5UMIn6sBIHdFp71nhJ9SjzAEu HKOHFOn3ydUCJdvqMRIYkkl/ovWlrqII/MKjkEGB15ZhuY7PMsAwfFR13npmOqZGFDC3 QxW0Cz594a1I4OyYm2ymOmu66+yJesvEeFBBjBzKY4XCZ0HfJT1Qv3NwqJLoteQxVGG2 PqjFbIFqSn70hTZxcllDR6gIGDvA2jNf7b7sW384Bf0nuzGziavsdluw1fsLI0wwAjxl rILw== X-Gm-Message-State: AOJu0YyejVYxBtMsqjO0peCMBlNL/O3wx63AnA82KvJCaMt81mLeQ6l5 +z1vlODoPaZJRGm+yiZCdMCj/7zoCoUkJSUV2NRsEEFHcRCqZl4Umaxa6sjopXfQVmqdpjrr9TE UWl9U7nolEl9CgPmBUsNScrQ94cMsJ5c0 X-Gm-Gg: ASbGncs0LHfInvf7B94Xa9wwjBIA6x5cBL8/GAckid3hel0/cj7LWCYFep95d6KYkVZ IB2o0uc5uBi4R5shL/E+Mfak/so3yLA== X-Google-Smtp-Source: AGHT+IFu29Ie+B7RrQfJ5SyF4/2y/BzThnvm0cgFmdlBmEmZ3xGa0DJVv/EvSf4gzieyFII8ohleZZj0IoVm4NCJnoE= X-Received: by 2002:a05:6122:2390:b0:50a:ba7b:5a23 with SMTP id 71dfb90a1353d-515005ee4cfmr6832169e0c.6.1732368173854; Sat, 23 Nov 2024 05:22:53 -0800 (PST) MIME-Version: 1.0 From: Mallory Date: Sat, 23 Nov 2024 14:22:43 +0100 Message-ID: Subject: UEFI and Unified Kernel Image To: ~alpine/users@lists.alpinelinux.org Content-Type: multipart/alternative; boundary="0000000000009f767306279465c3" --0000000000009f767306279465c3 Content-Type: text/plain; charset="UTF-8" Ahoy there, I'm trying to come up with a script to build a minimal Alpine image with support for UEFI and UKI (no secureboot) via static version of apt-tools. Yet it would seem that whatever I try, the UEFI partition comes back empty. And the odd thing is that the `bootx64.efi` is created in the appropriate place (see the build output). Likely, I'm missing something painfully obvious but being new to Alpine I would appreciate some pointers as to how I can debug the issue. Here's the script: #!/bin/bash set -eux readonly PATH=/bin:/sbin:/usr/bin:/usr/sbin readonly DEFAULT_DISK_SIZE="2G" readonly IMAGE="alpine.img" readonly MIRROR=https://dl-cdn.alpinelinux.org/alpine readonly REL=3.21 readonly ARCH=$(uname -m) readonly APKV=2.14.4-r4 readonly REPO="${MIRROR}"/v"${REL}"/main readonly HOST="satellite" wait_until_settled() { udevadm settle blockdev --flushbufs --rereadpt "${1}" until test -e "${1}p2"; do echo "${1}p2 doesn't exist yet..." sleep 1 done } cleanup() { set +o errexit if [ -n "${LOOPDEV:-}" ]; then losetup -d "${LOOPDEV}" fi if [ -n "${MOUNT:-}" ] && mountpoint -q "${MOUNT}"; then umount --recursive "${MOUNT}" || exit 1 fi if [ -n "${TMPDIR:-}" ]; then rm -rf "${TMPDIR}" fi } trap cleanup EXIT init() { readonly ORIG_PWD="${PWD}" readonly OUTPUT="${PWD}/out" tmpdir="$(mktemp --dry-run --directory --tmpdir="${PWD}/tmp")" readonly TMPDIR="${tmpdir}" mkdir -p "${OUTPUT}" "${TMPDIR}" if [ -n "${SUDO_UID:-}" ] && [ -n "${SUDO_GID:-}" ]; then chown "${SUDO_UID}:${SUDO_GID}" "${OUTPUT}" "${TMPDIR}" fi cd "${TMPDIR}" readonly MOUNT="${PWD}/mount" mkdir "${MOUNT}" } setup_disk() { truncate -s "${DEFAULT_DISK_SIZE}" "${IMAGE}" sgdisk --align-end \ --clear \ --new 0:0:+1G --typecode=0:ef00 --change-name=0:'EFI' \ --new 0:0:0 --typecode=0:8304 --change-name=0:'alpine' \ "${IMAGE}" LOOPDEV=$(losetup --find --partscan --show "${IMAGE}") wait_until_settled "${LOOPDEV}" mkfs.vfat -F 32 -n EFI "${LOOPDEV}p1" mkfs.ext4 -L alpine -q "${LOOPDEV}p2" mount "${LOOPDEV}p2" "${MOUNT}" mount --mkdir "${LOOPDEV}p1" "${MOUNT}/boot/efi" } bootstrap() { curl -s "${MIRROR}"/v"${REL}"/main/"${ARCH}"/apk-tools-static-${APKV}.apk | tar xz ./sbin/apk.static --repository "${REPO}" \ --update-cache \ --allow-untrusted \ --root "${MOUNT}" \ --initdb add alpine-base cat <"${MOUNT}"/etc/fstab LABEL=alpine / ext4 defaults 0 0 LABEL=EFI /boot/efi vfat defaults 0 2 EOF echo "nameserver 1.1.1.1" > "${MOUNT}"/etc/resolv.conf echo "${REPO}" >"${MOUNT}"/etc/apk/repositories cat <"${MOUNT}"/etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp EOF for a in dev dev/pts proc sys run; do mount -o bind /$a "${MOUNT}"/$a; done chroot "${MOUNT}" /bin/sh -x < /etc/kernel-hooks.d/secureboot.conf echo "signing_disabled=yes" >> /etc/kernel-hooks.d/secureboot.conf echo "output_dir="/boot/efi/EFI/Linux/"" >> /etc/kernel-hooks.d/secureboot.conf echo "output_name="bootx64.efi"" >> /etc/kernel-hooks.d/secureboot.conf echo "disable_trigger=yes" >> /etc/mkinitfs/mkinitfs.conf apk update apk add linux-lts \ linux-firmware-none \ mkinitfs \ secureboot-hook \ gummiboot-efistub \ setup-hostname -n "${HOST}" rc-update -q add devfs sysinit rc-update -q add dmesg sysinit rc-update -q add mdev sysinit rc-update -q add hwdrivers sysinit rc-update -q add hwclock boot rc-update -q add modules boot rc-update -q add hostname boot rc-update -q add bootmisc boot rc-update -q add networking boot rc-update -q add mount-ro shutdown rc-update -q add killprocs shutdown rc-update -q add savecache shutdown rc-update -q add crond default mkdir -p /boot/efi/loader/entries cat > /boot/efi/loader/entries/alpine.conf < initramfs: creating /tmp/secureboot.Jlefgi/initramfs for 6.12.0-1-lts Display ELF dependencies as a tree Usage: lddtree [options] ELFFILE... Options: -a, --all Show all duplicated dependencies -h, --help Show this help output -l, --flat Display output in a flat format --no-auto-root Do not automatically prefix input ELFs with ROOT -R, --root ROOT Use this ROOT filesystem tree -V, --version Show version information -x, --debug Run with debugging ==> secureboot: creating UEFI Unified Kernel Image with /boot/vmlinuz-lts ==> secureboot: writing *unsigned* UEFI image to /boot/efi/EFI/Linux//bootx64.efi (signing is disabled!) OK: 133 MiB in 47 packages + setup-hostname -n satellite + rc-update -q add devfs sysinit + rc-update -q add dmesg sysinit + rc-update -q add mdev sysinit + rc-update -q add hwdrivers sysinit + rc-update -q add hwclock boot + rc-update -q add modules boot + rc-update -q add hostname boot + rc-update -q add bootmisc boot + rc-update -q add networking boot + rc-update -q add mount-ro shutdown + rc-update -q add killprocs shutdown + rc-update -q add savecache shutdown + rc-update -q add crond default + mkdir -p /boot/efi/loader/entries + cat + ls -la /boot/efi/EFI/Linux/ total 11416 drwxr-xr-x 2 root root 4096 Nov 23 13:20 . drwxr-xr-x 3 root root 4096 Nov 23 13:20 .. -rwxr-xr-x 1 root root 11680190 Nov 23 13:20 bootx64.efi + cp alpine.img /home/boojum/Documents/zzz/alpine-image-bootstrap/out/ + cleanup + set +o errexit + '[' -n /dev/loop1 ']' + losetup -d /dev/loop1 + '[' -n /home/boojum/Documents/zzz/alpine-image-bootstrap/tmp/tmp.u5KuNSSdie/mount ']' + mountpoint -q /home/boojum/Documents/zzz/alpine-image-bootstrap/tmp/tmp.u5KuNSSdie/mount + umount --recursive /home/boojum/Documents/zzz/alpine-image-bootstrap/tmp/tmp.u5KuNSSdie/mount + '[' -n /home/boojum/Documents/zzz/alpine-image-bootstrap/tmp/tmp.u5KuNSSdie ']' + rm -rf /home/boojum/Documents/zzz/alpine-image-bootstrap/tmp/tmp.u5KuNSSdie --0000000000009f767306279465c3 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Ahoy there,

I'm tr= ying to come up with a script to build a minimal Alpine image with support = for UEFI and UKI (no secureboot) via static version of apt-tools. Yet it wo= uld seem that whatever I try, the UEFI partition comes back empty. And the = odd thing is that the `bootx64.efi` is created in the appropriate place (se= e the build output). Likely, I'm missing something painfully obvious bu= t being new to Alpine I would appreciate some pointers as to how I can debu= g the issue.

Here's the script:

=
#!/bin/bash

set -eux
<= br>
readonly PATH=3D/bin:/sbin:/usr/bin:/usr/sbin
readonly= DEFAULT_DISK_SIZE=3D"2G"
readonly IMAGE=3D"alpine.img"
readonly MIRROR=3Dhttps://dl-= cdn.alpinelinux.org/alpine
reado= nly REL=3D3.= 21
readonly <= span style=3D"color:rgb(156,220,254)">ARCH=3D$(uname -m)
readonly APKV=3D2.14.4-r4
readonly REPO=3D= "${MIRROR}&quo= t;/v"${= REL}"/main
readonly HOST=3D"satellite"

wait_until_settled() {
udevadm settle
b= lockdev --flushbufs --rereadpt "${1}"
until test -e "${1}p2"; do
echo "${1}p2 doesn't exist yet..."<= /div>
sleep 1
done
}

cleanup() {
set +o errexit

if [ -n "${LOOPDEV:-}"= ]; then
losetup -d "${= LOOPDEV}"
fi
if [ -n "${MO= UNT:-}" ] && mountpoint -q "${MOUNT}= "; then
umount --recursive "${MOUNT}" || exit <= span style=3D"color:rgb(181,206,168)">1
fi
if [ -n "${TMPDIR:-<= span style=3D"color:rgb(206,145,120)">}" ]; then
rm -rf "${TMPDIR}"
fi
= }
trap cleanup EXIT

ini= t() {
readonly ORIG_PWD=3D&quo= t;${PWD}"
readonly OUTPUT= =3D"${P= WD}/out"
tmpdir=3D"= $(mktemp --dr= y-run --directory --tmpdir=3D"${PWD}/tmp")&qu= ot;
readonly TMPDIR=3D"${= tmpdir}"
mkdir -p = "${OUTPUT}&quo= t; "${TMPDIR}"
if [ -n "${= SUDO_UID:-}" ] && [ -n &quo= t;${SUDO_GID:-}" ]; then
chown "${SUDO_UID}:${SUDO_GID}" "= ${OUTPUT}" "${TMPDIR}"
fi
cd "${TMPDIR}"

readonly MOUNT=3D"${PWD= }/mount"
mkdir "${M= OUNT}"
= }

setup_disk() = {
truncate -s "${DEFAULT_DISK_SI= ZE}" "${IMAGE}"
sgdisk --align-end \
--cl= ear \
--new 0:0:+1G --typecod= e=3D0:ef00 --change-name=3D0:<= /span>'EFI' \
--new 0:0:0 --typecode=3D0:8304 --change-name=3D0:'alpine' \
&q= uot;${IMAGE}"

LOOPDEV=3D$(losetup --find --partscan --show "${IMAGE}&qu= ot;)
wait_until_s= ettled "${LOOPDEV}"

mkfs.vfat -F 32 -n EFI "${LOOPDEV}p1"
mkfs.ext4 -L alpine -q "${LOOPDEV}p2&quo= t;
mount <= span style=3D"color:rgb(206,145,120)">"${LOOPDEV}p2&q= uot; "${MOUNT}"
mou= nt --mkdir "${LOOPDEV}p1" "${MOUNT}/bo= ot/efi"
}

bootstrap() {
curl -s "${MIRROR}"/v&quo= t;${REL}"/main/"${ARCH}"/a= pk-tools-static-${APKV= }.apk | tar = xz

./sbin/apk.static --repository "${REPO}" \
--update-cache \
-= -allow-untrusted \
--root "${MOUNT}&= quot; \
= --initdb add alpine-base


cat <<EOF >"${M= OUNT}"/etc/fstab
LABEL=3Dalpine / ext4 defaults 0 0
LABEL=3DEFI /boot/efi vfat defaults 0 2=
EOF

= echo "nameserver 1.1.1.1= " > "${MOUNT}"/etc/reso= lv.conf
echo= "${REPO}"= ; >"${MOUNT}"/etc/apk/reposi= tories

cat<= /span> <<EOF >"${MOUNT}"/etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp
EOF

for = a in dev dev= /pts proc sys run; do mount -o bind /$a "${MOUNT}"/$a; done

chroot "${MOUNT}" /bin/sh -x <= span style=3D"color:rgb(212,212,212)"><<CHROOT
mkdir -p /etc/kernel-hooks.d/
mkdir -p /etc/mkinitfs/=
mkdir -p /boot/efi/EFI/Li= nux/

echo "= ;cmdline=3Droot=3DLABEL=3Dalpine modules=3Dext4" > /etc/kernel-hook= s.d/secureboot.conf
echo "signing_disabled=3Dyes" >> /etc/kernel-hooks.d/secur= eboot.conf
echo &qu= ot;output_dir=3D"/boot/efi/EFI/Linux/"" >> /etc/kernel= -hooks.d/secureboot.conf
echo "output_name=3D"bootx64.efi"" >> /etc/= kernel-hooks.d/secureboot.conf
echo "disable_trigger=3Dyes" >> /etc/mkinitfs/m= kinitfs.conf

ap= k update
apk add li= nux-lts \
linux-firmware-none \
mkinitfs \
se= cureboot-hook \
<= div> gummiboot-efistub
\

setup-hostname -n "${HOST= }"

rc-upda= te -q add devfs sysinit
rc-update -q add dmesg sysinit
rc-update -q add mdev sysinit
rc-update -q add hwdrivers sysinit
rc-update -q add hwclock b= oot
rc-update -q ad= d modules boot
rc-u= pdate -q add hostname boot
rc-update -q add bootmisc boot
rc-update -q add networking boot

<= span style=3D"color:rgb(206,145,120)">rc-update -q add mount-ro shutdown
rc-update -q add kill= procs shutdown
rc-u= pdate -q add savecache shutdown

rc-update -q add crond default

mkdir -p /boot/efi/loader/entries
cat > /boot/efi/load= er/entries/alpine.conf <<EOF
title Alpine Linux
linux /EFI/Linux/bootx64.efi
EOF

ls -la /boot/efi/EFI/Linux/
CHROOT
<= br>
cp "${= IMAGE}" "${OUTPUT}/"
}

main() {
if [ "$(id -u)" -ne 0 ]; then
echo "root is required&= quot;
exit 1
fi

init
setup_disk
= bootstrap
}

main


And the output from the ru= n:

+ readonly PATH=3D/bin:/sbin:/usr/bin:/= usr/sbin
+ PATH=3D/= bin:/sbin:/usr/bin:/usr/sbin
+ readonly DEFAULT_DISK_SIZE=3D2G
+ DEFAULT_DISK_SIZE=3D2G
+ readonly IMAGE=3Dalpine.img
+ IMAGE=3Dalpine.img
+ readonly REL=3D3.21
+ REL=3D3.21
++ uname -m
=
+ readonly ARCH=3Dx86_64=
+ ARCH=3Dx86_64
+ readonly APKV=3D2.1= 4.4-r4
+ APKV=3D2.1= 4.4-r4
+ readonly HOST=3Dsatellite
+ HOST=3Dsatellite
+ trap cleanup EXIT
+ main
++ id -u
+ '[' 0 -ne 0 ']'
<= div>+ init
+ readonly ORIG_PWD=3D/home/boojum/Do= cuments/zzz/alpine-image-bootstrap
+ ORIG_PWD=3D/home/boojum/Documents/zzz/alpine-image-bootst= rap
+ readonly OUTP= UT=3D/home/boojum/Documents/zzz/alpine-image-bootstrap/out
+ OUTPUT=3D/home/boojum/Documents/z= zz/alpine-image-bootstrap/out
++ mktemp --dry-run --directory --t= mpdir=3D/home/boojum/Documents/zzz/alpine-image-bootstrap/tmp
+ tmpdir=3D/home/boojum/Document= s/zzz/alpine-image-bootstrap/tmp/tmp.u5KuNSSdie
+ readonly TMPDIR=3D/home/boojum/Documents/zzz= /alpine-image-bootstrap/tmp/tmp.u5KuNSSdie
+ TMPDIR=3D/home/boojum/Documents/zzz/alpine-image-= bootstrap/tmp/tmp.u5KuNSSdie
+ mkdir -p /home/boojum/Documents/zzz/alpine-image-bootstrap/out = /home/boojum/Documents/zzz/alpine-image-bootstrap/tmp/tmp.u5KuNSSdie
<= div>+ '[' -n 1000 = 9;]'
+ '[&#= 39; -n 1000 ']'
+<= /span> chown 1000:1000 /home/boojum/Documents/zzz/alpine-image-bootstrap/ou= t /home/boojum/Documents/zzz/alpine-image-bootstrap/tmp/tmp.u5KuNSSdie
+ cd /home/boojum/Docum= ents/zzz/alpine-image-bootstrap/tmp/tmp.u5KuNSSdie
+ readonly MOUNT=3D/home/boojum/Documents/z= zz/alpine-image-bootstrap/tmp/tmp.u5KuNSSdie/mount
+ MOUNT=3D/home/boojum/Documents/zzz/alpine= -image-bootstrap/tmp/tmp.u5KuNSSdie/mount
+ mkdir /home/boojum/Documents/zzz/alpine-image-boot= strap/tmp/tmp.u5KuNSSdie/mount
+ setup_disk
+= truncate -s 2G alpine.img
+ sgdisk --align-end --clear --new 0:0:+1G --typecode=3D0:ef= 00 --change-name=3D0:EFI --new 0:0:0 --typecode=3D0:8304 --change-name=3D0:= alpine alpine.img
Creating new GPT entries in memory.
W= arning: The kernel is still using the old partition table.
The ne= w table will be used at the next reboot or after you
run partprob= e(8) or kpartx(8)
The operation has completed successfully.
=
++ losetup --find --partscan --show alpine.img
+ LOOPDEV=3D/dev/loop1
+ wait_until_settled /dev/loop1
+ udevadm settle
<= div>+ blockdev --flushbufs --= rereadpt /dev/loop1
+ test -e /dev/loop1p2
+<= /span> mkfs.vfat -F 32 -n EFI /dev/loop1p1
mkfs.fat 4.2 (2021-01-= 31)
+ mkfs.ext4 -L = alpine -q /dev/loop1p2
+ mount /dev/loop1p2 /home/boojum/Documents/zzz/alpine-image-bootstrap/= tmp/tmp.u5KuNSSdie/mount
+= mount --mkdir /dev/loop1p1 /home/boojum/Documents/zzz/alpine-image-= bootstrap/tmp/tmp.u5KuNSSdie/mount/boot/efi
+ bootstrap
+ tar xz=
tar: Ignoring unknown extended header keyword 'APK-TOOLS.che= cksum.SHA1'
tar: Ignoring unknown extended header keyword = 9;APK-TOOLS.checksum.SHA1'
tar: Ignoring unknown extended hea= der keyword 'APK-TOOLS.checksum.SHA1'
+ ./sbin/apk.static --repository https://dl-= cdn.alpinelinux.org/alpine/v3.21/main --update-cache --allow-untrusted = --root /home/boojum/Documents/zzz/alpine-image-bootstrap/tmp/tmp.u5KuNSSdie= /mount --initdb add alpine-base
(1/24) Installing alpine-baselayout-data (3.6.8-r0)
(2= /24) Installing musl (1.2.5-r7)
(3/24) Installing busybox (1.37.0= -r8)
Executing busybox-1.37.0-r8.post-install
(4/24) In= stalling busybox-binsh (1.37.0-r8)
(5/24) Installing alpine-basel= ayout (3.6.8-r0)
Executing alpine-baselayout-3.6.8-r0.pre-install=
Executing alpine-baselayout-3.6.8-r0.post-install
(6/2= 4) Installing ifupdown-ng (0.12.1-r6)
(7/24) Installing libcap2 (= 2.71-r0)
(8/24) Installing openrc (0.55.1-r2)
Executing= openrc-0.55.1-r2.post-install
(9/24) Installing mdev-conf (4.7-r= 0)
(10/24) Installing busybox-mdev-openrc (1.37.0-r8)
(= 11/24) Installing alpine-conf (3.18.1-r4)
(12/24) Installing alpi= ne-keys (2.5-r0)
(13/24) Installing alpine-release (3.21.0_alpha2= 0240923-r0)
(14/24) Installing ca-certificates-bundle (20240705-r= 0)
(15/24) Installing libcrypto3 (3.3.2-r4)
(16/24) Ins= talling libssl3 (3.3.2-r4)
(17/24) Installing ssl_client (1.37.0-= r8)
(18/24) Installing zlib (1.3.1-r2)
(19/24) Installi= ng apk-tools (2.14.4-r4)
(20/24) Installing busybox-openrc (1.37.= 0-r8)
(21/24) Installing busybox-suid (1.37.0-r8)
(22/2= 4) Installing scanelf (1.3.8-r1)
(23/24) Installing musl-utils (1= .2.5-r7)
(24/24) Installing alpine-base (3.21.0_alpha20240923-r0)=
Executing busybox-1.37.0-r8.trigger
OK: 8 MiB in 24 pa= ckages
+ cat
<= div>+ echo 'nameserver 1.= 1.1.1'
+ echo <= a href=3D"https://dl-cdn.alpinelinux.org/alpine/v3.21/main" target=3D"_blan= k">https://dl-cdn.alpinelinux.org/alpine/v3.21/main
+ cat
+ for a in dev dev/pts proc sys run
+ mount -o bind /dev /home/boojum/= Documents/zzz/alpine-image-bootstrap/tmp/tmp.u5KuNSSdie/mount/dev
+ for a in dev dev/pts proc = sys run
+ mount -o = bind /dev/pts /home/boojum/Documents/zzz/alpine-image-bootstrap/tmp/tmp.u5K= uNSSdie/mount/dev/pts
+ for a in dev dev/pts proc sys run
+ mount -o bind /proc /home/boojum/Documents/zzz/alpine= -image-bootstrap/tmp/tmp.u5KuNSSdie/mount/proc
+ for a in dev dev/pts proc sys run
<= span style=3D"color:rgb(103,150,230)">+ mount -o bind /sys /home/boo= jum/Documents/zzz/alpine-image-bootstrap/tmp/tmp.u5KuNSSdie/mount/sys
=
+ for a in dev dev/pts p= roc sys run
+ mount= -o bind /run /home/boojum/Documents/zzz/alpine-image-bootstrap/tmp/tmp.u5K= uNSSdie/mount/run
+= chroot /home/boojum/Documents/zzz/alpine-image-bootstrap/tmp/tmp.u5KuNSSdi= e/mount /bin/sh -x
+ mkdir -p /etc/kernel-hooks.d/
+ mkdir -p /etc/mkinitfs/
+ mkdir -p /boot/efi/EFI/Linux/
+ echo 'cmdline=3Droot=3DLABEL=3Dalp= ine modules=3Dext4'
+<= /span> echo 'signing_disabled=3Dyes'
+ echo 'output_dir=3D/boot/efi/EFI/Linux/'= ;
+ echo 'outpu= t_name=3Dbootx64.efi'
= + echo 'disable_trigger=3Dyes'
+ apk update
v20240923-5088-g92cc27fd38d [https://dl-cdn.alpinelinux.org/alpine/v3.21/main= ]
OK: 5550 distinct packages available
+ apk add linux-lts linux-firmware-none mkini= tfs secureboot-hook gummiboot-efistub
(1/23) Installing gummiboot= -efistub (48.1-r8)
(2/23) Installing linux-firmware-none (2024090= 9-r3)
(3/23) Installing xz-libs (5.6.3-r0)
(4/23) Insta= lling zstd-libs (1.5.6-r1)
(5/23) Installing kmod (33-r2)
(6/23) Installing lddtree (1.27-r0)
(7/23) Installing libeconf= (0.6.3-r0)
(8/23) Installing libblkid (2.40.2-r4)
(9/2= 3) Installing device-mapper-libs (2.03.28-r2)
(10/23) Installing = json-c (0.18-r0)
(11/23) Installing libuuid (2.40.2-r4)
(12/23) Installing cryptsetup-libs (2.7.5-r1)
(13/23) Installing= kmod-libs (33-r2)
(14/23) Installing mkinitfs (3.10.2-r1)
<= div>Executing mkinitfs-3.10.2-r1.post-install
(15/23) Installing = linux-lts (6.12.0-r1)
(16/23) Installing libgcc (14.2.0-r4)
=
(17/23) Installing jansson (2.14-r4)
(18/23) Installing libs= tdc++ (14.2.0-r4)
(19/23) Installing binutils (2.43.1-r1)
(20/23) Installing efi-mkuki (0.1.0-r2)
(21/23) Installing ker= nel-hooks (0.2-r1)
(22/23) Installing sbsigntool (0.9.5-r2)
=
(23/23) Installing secureboot-hook (0.2-r2)
Executing secure= boot-hook-0.2-r2.post-install
Executing busybox-1.37.0-r8.trigger=
Executing kmod-33-r2.trigger
Executing mkinitfs-3.10.2= -r1.trigger
Executing kernel-hooks-0.2-r1.trigger
kerne= l-hooks: executing hook 50-secureboot.hook (lts, 6.12.0-1, )
=3D= =3D> initramfs: creating /tmp/secureboot.Jlefgi/initramfs for 6.12.0-1-l= ts
Display ELF dependencies as a tree

Usage: lddtre= e [options] ELFFILE...
<= br>
Options:
-a, --all Show all duplicated depend= encies
-h, --help Show this help output
-l= , --flat Display output in a flat format
--no-auto= -root Do not automatically prefix input ELFs with ROOT
-R, --r= oot ROOT Use this ROOT filesystem tree
-V, --version = Show version information
-x, --debug Run with debugging=
=3D=3D> secureboot: creating UEFI Unified Kernel Image with /= boot/vmlinuz-lts
=3D=3D> secureboot: writing *unsigned* UEFI image to /boot/efi/EFI/Linux//bootx= 64.efi (signing is disabled!)
OK: 133 MiB in 47 packages
+ setup-hostname -n satelli= te
+ rc-update -q a= dd devfs sysinit
+ = rc-update -q add dmesg sysinit
+ rc-update -q add mdev sysinit
+ rc-update -q add hwdrivers sysinit
+ rc-update -q add hwclock boot<= /div>
+ rc-update -q add = modules boot
+ rc-u= pdate -q add hostname boot
+ rc-update -q add bootmisc boot
+ rc-update -q add networking boot
+ rc-update -q add mount-ro shutdown<= /div>
+ rc-update -q add = killprocs shutdown
+ rc-update -q add savecache shutdown
+ rc-update -q add crond default
+ mkdir -p /boot/efi/loader/entries
+ cat
+ ls -la /boot/efi/EFI/Linux/
<= div>total 11416
drwxr-xr-x 2 root root 4096 Nov 2= 3 13:20 .
drwxr-xr-x 3 root root 4096 Nov 23 13:2= 0 ..
-rwxr-xr-x 1 root root 11680190 Nov 23 13:20 boo= tx64.efi
+ cp alpin= e.img /home/boojum/Documents/zzz/alpine-image-bootstrap/out/
+ cleanup
+ set +o errexit
+ '[' -n /dev/loop1 ']'<= /div>
+ losetup -d /dev/l= oop1
+ '[' = -n /home/boojum/Documents/zzz/alpine-image-bootstrap/tmp/tmp.u5KuNSSdie/mou= nt ']'
+ mo= untpoint -q /home/boojum/Documents/zzz/alpine-image-bootstrap/tmp/tmp.u5KuN= SSdie/mount
+ umoun= t --recursive /home/boojum/Documents/zzz/alpine-image-bootstrap/tmp/tmp.u5K= uNSSdie/mount
+ = 9;[' -n /home/boojum/Documents/zzz/alpine-image-bootstrap/tmp/tmp.u5KuN= SSdie ']'
+= rm -rf /home/boojum/Documents/zzz/alpine-image-bootstrap/tmp/tmp.u5KuNSSdi= e
--0000000000009f767306279465c3--