#!/bin/bash # Init script for build2 buildos. # # Loosely based on the one that comes in Debian initrd.img (since we are # using its kernel image as is). # trap "exit 1" ERR set -o errtrace # Trap in functions. # Note: diagnostics goes to stdout. # function info () { echo "$*"; } function error () { info "$*"; exit 1; } export PATH=/sbin:/usr/sbin:/bin:/usr/bin # One would expect rootflags=size=1g to work but it doesn't (perhaps init # is expected to interpret it)? # mount -o remount,size=1G / mkdir -p /sys /proc mount -t sysfs -o nodev,noexec,nosuid sysfs /sys mount -t proc -o nodev,noexec,nosuid proc /proc info "init starting up..." mount -t devtmpfs -o nosuid,mode=0755 udev /dev mkdir -p /dev/pts mount -t devpts -o noexec,nosuid,gid=5,mode=0620 devpts /dev/pts || true mkdir -p /run mount -t tmpfs -o "noexec,nosuid,size=10%,mode=0755" tmpfs /run mkdir -p /tmp mount -t tmpfs -o "nodev,nosuid,size=10%,mode=1777" tmpfs /tmp # Start udev. # # Based on Debian initrd's init-top/udev. Note that we don't stop it at # at the end of init. # info "starting udev..." if [ -w /sys/kernel/uevent_helper ]; then echo >/sys/kernel/uevent_helper fi SYSTEMD_LOG_LEVEL=info /lib/systemd/systemd-udevd --daemon --resolve-names=never udevadm trigger --action=add udevadm settle || true # Parse command line. # cmdline="$(cat /proc/cmdline)" info "boot cmdline: $cmdline" sleep 2 # --machine-id # #exec /lib/systemd/systemd #/dev/console 2>&1 exec /bin/bash