RPi4 update initrd

NethServer release 7.9.2009 (final)

Hello all!

Since a couple of months I’m running NethServer on a Raspberry Pi4 with 8GB RAM in production for my home environment. As I don’t feel pretty with the whole system on a SD-card or a single SSD, I have installed with mdadm:
2 SSD’s are connected via a powered usb-hub to my RPi4;
Each SSD has 2 partitions:

  • a small boot partition, so it doesn’t matter from which SSD the RPi4 will boot;
  • a mdadm partition with LVM on top of that, so that root and data is allways on 2 disks.

In the boot-partition I have a INITRD file that runs first, so that the filesystem on mdadm and lvm can be initialized.
With this setup the RPi4 is booting and running without SD-card.

A problem arises at updating, as the INITRD file is not automatically updated. After an update the RPi4 doesn’t boot anymore, it hangs during boot. Until now I solved this as follows:
I still have the original NethServer for ARM image on a SD-card; I haven’t made any settings, but only installed mdadm and lvm2. After an update I shutdown the RPi4, insert the SD-card, and boot from this SD-card; after login I run yum update and reboot. After reboot and again login I’m able to recreate a new INITRD file with dracut -f -v /boot/initrd $(uname -r) and when that’s finished I copy all the new files from the boot-partition of the SD-card to both boot-partitions on the SSD’s. With that the RPi4 is able to boot again without SD-card.

So far this has gone well, but I’m afraid I’m going to make a mistake in the future, and need to restore a backup. Besides, it is many steps and I need physical access to the RPi4. I wonder if it should be possible to update the INITRD file automatically with an update? Does anybody know how to do that?

Perhaps @arm_team can help here.