fi
# install our files
-cp $initfile "$initdir/init"
-cp $switchroot "$initdir/sbin/switch_root"
-cp $echoer "$initdir/echoer"
+inst "$initfile" "/init"
+inst "$switchroot" "/sbin/switch_root"
+inst "$echoer" "/echoer"
for hookdir in $hookdirs; do
for hook in "$dsrc/$hookdir"/*; do
[[ -f $hook ]] && inst "$hook" "/$hookdir/${hook##*/}"
-#!/bin/bash
+#!/bin/sh
target=$1
shift
echo "$@" >"$target"
\ No newline at end of file
-#!/bin/bash
+#!/bin/sh
#
# Licensed under the GPLv2
#
echo ; echo
echo "Bug in initramfs /init detected. Dropping to a shell. Good luck!"
echo
- bash < /dev/console
+ sh < /dev/console
}
getarg() {
local o;
- for o in $(< /proc/cmdline); do
- [[ $o == $1 ]] && { echo $o; break; }
+ for o in $(cat /proc/cmdline); do
+ [ "${o%%=*}" = "$1" ] && { echo $o; break; }
done
return 1
}
source_all() {
local f
- [[ $1 && -d /$1 ]] || return
- for f in "/$1"/*; do [[ -f $f ]] && . "$f"; done
+ [ "$1" ] && [ -d "/$1" ] || return
+ for f in "/$1"/*; do [ -f "$f" ] && . "$f"; done
}
echo "Starting initrd..."
export PATH=/sbin:/bin:/usr/sbin:/usr/bin
export TERM=linux
-trap "emergency_shell" 0 2
+trap "emergency_shell" 0
# /dev/console comes from the built-in initramfs crud in the kernel
# someday, we may need to mkdir /dev first here
exec > /dev/console 2>&1 < /dev/console
# FIXME: there's got to be a better way ...
# it'd be nice if we had a udev rule that just did all of the bits for
# figuring out what the specified root is and linking it /dev/root
-root=$(getarg 'root=*'); root=${root#root=}
+root=$(getarg root); root=${root#root=}
case $root in
LABEL=*) root=${root#LABEL=}
root=${root//\//\\x2f}
source_all pre-mount
echo "Trying to mount rootfs $root"
-[[ -e $root ]] || emergency_shell
+[ -e "$root" ] || emergency_shell
ln -s "$root" /dev/root
mount -o ro /dev/root $NEWROOT || emergency_shell
-#!/bin/bash
-[[ -f /cryptroot ]] || return
-echo "Encrypted root detected."
-cryptopts=$(< /cryptroot)
-/sbin/cryptsetup luksOpen $cryptopts || emergency_shell
-udevadm settle --timeout=30
+#!/bin/sh
+[ -f /cryptroot ] && {
+ echo "Encrypted root detected."
+ cryptopts=$(cat /cryptroot)
+ /sbin/cryptsetup luksOpen $cryptopts || emergency_shell
+ udevadm settle --timeout=30
+}
-#!/bin/bash
-resume=$(getarg 'resume=*') || return
-resume=${resume#resume=}
-[[ -b $resume ]] || return
-# parsing the output of ls is Bad, but until there is a better way...
-read x x x x maj min x < <(ls -lH "$resume")
-echo "${maj/,/}:$min"> /sys/power/resume
+#!/bin/sh
+resume=$(getarg resume) && {
+ resume=${resume#resume=}
+ [ -b "$resume" ] && {
+ # parsing the output of ls is Bad, but until there is a better way...
+ ls -lH "$resume" | (
+ read x x x x maj min x;
+ echo "${maj%,}:$min"> /sys/power/resume)
+ }
+}
-#!/bin/bash
+#!/bin/sh
# FIXME: load selinux policy. this should really be done after we switchroot
-[[ -x $NEWROOT/usr/sbin/load_policy ]] || return
-chroot $NEWROOT /usr/sbin/load_policy -i
-if (($? == 3)); then
- echo "Initial SELinux policy load failed and enforcing mode requested."
- echo "Not continuing"
- sleep 100d
- exit 1
-fi
+[ -x "$NEWROOT/usr/sbin/load_policy" ] && {
+ chroot $NEWROOT /usr/sbin/load_policy -i
+ if [ $? -eq 3 ]; then
+ echo "Initial SELinux policy load failed and enforcing mode requested."
+ echo "Not continuing"
+ sleep 100d
+ exit 1
+ fi
+}