alpine issueshttps://gitlab.alpinelinux.org/groups/alpine/-/issues2021-09-17T06:06:06Zhttps://gitlab.alpinelinux.org/alpine/aports/-/issues/13003Package Request: swaystatus2021-09-17T06:06:06ZflatterlightPackage Request: swaystatusHi,
it would be a nice addition for a sway desktop.
The sourcecode, build instructions and config documentation are available on Github -> https://github.com/NobodyXu/swaystatus.
thanks for your time.Hi,
it would be a nice addition for a sway desktop.
The sourcecode, build instructions and config documentation are available on Github -> https://github.com/NobodyXu/swaystatus.
thanks for your time.https://gitlab.alpinelinux.org/alpine/aports/-/issues/12916Add a runtime dependency to gpsd-clients or split the package2021-08-12T19:27:33ZBenoit RozelAdd a runtime dependency to gpsd-clients or split the package`py3-cairo` and `py3-gpsd` are runtime dependencies of the programs `xgps` and `xgpsspeed` provide by `gpsd-clients`.
Either add this runtime dependency to the package, or split the package (or remove these two programs of the package).`py3-cairo` and `py3-gpsd` are runtime dependencies of the programs `xgps` and `xgpsspeed` provide by `gpsd-clients`.
Either add this runtime dependency to the package, or split the package (or remove these two programs of the package).https://gitlab.alpinelinux.org/alpine/aports/-/issues/12850Package Request: py3-pytorch2024-02-19T18:38:38ZJ0WIPackage Request: py3-pytorch- https://pytorch.org/
- https://github.com/pytorch/pytorch- https://pytorch.org/
- https://github.com/pytorch/pytorchhttps://gitlab.alpinelinux.org/alpine/mkinitfs/-/issues/16multidisk crypt support2022-08-11T16:17:56Zmrpropermultidisk crypt supportI have a somewhat complicated setup which involves:
1. /boot on a usb that is luks encrypted
2. 2+ nvme disks luks encrypted with LVM over the top
3. logical volume root sitting inside 2.
4. /boot has a keyfile in the root "crypto_keyfil...I have a somewhat complicated setup which involves:
1. /boot on a usb that is luks encrypted
2. 2+ nvme disks luks encrypted with LVM over the top
3. logical volume root sitting inside 2.
4. /boot has a keyfile in the root "crypto_keyfile.bin" which is the key to unlock 2.
The problem:
"cryptroot" expects a singular blockdevice to contain the root filesystem, irrespective of the separated boot, with lvm striped over multiple luks crypted disks there is no current way to make sure multiple disks are decrypted first
I've been working on a patch that is actually a combination of a couple things:
https://gitlab.alpinelinux.org/alpine/mkinitfs/-/merge_requests/54
https://gitlab.alpinelinux.org/alpine/mkinitfs/-/merge_requests/57
But by adding 2 new style kopts
- cryptboot - this is for setting a UUID for unlocking a boot device that is mounted at /cryptboot during init
- cryptbootkey - this is for setting a path to a keyfile within the /cryptboot mount for unlocking cryptdevices
- cryptdevices - this is a list of UUID's/LABEL's
With the above you would set your root=/dev/vg0/root (or whatever it is)
setup cryptboot/cryptbootkey cryptdevices etc with the appropriate values.
The problem im having is that nlplug-findfs wants to do more than i want it to.
for example if i use:
```
+ for dev in $KOPT_cryptroot; do
+ case "$dev" in
+ UUID=*) mapping="luks-${dev#UUID=}";;
+ LABEL=*) mapping="luks-${dev#LABEL=}";;
+ *) mapping="luks-$(echo "$dev" | sed 's/\//-/g')";;
+ esac
+ echo "Unlocking $dev as $mapping"
+ nlplug-findfs $cryptopts -p /sbin/mdev ${KOPT_debug_init:+-d} -c "$dev" -m "$mapping" $KOPT_root
```
and that disk happens to be an lvm pv, it will try and activate it and break (because my example i have a root as a raid1 logical volume on 2 x striped pv's
If this is of interest or someone knows a better way of accomplishing this id be super excited to look into ithttps://gitlab.alpinelinux.org/alpine/aports/-/issues/12805patch asterisk dns resolver2023-03-23T20:59:49Z杨文 陈patch asterisk dns resolverasterisk use res_ninit which musl do not impl, can follow this [path](https://github.com/openembedded/openembedded-core/blob/master/meta/recipes-connectivity/connman/connman/0002-resolve-musl-does-not-implement-res_ninit.patch) to fix th...asterisk use res_ninit which musl do not impl, can follow this [path](https://github.com/openembedded/openembedded-core/blob/master/meta/recipes-connectivity/connman/connman/0002-resolve-musl-does-not-implement-res_ninit.patch) to fix the problem [here](https://github.com/asterisk/asterisk/blob/b4347c486150653ec7ce1d129e8f9017c69344da/main/dns.c#L583)
fix this error
```
ERROR[4641]: res_pjsip/config_system.c:267 system_create_resolver_and_set_nameservers: There are no local system nameservers configured, resorting to system resolution
ERROR[4641]: res_pjsip/config_system.c:267 system_create_resolver_and_set_nameservers: There are no local system nameservers configured, resorting to system resolution
```Timo TeräsTimo Teräshttps://gitlab.alpinelinux.org/alpine/abuild/-/issues/10033Add script to automatically rebuild packages depending on a specific .so2021-10-13T20:46:27ZSören TempelAdd script to automatically rebuild packages depending on a specific .soWhat comes up a lot on IRC is people asking how to rebuild packages on soname version bumps. I think several developers have scripts in their `~/bin` for this purpose. Maybe it makes sense to add one of them to abuild itself to make it m...What comes up a lot on IRC is people asking how to rebuild packages on soname version bumps. I think several developers have scripts in their `~/bin` for this purpose. Maybe it makes sense to add one of them to abuild itself to make it more obvious/easier for people to automate package rebuilds.
Thoughts?
I personally have the following script from @ncopa in my `~/bin`:
```shell
#!/bin/sh
prog=$0
usage() {
cat <<EOF
rebuilds and commits packages since given commit
list of packages is read from stdin
usage: $prog: <since commit> <commit message>
example:
apk search -r --origin --exact -q foo-libs | $prog affadeadbeef 'rebuild against foo-libs-1.0'
EOF
exit 1
}
skip_noarch=false
dryrun=false
ignore_error=false
while getopts "nac" opt; do
case $opt in
n) dryrun=true;;
a) skip_noarch=true;;
c) ignore_error=true;;
esac
done
shift $(($OPTIND - 1))
[ $# -lt 2 ] && usage
since=$1
shift
msg=$1
shift
echo "reading packages from stdin..."
pkgs=$(while read i; do echo ${i##*/}; done)
echo "considering: $pkgs"
dirs=
for dir in $(ap builddirs $pkgs); do
if $skip_noarch && grep -q '^arch=.*noarch' $dir/APKBUILD; then
echo "skipping due to noarch: $dir"
continue
fi
changes=$(git log --format=oneline ${since}.. -- $dir)
[ -n "$changes" ] && continue
dirs="$dirs $dir"
done
echo "Rebuilding: $dirs" | tr ' ' '\n'
if $dryrun; then
exit 0
fi
for dir in $dirs; do
name=${dir##*/}
repodir=${dir%/*}
repo=${repodir##*/}
cd $dir
apkgrel -g -a ./APKBUILD
git add APKBUILD \
&& git commit -m "$repo/$name: $msg" \
|| { if ! $ignore_error; then exit 1; fi; }
done
```https://gitlab.alpinelinux.org/alpine/aports/-/issues/12787Package request: npm-current2021-08-20T00:59:34ZLauri SvanPackage request: npm-currentAlpine Linux already packages Node.js 16.x as `nodejs-current`. While this is great, it is little to no use without having the associated package manager `npm`, which currently has the base `nodejs` (e.g. version 14) as a dependency.
Th...Alpine Linux already packages Node.js 16.x as `nodejs-current`. While this is great, it is little to no use without having the associated package manager `npm`, which currently has the base `nodejs` (e.g. version 14) as a dependency.
The suggestion is to build Node.js 16.x linked version as `npm-current`. The naming would be consistent with the other package and could easily be updated in tandem with updating `nodejs-current`
Node.js 16 is will be the actively maintained version starting next fall, https://nodejs.org/en/about/releases/ and I think it would be good if alpine packages were prepared for that.https://gitlab.alpinelinux.org/alpine/aports/-/issues/12748Unexpected behavior of usbmuxd+udev2021-06-12T08:08:21ZKasper KUnexpected behavior of usbmuxd+udevI have installed Alpine Linux desktop (xorg+dwm) on a laptop (baremetal). After installing `usbmuxd` and `libimobiledevice-progs` packages, I get the following behavior:
* boot the system, (notice that usbmuxd was already running right ...I have installed Alpine Linux desktop (xorg+dwm) on a laptop (baremetal). After installing `usbmuxd` and `libimobiledevice-progs` packages, I get the following behavior:
* boot the system, (notice that usbmuxd was already running right after the boot) attach iPhone via USB and run `idevice_id -l`, it does not list the device.
* kill usbmuxd process, reattach iPhone, a new instance of usbmuxd will automatically spin up. At this point run `idevice_id -l` and it lists the device.
So after the boot, I have to kill usbmuxd (once), and it detects one or more iPhone just fine until the next boot.
It seems like a timing problem that [the udev rule](https://github.com/libimobiledevice/usbmuxd/blob/5e484e18f1383b5a0bd6c353ab1d668b03e4ffab/udev/39-usbmuxd.rules.in#L7) runs usbmuxd process earlier at the point where it is expecting certain kernel module to be loaded, then usbmuxd does not reattempt to inspect the system and stays alive.
If someone has better insights what is going on or best place to fix it, please chime in. :)
ps - on systemd-based OS, usbmuxd uses [service](https://github.com/libimobiledevice/usbmuxd/blob/5e484e18f1383b5a0bd6c353ab1d668b03e4ffab/systemd/usbmuxd.service.in) instead of the udev rule. Maybe we can ditch the udev rule and add openrc initd script for it to resolve this?https://gitlab.alpinelinux.org/alpine/apk-tools/-/issues/10747When a package stops replacing a file, that file gets uninstalled completely ...2022-12-21T18:50:51ZBart RibbersWhen a package stops replacing a file, that file gets uninstalled completely rather than switching back to the version of the original providing packageIn postmarketOS we are currently overwriting `/etc/sudoers` from sudo in one of our packages but we want to stop doing that in [pmaports!2181](https://gitlab.com/postmarketOS/pmaports/-/merge_requests/2181). However while testing this ch...In postmarketOS we are currently overwriting `/etc/sudoers` from sudo in one of our packages but we want to stop doing that in [pmaports!2181](https://gitlab.com/postmarketOS/pmaports/-/merge_requests/2181). However while testing this change we noticed that rather than the file being either reverted back to what sudo itself provides or just being left there, it would get uninstalled instead.
This seems strange, seeing there is still a package on the system that provides (and needs!) that file, it's just the original providing package again. To "fix" it we need to reinstall sudo to let it put it's own file back again, but of course we can't tell all our users to manually run `apk fix sudo` after a random system upgrade.v3.1https://gitlab.alpinelinux.org/alpine/aports/-/issues/12690feat:metasploit-framework2022-08-18T12:59:35ZTux Da Penguinfeat:metasploit-frameworkMetasploit Framework is a Ruby-based, modular penetration testing platform that enables you to write, test, and execute exploit code.
**source**: [https://github.com/rapid7/metasploit-framework](https://github.com/rapid7/metasploit-fram...Metasploit Framework is a Ruby-based, modular penetration testing platform that enables you to write, test, and execute exploit code.
**source**: [https://github.com/rapid7/metasploit-framework](https://github.com/rapid7/metasploit-framework)
**homepage**: [www.metasploit.com](https://www.metasploit.com/)
**depends**:`ruby-irb ruby subversion ruby-dev libpcap-dev postgresql postgresql-dev`
**installation**:
( `wget http://downloads.metasploit.com/data/releases/framework-latest.tar.bz2`
`tar -jxf framework-latest.tar.bz2`
`sudo mkdir -p /opt/metasploit4`
`sudo cp -a msf3/ /opt/metasploit4/msf`
`sudo chown root:root -R /opt/metasploit4/msf`
`sudo ln -sf /opt/metasploit4/msf/msf* /usr/local/bin/` )https://gitlab.alpinelinux.org/alpine/aports/-/issues/12686feat: munin-async2021-05-24T15:43:15Zbrknkfrfeat: munin-asyncPlease include `munin-async` into `munin-node` or include it as separate package. `munin-async` is an asynchronous proxy for munin-node which heavily reduces the load of munin, see http://guide.munin-monitoring.org/en/latest/node/async.h...Please include `munin-async` into `munin-node` or include it as separate package. `munin-async` is an asynchronous proxy for munin-node which heavily reduces the load of munin, see http://guide.munin-monitoring.org/en/latest/node/async.html.
I manually installed the files `munin-async` (the helper) and `munin-asyncd` (the daemon) under /usr/sbin and created a simple startup script for it and it seems to work just very fine.
```
#!/sbin/openrc-run
# munin-asyncd init.d file for alpine linux.
name="munin-async"
description="Asynchronous proxy for munin-node"
pidfile=/run/munin/${name}.pid
command=/usr/sbin/munin-asyncd
command_user="munin-async:munin-async"
command_background=true
depend() {
need net
use munin-node
after firewall
}
start_pre() {
checkpath -d -o munin-async:munin-async -m755 /var/lib/munin-async
}
```
Could you do that @stwa?Stefan WagnerStefan Wagnerhttps://gitlab.alpinelinux.org/alpine/apk-tools/-/issues/10745Allow repository precedence when multiple instances of the same repository ex...2022-12-21T20:01:44ZMorgan HeinAllow repository precedence when multiple instances of the same repository exist in /etc/apk/repositoriesI have the following situation:
- Repository A is a custom compiled set of packages that also exist in
the public repository. This repository has the pkgs compiled with
extra security features and/or some unique flags set.
- ...I have the following situation:
- Repository A is a custom compiled set of packages that also exist in
the public repository. This repository has the pkgs compiled with
extra security features and/or some unique flags set.
- Repository B is a full mirror of the official repository.
What i’d like to happen is list both repositories in the
/etc/apk/repositories file, and have the clients prefer downloading all
pkgs from Repo A. In the case that the file doesn’t exist in Repo A,
then download from Repo B.
This, currently, doesn’t seem possible. After adding both repositories,
clients sometimes download from A, and sometimes download from B,
regardless of what is available in A.
The ability to add multiple repositories, with precedence, would be very
helpful in this situation.
Thanks,
Morgan
*(from redmine: issue id 9409, created on 2018-09-11)*backloghttps://gitlab.alpinelinux.org/alpine/alpine-conf/-/issues/10474[Installation-Wiki FIXME-2 (data disk mode)] allow selecting new data disk f...2021-05-20T10:32:08ZSPO[Installation-Wiki FIXME-2 (data disk mode)] allow selecting new data disk for configs[ Alpine's "Installation" page covers the Alpinelinux disk modes. (https://wiki.alpinelinux.org/wiki/Installation)
However, it still has to refer to two manual `setup-alpine` "FIXME" workarounds, to cover the basic installation options....[ Alpine's "Installation" page covers the Alpinelinux disk modes. (https://wiki.alpinelinux.org/wiki/Installation)
However, it still has to refer to two manual `setup-alpine` "FIXME" workarounds, to cover the basic installation options. ]
=> In `setup-alpine`, after chhosing the "data disk mode", please allow selecting the just configured data disk, to also store configs.
----
From the wiki:
[FIXME-2: Setup-alpine can not yet configure to store lbu configs to the "data disk" after selecting to use one.
It's still necessary to
* first select to save configs to "none" in setup-alpine (the new data partition is not listed), and
* to manually edit /etc/lbu/lbu.conf to set e.g. LBU_MEDIA=sdXY,
* execute a corresponding echo "/dev/sdXY /media/sdXY vfat rw 0 0" >> /etc/fstab afterwards, and
* save the config with lbu commit to have the partition (here, dubbed as sdXY) mounted when booting.
]https://gitlab.alpinelinux.org/alpine/aports/-/issues/12607libguestfs: virt-sparsify missing?2021-09-24T09:37:39ZJosep Maria Viñolas Auquerlibguestfs: virt-sparsify missing?Hi, while building libguestfs the packages created are missing some utilities found in libguestfs src as sparsify (virt-sparsify).
Am I missing something or they can't be built on alpine? It seems that some perl modules are missing to bu...Hi, while building libguestfs the packages created are missing some utilities found in libguestfs src as sparsify (virt-sparsify).
Am I missing something or they can't be built on alpine? It seems that some perl modules are missing to build some virt-* tools.https://gitlab.alpinelinux.org/alpine/aports/-/issues/12605gdm: fails to wake up after locking2023-01-29T15:58:55ZDylan Van Asschegdm: fails to wake up after locking# Description
I upgraded to edge to have GNOME 40 and when my desktop is now locked (manually or automatically after X minutes), I cannot wake it up anymore. The screen stays blank. If I switch to another tty using CTRL + F-key, the scr...# Description
I upgraded to edge to have GNOME 40 and when my desktop is now locked (manually or automatically after X minutes), I cannot wake it up anymore. The screen stays blank. If I switch to another tty using CTRL + F-key, the screen turns on and shows me a prompt. If I switch back to the original tty, the GDM greeter is shown.
# What's happening
Pressing a key or moving the mouse doesn't do anything when the desktop is locked.
# What's supposed to happen
Pressing a key or moving the mouse wakes up the desktop and shows the GDM greeter.
# Steps to reproduce
1. Lock the screen
2. Wait until the screen enter low power mode
3. Try to wake it up by moving the mouse or pressing a key on the keyboard.
# Environment
- Alpine Linux edge
- Intel integrated GPU (Mesa Intel® UHD Graphics 630 (CML GT2))
- GNOME 40.0 on Wayland
- GDM 40.0
# Logs
[greeter.log](/uploads/1b0a415a8a2978b4011bb906bed51295/greeter.log)Rasmus Thomsenoss@cogitri.devRasmus Thomsenoss@cogitri.devhttps://gitlab.alpinelinux.org/alpine/aports/-/issues/12504[BUG] No /dev/zdX ZFS block devices for encrypted datasets after reboot2022-02-11T10:44:19Zbademux[BUG] No /dev/zdX ZFS block devices for encrypted datasets after rebootStep to reproduce:
1. Download latest Extended Alpine https://dl-cdn.alpinelinux.org/alpine/v3.13/releases/x86_64/alpine-extended-3.13.2-x86_64.iso
2. Copy all files from alpine iso to USB drive formatted as a single efi partition.
3. Se...Step to reproduce:
1. Download latest Extended Alpine https://dl-cdn.alpinelinux.org/alpine/v3.13/releases/x86_64/alpine-extended-3.13.2-x86_64.iso
2. Copy all files from alpine iso to USB drive formatted as a single efi partition.
3. Setup Alpine:
```ash
setup-alpine
apk add util-linux nano udev zfs
setup-udev
modprobe zfs
mount -o remount,rw /media/usb
dd if=/dev/random of=/media/usb/var.key bs=1 count=32
zpool create -f -o ashift=12 -o autotrim=on \
-O acltype=posixacl -O canmount=on -O compression=zstd -O dnodesize=auto -O normalization=formD -O relatime=on -O
zfs create -V 8G -b $(getconf PAGESIZE) -o compression=zle -o logbias=throughput -o sync=standard -o primarycache=metadata -o secondarycache=none -o com.sun:auto-snapshot=false -o encryption=aes-256-gcm -o keylocation=file:///media/usb/var.key -o keyformat=raw rpool/swap
udevadm trigger
#check zdX device with ls /dev/zd*
sed -i 's/MOUNT_EXTRA_OPTIONS=""/MOUNT_EXTRA_OPTIONS="-l"/' /etc/conf.d/zfs #load key on mount
rc-update add zfs-import sysinit
rc-update add zfs-mount sysinit
lbu ci && reboot
```
4. after the reboot there is no zdX devices (check zdX device with ls ```/dev/zd* ```)
Sorry for offtopic but it can be related looks like it is mandatory to run ``` zfs load-key -a ``` before encrypted, legacy-mountpoint dataset can be mounted by fstab. It will be nice if ``` zfs load-key -a ``` can be configured by /etc/conf.d/zfshttps://gitlab.alpinelinux.org/alpine/infra/infra/-/issues/10714Backport bot2021-05-26T22:16:22ZJ0WIBackport botWould be great to have a bot (similar to [this](https://github.com/rullzer/backportbot)) to create backport MRs from GitLab comments.Would be great to have a bot (similar to [this](https://github.com/rullzer/backportbot)) to create backport MRs from GitLab comments.https://gitlab.alpinelinux.org/alpine/aports/-/issues/12382Incorrect ZFS file system 'atime' property in zpool2023-03-06T14:12:40ZGábor ADORJÁNIIncorrect ZFS file system 'atime' property in zpoolHello,
Despite having set the `atime` property to `off` for the root pool, several file systems are mounted with `atime=on` from initramfs (container names are redacted):
```
# zfs get -r atime
NAME PROPERTY VALUE SOURC...Hello,
Despite having set the `atime` property to `off` for the root pool, several file systems are mounted with `atime=on` from initramfs (container names are redacted):
```
# zfs get -r atime
NAME PROPERTY VALUE SOURCE
rpool atime off local
rpool/ROOT atime off inherited from rpool
rpool/ROOT/alpine atime on temporary
rpool/home atime on temporary
rpool/lxc atime on temporary
rpool/lxc/<c1> atime off inherited from rpool
rpool/lxc/<c2> atime off inherited from rpool
rpool/srv atime on temporary
rpool/var atime on temporary
#
```
This is not how ZFS should work, importing the root pool should honour this setting, as it does on Solaris and FreeBSD.
I guess this is not necessarily Alpine related, but a more generic Linux problem because of how Linux boots with initramfs, then does a pivot_root. Though Solaris (and derivatives) works similarly with its boot archive. Issue #8609 looks related: the resolution there seemed to cause this.
I tried a workaround by adding `rootflags=atime=off` to `default_kernel_opts` in `/etc/update-extlinux.conf`, then ran `update-extlinux` and reboot, but it did not help. Maybe I'm missing a point.
#### Edit, addition on 11.2.2021:
It seems like it affects non-root zpools, too. I've reinstalled the server meanwhile (for other reasons, out of scope) and here's what I can see currently (`redact.sh` just replaces the poolname):
```
zfs list -t all -r | ./redact.sh
NAME USED AVAIL REFER MOUNTPOINT
linux_sda4 4.59M 221G 96K /linux_sda4
linux_sda4/home 124K 221G 124K /home
linux_sda4/srv 96K 221G 96K /srv
linux_sda4/var 2.11M 221G 2.11M /var
# zfs get -r mountpoint,atime,canmount,mounted | ./redact.sh
NAME PROPERTY VALUE SOURCE
linux_sda4 mountpoint /linux_sda4 default
linux_sda4 atime off local
linux_sda4 canmount noauto local
linux_sda4 mounted no -
linux_sda4/home mountpoint /home local
linux_sda4/home atime on temporary
linux_sda4/home canmount on default
linux_sda4/home mounted yes -
linux_sda4/srv mountpoint /srv local
linux_sda4/srv atime on temporary
linux_sda4/srv canmount on default
linux_sda4/srv mounted yes -
linux_sda4/var mountpoint /var local
linux_sda4/var atime on temporary
linux_sda4/var canmount on default
linux_sda4/var mounted yes -
# mount | grep zfs | ./redact.sh
linux_sda4/var on /var type zfs (rw,noatime,xattr,noacl)
linux_sda4/srv on /srv type zfs (rw,noatime,xattr,noacl)
linux_sda4/home on /home type zfs (rw,noatime,xattr,noacl)
#
```
So:
1. no matter if I set `atime=off` for the whole pool, the mountpoints do not inherit this
1. the output of `zfs get` and `mount` are contradicting each other: `atime=on` vs `noatime`.https://gitlab.alpinelinux.org/alpine/mkinitfs/-/issues/15fsck support2021-02-08T12:50:18ZAlex Xu (Hello71)fsck supportext* filesystem is an odd-one-out in that it supports being fscked while mounted. Other filesystems such as F2FS and FAT must be unmounted to fsck properly, or do not require fsck during normal operation, such as XFS, btrfs, ZFS, etc. Ev...ext* filesystem is an odd-one-out in that it supports being fscked while mounted. Other filesystems such as F2FS and FAT must be unmounted to fsck properly, or do not require fsck during normal operation, such as XFS, btrfs, ZFS, etc. Even the ext* fsck while ro-mounted is sketchy though; it doesn't really make sense to fsck using a filesystem that you think may be corrupt. Even when it does work, it sometimes requires reboot, which shouldn't be required if the filesystem is unmounted. This is all a legacy from before initrd/initramfs. In modern era, we should fsck from initramfs when possible, like Debian and I think most other distros.https://gitlab.alpinelinux.org/alpine/aports/-/issues/12368Raspberry Pi fails to boot when volume label is "boot" (e.g. after overwritin...2022-07-31T00:10:53ZAlex Xu (Hello71)Raspberry Pi fails to boot when volume label is "boot" (e.g. after overwriting Raspbian)Raspberry Pi fails to boot and repeatedly blinks LED 7 times, meaning "kernel not found". If `BOOT_UART=1` is set, the messages "Failed to load &#39;boot/initramfs-rpi&#39; - initramfs disabled" and "No compatible kernel found" are print...Raspberry Pi fails to boot and repeatedly blinks LED 7 times, meaning "kernel not found". If `BOOT_UART=1` is set, the messages "Failed to load 'boot/initramfs-rpi' - initramfs disabled" and "No compatible kernel found" are printed to serial. This is caused by the volume label being "boot", which Raspbian/Raspberry Pi OS have in their official images: https://github.com/RPi-Distro/pi-gen/blob/225f69828fa05361d6028edf2d7a69db73fe2b45/export-image/prerun.sh#L77.
Many, many users have fallen for this: #10302, #10443, #10930, #12031, #12066, and #12361 at least, plus most likely #9979, #10407, and #11779.
The direct fix is to set the volume label to anything other than "boot". mkfs.fat sets the volume label to "NO NAME" by default, and I don't think any major operating systems use "boot". To change an existing filesystem from Linux, fatlabel will do the job: `fatlabel /dev/sdX ALPINE` for example. However, I think we should rename the boot directory in order to mitigate this footgun. In the long term, I agree that we should move to image-based distribution anyways.