booster: current raid/mdadm support does not allow enough time for slow devices to come fully online

I’m using booster 0.6-1 from the archlinux repositories. My root is a 2-disk RAID1 on relatively slow HDDs. I am not able to use booster to boot because I believe that booster is not waiting for the RAID1 to fully finish assembly before attempting to mount. My system does alternatively work with mkinitcpio and the systemd + mdadm_udev hooks.

When attempting to boot, I get an “unable to read superblock” error. If I wait for the mount_timeout to elapse I can manually mount the RAID device, which is already present, without error.

An abbreviated dmesg log is here (I can attach full log if requested). Notice that the “unable to read superblock” error occurs moments before the raid device comes fully online:

[    0.000000] Command line: initrd=\amd-ucode.img initrd=\booster-linux-lts.img root=/dev/md/root rootfstype=ext4 rw
[    0.000000] Kernel command line: initrd=\amd-ucode.img initrd=\booster-linux-lts.img root=/dev/md/root rootfstype=ext4 rw
[    0.130695] smpboot: CPU0: AMD Ryzen 3 2200G with Radeon Vega Graphics (family: 0x17, model: 0x11, stepping: 0x0)
[    6.369652] md_mod: module verification failed: signature and/or required key missing - tainting kernel
[    6.462668] EXT4-fs (md127): unable to read superblock
[    6.462755] booster: mount(/dev/md/root): input/output error
[    6.505324] md/raid1:md127: active with 2 out of 2 mirrors
[    6.543912] md127: detected capacity change from 0 to 999546290176
[  128.412919] EXT4-fs (md127): mounted filesystem with ordered data mode. Opts: (null)

(I’m also very surprised by the tainting kernel line but that seems unrelated)

My /etc/booster.yaml is

universal: false
compression: zstd
mount_timeout: 1m
strip: true
# I removed fsck and fsck.ext4 in the course of debugging
extra_files: busybox
enable_mdraid: true

I’m using systemd-boot and my boot entry is:

title Arch Linux
linux /vmlinuz-linux-lts
initrd /amd-ucode.img
initrd /booster-linux-lts.img
options root=/dev/md/root rootfstype=ext4 rw

My /etc/mdadm.conf is just

DEVICE partitions
ARRAY /dev/md/root metadata=1.2 name=<hostname>:root UUID=<UUID>

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Comments: 16 (9 by maintainers)

Commits related to this issue

Most upvoted comments

I have rebuilt based on 3fd94442695196fdd873eb205644dad28598804d (HEAD of wip as of 2021-08-29 EST afternoon) and I now successfully boot both with and without booster.debug set. I rebooted a few times, including ‘cold boots’, to see if there were any common race conditions and did not run in to any.

Attached is the dmesg log for a successful boot with booster.debug set. Thanks very much @anatol ! 2021-08-29-booster_debug_dmesg.txt