metricspi/initramfs/overlay/init

29 lines
831 B
Bash
Executable File

#!/bin/sh
# vim: set sw=4 ts=4 sts=4 et :
bail() {
exec /bin/sh < /dev/console > /dev/console 2> /dev/console
}
# XXX Why doesn't LABEL= work here?
root=/dev/nvme0n1p2
mkdir -p /boot /dev /run /sysroot || bail
mount -o size=20%,nr_inodes=819200,mode=755,inode64 -t tmpfs tmpfs /run || bail
mount -t devtmpfs devtmpfs /dev || bail
mount -t proc proc /proc || bail
mount -o subvol=boot -t btrfs ${root} /boot || bail
mount -o ro,loop -t squashfs /boot/rootfs.squashfs /sysroot || bail
mkdir -p /run/etc || bail
mount -o subvol=etc -t btrfs ${root} /run/etc || bail
mount -o lowerdir=/sysroot/etc,upperdir=/run/etc/rw,workdir=/run/etc/.work \
-t overlay overlay /sysroot/etc || bail
mount --move /boot /sysroot/boot || bail
mount --move /run /sysroot/run || bail
exec switch_root /sysroot /lib/systemd/systemd || bail