29 lines
831 B
Bash
Executable File
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
|