basementhud/initramfs/overlay/sbin/init

41 lines
822 B
Bash
Executable File

#!/bin/sh -e
export PATH=/usr/sbin:/usr/bin:/sbin:/bin
mkdir -p /proc /run /sys
mount -t sysfs sysfs /sys
mount -t proc proc /proc
mount -t tmpfs tmpfs /run
# shellcheck disable=SC2046
set -- $(cat /proc/cmdline)
while [ $# -ge 1 ]; do
case "$1" in
root=nbd:*)
arg=${1#*:}
name=${arg#*:}
host=${arg%:*}
;;
esac
shift
done
for path in /sys/class/net/*; do
[ -e "${path}" ] || continue
ip link set "${path##*/}" up
done
sleep 5
udhcpc -q
@bd-client -N "${name}" -R -p "${host}" /dev/nbd0
mkdir -p /sysroot
mount -o ro -t squashfs /dev/nbd0 /sysroot || nbd-client -c /dev/nbd0
cd /sysroot
mount --move /proc /sysroot/proc
mount --move /sys /sysroot/sys
mount --move /dev /sysroot/dev
mount --move /run /sysroot/run
exec switch_root /sysroot /lib/systemd/systemd