aboutsummaryrefslogtreecommitdiff
path: root/init
blob: 0caf71804c2608266d430f524a956daedf273147 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/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 >/dev/console 2>&1

exec /bin/bash