59 lines
1.6 KiB
Bash
59 lines
1.6 KiB
Bash
#!/bin/bash
|
|
|
|
echo_blue() {
|
|
echo -e "\033[34m$1\033[0m"
|
|
}
|
|
|
|
echo_red() {
|
|
echo -e "\033[0;31m$1\033[0m"
|
|
}
|
|
|
|
load_modules() {
|
|
cat /load_modules.sh | bash
|
|
}
|
|
|
|
create_mounts() {
|
|
mount -t proc proc /proc -o nosuid,noexec,nodev
|
|
mount -t sysfs sys /sys -o nosuid,noexec,nodev
|
|
mount -t devtmpfs dev /dev -o mode=0755,nosuid
|
|
mount -t tmpfs run /run -o nosuid,nodev,mode=0755
|
|
mkdir -m755 /run/initramfs
|
|
|
|
if [ -e /sys/firmware/efi ]; then
|
|
mount -t efivarfs efivarfs /sys/firmware/efi/efivars -o nosuid,nodev,noexec
|
|
fi
|
|
|
|
# Setup /dev symlinks
|
|
if [ -e /proc/kcore ]; then
|
|
ln -sfT /proc/kcore /dev/core
|
|
fi
|
|
ln -sfT /proc/self/fd /dev/fd
|
|
ln -sfT /proc/self/fd/0 /dev/stdin
|
|
ln -sfT /proc/self/fd/1 /dev/stdout
|
|
ln -sfT /proc/self/fd/2 /dev/stderr
|
|
}
|
|
|
|
# expects kernel param in this format: detee_net=192.168.122.140_24_192.168.122.1_1.1.1.1
|
|
setup_network() {
|
|
local settings='' ip_addr='' mask='' cidr='' gateway='' nameserver=''
|
|
settings=$(cat /proc/cmdline | grep -oE 'detee_net=[0-9a-z\_\:\.]+' | cut -d '=' -f2)
|
|
# TODO: replace with exit 0 when you are ready to force a kernel panic
|
|
[[ -z "$settings" ]] && return 0
|
|
settings="${settings#detee_net=}"
|
|
ip_addr="$( echo ${settings} | cut -d'_' -f1 )"
|
|
mask="$( echo ${settings} | cut -d'_' -f2 )"
|
|
cidr="${ip_addr}/${mask}"
|
|
gateway="$( echo ${settings} | cut -d'_' -f4 )"
|
|
nameserver="$( echo ${settings} | cut -d'_' -f5 )"
|
|
|
|
ip addr add $cidr dev eth0
|
|
ip link set eth0 up
|
|
ip route add default via $gateway
|
|
echo nameserver $nameserver > /etc/resolv.conf
|
|
}
|
|
|
|
mount_root() {
|
|
mkdir /mnt
|
|
mount /dev/vda3 /mnt
|
|
}
|