add network up script

This commit is contained in:
ghe0 2024-11-08 03:55:54 +02:00
parent af688e8862
commit cbe84f228c
Signed by: ghe0
GPG Key ID: 451028EE56A0FBB4
3 changed files with 36 additions and 15 deletions

@ -18,21 +18,22 @@ echo_red() {
create_dirs() { create_dirs() {
rm -rf "$ROOT" 2>/dev/null rm -rf "$ROOT" 2>/dev/null
mkdir -p "$ROOT" "${ROOT}/usr/bin/" mkdir -p "${ROOT}/usr/bin/"
mkdir -p ${ROOT}/usr/bin mkdir -p "${ROOT}/usr/bin"
mkdir -p ${ROOT}/usr/lib mkdir -p "${ROOT}/usr/lib"
mkdir -p ${ROOT}/dev mkdir -p "${ROOT}/dev"
mkdir -p ${ROOT}/proc mkdir -p "${ROOT}/etc"
mkdir -p ${ROOT}/run mkdir -p "${ROOT}/proc"
mkdir -p ${ROOT}/tmp mkdir -p "${ROOT}/run"
mkdir -p ${ROOT}/var mkdir -p "${ROOT}/tmp"
ln -s usr/bin ${ROOT}/bin mkdir -p "${ROOT}/var"
ln -s usr/bin ${ROOT}/sbin ln -s usr/bin "${ROOT}/bin"
ln -s usr/lib ${ROOT}/lib ln -s usr/bin "${ROOT}/sbin"
ln -s usr/lib ${ROOT}/lib64 ln -s usr/lib "${ROOT}/lib"
ln -s lib ${ROOT}/usr/lib64 ln -s usr/lib "${ROOT}/lib64"
ln -s bin ${ROOT}/usr/sbin ln -s lib "${ROOT}/usr/lib64"
ln -s ../run ${ROOT}/var/run ln -s bin "${ROOT}/usr/sbin"
ln -s ../run "${ROOT}/var/run"
} }
# Installs a library. Expects absolute path. # Installs a library. Expects absolute path.

@ -2,5 +2,6 @@
source /init_functions.sh source /init_functions.sh
create_mounts create_mounts
load_modules load_modules
setup_network
mount_root mount_root
exec switch_root /mnt /sbin/init "$@" exec switch_root /mnt /sbin/init "$@"

@ -33,6 +33,25 @@ create_mounts() {
ln -sfT /proc/self/fd/2 /dev/stderr 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() { mount_root() {
mkdir /mnt mkdir /mnt
mount /dev/vda3 /mnt mount /dev/vda3 /mnt