File init of Package minimal-initramfs

#!/bin/sh

# Load functions.
. /functions.sh

run_hooks init

# Prepare dirs
run dodir /dev /newroot /sbin /proc /sys /etc /var/log /var/run /run /run/cryptsetup
for d in /lib /usr/lib; do
    # ! -e && ! -h: also skip broken symlinks
    if [ -d "${d}" ] && [ ! -e "${d}64" ] && [ ! -h "${d}64" ]; then
        run ln -s "${d}" "${d}64"
    fi
done
unset -v d

# Basic /dev content, we need it as fast as possible.
[ ! -e /dev/console ]  && run mknod /dev/console c 5 1
[ ! -e /dev/null ]     && run mknod /dev/null c 1 3
[ ! -e /dev/tty ]      && run mknod /dev/tty c 5 0
[ ! -e /dev/urandom ]  && run mknod /dev/urandom c 1 9
[ ! -e /dev/random ]   && run mknod /dev/random c 1 8
[ ! -e /dev/zero ]     && run mknod /dev/zero c 1 5

# Save IFS so we can easly restore it if we ever change it.
readonly default_ifs="${IFS}"

# Basic
kernelver="$(uname -r)"

einfo "minimal-initrd. Linux kernel ${kernelver}.\n"
echo -e "\nWelcome to minimal-initrd. Linux kernel ${kernelver}.\n" > /etc/motd

emount /proc /sys

# Disable kernel messages from popping onto the screen
echo 0 > /proc/sys/kernel/printk

process_commandline_options
emount /dev
#setup_console_output
run_hooks early
loadkeymap

use rootdelay rootdelay

# Let's try to support all possible combinations of storage layers.
use luks InitializeLUKS
#use bcache register_bcache_devices
#use lvm InitializeLVM


populate_dev_disk_by_label_and_uuid

use rescueshell rescueshell
run_hooks pre_newroot_mount
emount /newroot
#emount /newroot/usr
cleanup
moveDev
eumount /sys /proc
run_hooks pre_switch_root
boot_newroot

ewarn "Something went wrong."
rescueshell

# vim: noexpandtab
openSUSE Build Service is sponsored by