diff --git a/pkgs/rootfs/mkinitrd.sh b/pkgs/rootfs/mkinitrd.sh index c35b516..7f948f7 100644 --- a/pkgs/rootfs/mkinitrd.sh +++ b/pkgs/rootfs/mkinitrd.sh @@ -19,6 +19,7 @@ ln -sf /etc/os-release ./etc/initrd-release # set default target to initrd inside initrd ln -sf initrd.target ./usr/lib/systemd/system/default.target +# generate crypttab and fstab under /run mkdir ./usr/lib/systemd/system/systemd-repart.service.d cat <<EOF > ./usr/lib/systemd/system/systemd-repart.service.d/override.conf [Unit] @@ -29,6 +30,7 @@ Requires=sysroot-run.mount ExecStart=systemd-repart --dry-run=no --generate-crypttab=/run/crypttab --generate-fstab=/run/fstab EOF +# bind mount /run to /sysroot/run cat <<EOF > ./usr/lib/systemd/system/sysroot-run.mount [Unit] Before=initrd-fs.target @@ -39,7 +41,6 @@ Options=bind What=/run Where=/sysroot/run EOF -# bind mount /run to /sysroot/run mkdir ./usr/lib/systemd/system/initrd-fs.target.requires/ ln -sf ../sysroot-run.mount ./usr/lib/systemd/system/initrd-fs.target.requires/sysroot-run.mount diff --git a/pkgs/rootfs/mkrootfs.sh b/pkgs/rootfs/mkrootfs.sh index cdc43d5..aedcf6a 100644 --- a/pkgs/rootfs/mkrootfs.sh +++ b/pkgs/rootfs/mkrootfs.sh @@ -72,6 +72,8 @@ SizeMinBytes=1G SplitName=- EOF +# as rootfs is read-only we need to configure the fstab and cryptsetup generators to look +# for config under /run (which are generated by systemd-repart) rm -f $out/etc/systemd/system.conf cat <<EOF > $out/etc/systemd/system.conf [Manager]