aboutsummaryrefslogtreecommitdiff
path: root/lib/init/rc.boot
diff options
context:
space:
mode:
authorCem Keylan <cem@ckyln.com>2019-12-18 21:04:42 +0300
committerCem Keylan <cem@ckyln.com>2019-12-18 21:04:42 +0300
commit54d7bde90161b3e01a5e15260d08e79f39096fec (patch)
tree115c5be853dc5a3be418c75dc4d9d5f3095a874c /lib/init/rc.boot
parent758d2e63839218d68b1a78a9571a263f58640a2d (diff)
downloadinit-54d7bde90161b3e01a5e15260d08e79f39096fec.tar.gz
add makefile
Diffstat (limited to 'lib/init/rc.boot')
-rwxr-xr-xlib/init/rc.boot177
1 files changed, 0 insertions, 177 deletions
diff --git a/lib/init/rc.boot b/lib/init/rc.boot
deleted file mode 100755
index b5b8782..0000000
--- a/lib/init/rc.boot
+++ /dev/null
@@ -1,177 +0,0 @@
-#!/bin/sh
-
-log() { printf '\033[1;36m=>\033[m\033[1m %s\n' "$@" ;}
-
-welcome() { printf '\033[1;36m=>\033[m\033[1m Welcome to\033[35m Carbs Linux\033[m\033[1m!\n' ;}
-
-error() { printf '\033[1m\033[31m=> ERROR: %s\033[m\n' "$@" ;}
-
-mnt() {
- mountpoint -q "$1" || {
- dir=$1
- shift
- mount "$@" "$dir"
- }
-}
-
-emergency_shell() {
- error \
- "Cannot continue init due to errors above, starting emergency shell" \
- "When ready, type 'exit' to continue the boot."
-
- /bin/sh -l
-}
-
-main() {
- PATH=/usr/bin:/usr/sbin
- old_ifs=$IFS
- set -f
-
- welcome
-
- log "Mounting pseudo filesystems..."; {
- mnt /proc -o nosuid,noexec,nodev -t proc proc
- mnt /sys -o nosuid,noexec,nodev -t sysfs sys
- mnt /run -o mode=0755,nosuid,nodev -t tmpfs run
- mnt /dev -o mode=0755,nosuid -t devtmpfs dev
-
- mkdir -pm 0755 /run/runit \
- /run/lvm \
- /run/user \
- /run/lock \
- /run/log \
- /dev/pts \
- /dev/shm
-
- mnt /dev/pts -o mode=0620,gid=5,nosuid,noexec -nt devpts devpts
- mnt /dev/shm -o mode=1777,nosuid,nodev -nt tmpfs shm
- }
-
- log "Starting eudev..."; {
- command -v udevd >/dev/null && {
- udevd --daemon
- udevadm trigger --action=add --type=subsystems
- udevadm trigger --action=add --type=devices
- udevadm settle
- }
- }
-
- log "Remounting rootfs as ro..."; {
- mount -o remount,ro / || emergency_shell
- }
-
- log "Activating encrypted devices (if any exist)..."; {
- [ -e /etc/crypttab ] && [ -x /bin/cryptsetup ] && {
- exec 3<&0
-
- while read -r name dev pass opts err; do
- [ "${name##\#*}" ] || continue
-
- # Break on invalid crypttab.
- [ "$err" ] && {
- printf 'error: A valid crypttab has only 4 columns.\n'
- break
- }
-
- # Turn 'UUID=*' lines into device names.
- [ "${dev##UUID*}" ] || dev=$(blkid -l -o device -t "$dev")
-
- # Parse options by turning list into a pseudo array.
- IFS=,
- set -- $opts
- IFS=$old_ifs
-
- copts="cryptsetup luksOpen"
-
- # Create an argument list (no other way to do this in sh).
- for opt; do case $opt in
- discard) copts="$copts --allow-discards" ;;
- readonly|read-only) copts="$copts -r" ;;
- tries=*) copts="$copts -T ${opt##*=}" ;;
- esac; done
-
- # If password is 'none', '-' or empty ask for it.
- case $pass in
- none|-|"") $copts "$dev" "$name" <&3 ;;
- *) $copts -d "$pass" "$dev" "$name" ;;
- esac
- done < /etc/crypttab
-
- exec 3>&-
-
- [ "$copts" ] && [ -x /bin/vgchance ] && {
- log "Activating LVM devices for dm-crypt..."
- vgchange --sysinit -a y || emergency_shell
- }
- }
- }
-
- log "Checking filesystems..."; {
- fsck -ATat noopts=_netdev
- [ $? -gt 1 ] && emergency_shell
- }
-
- log "Mounting rootfs rw..."; {
- mount -o remount,rw / || emergency_shell
- }
-
- log "Mounting all local filesystems..."; {
- mount -at nosysfs,nonfs,nonfs4,nosmbfs,nocifs -O no_netdev ||
- emergency_shell
- }
-
- log "Enabling swap..."; {
- swapon -a || emergency_shell
- }
-
- log "Seeding random..."; {
- if [ -f /var/random.seed ]; then
- cat /var/random.seed > /dev/urandom
- else
- log "This may hang."
- log "Mash the keyboard to generate entropy..."
-
- dd count=1 bs=512 if=/dev/random of=/var/random.seed
- fi
- }
-
- log "Setting up loopback..."; {
- ip link set up dev lo
- }
-
- log "Setting hostname..."; {
- read -r hostname < /etc/hostname
- printf '%s\n' "${hostname:-carbs-linux}" > /proc/sys/kernel/hostname
- } 2>/dev/null
-
- log "Getting keymap settings..."; {
- [ -r "/etc/keymap" ] && . /etc/keymap
- [ -n "$KEYMAP" ] && loadkmap < "$KEYMAP"
- }
-
- log "Loading sysctl settings..."; {
- find /run/sysctl.d \
- /etc/sysctl.d \
- /usr/local/lib/sysctl.d \
- /usr/lib/sysctl.d \
- /lib/sysctl.d \
- /etc/sysctl.conf \
- -name \*.conf -type f 2>/dev/null \
- | while read -r conf; do
- seen="$seen ${conf##*/}"
-
- case $seen in
- *" ${conf##*/} "*) ;;
- *) printf '%s\n' "* Applying $conf ..."
- sysctl -p "$conf" ;;
- esac
- done
- }
-
- command -v udevd >/dev/null &&
- udevadm control --exit
-
- log "Boot stage complete..."
-}
-
-main