mirror of
https://gitlab.archlinux.org/tpowa/archboot.git
synced 2024-09-19 19:40:37 +02:00
'adopt initcpio changes'
This commit is contained in:
parent
8db3cbda1e
commit
81d06e3442
1 changed files with 32 additions and 29 deletions
|
@ -89,40 +89,43 @@ if [ "${root}" = "" -a "${ip}" = "" ]; then
|
||||||
# enter install environment
|
# enter install environment
|
||||||
exec /sbin/init
|
exec /sbin/init
|
||||||
else
|
else
|
||||||
# boot into system
|
# If rootdelay is empty or not a non-negative integer, set it to 10
|
||||||
if [ ! -b "${root}" ]; then
|
if [ -z "${rootdelay}" -o ! "${rootdelay}" -ge 0 ]; then
|
||||||
# This duplicates code from the filesystem hook
|
export rootdelay=10
|
||||||
# without this, mkinitcpio would fail for users who use
|
# We'll wait for the root device, so make sure klibc doesn't
|
||||||
# neither the udev hook, nor the filesystem hook
|
export kinit_params="$kinit_params rootdelay=0"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If we boot from NFS, don't check for a block device in /dev
|
||||||
|
# Let kinit do it all
|
||||||
|
if [ -z "${nfsroot}" -a "${root}" != "/dev/nfs" ]; then
|
||||||
|
if ! poll_device "${root}" ${rootdelay}; then
|
||||||
msg "\nRoot device '${root}' doesn't exist, attempting to create it"
|
msg "\nRoot device '${root}' doesn't exist, attempting to create it"
|
||||||
|
|
||||||
eval $(/bin/parseblock "${root}")
|
eval $(/bin/parseblock "${root}")
|
||||||
if [ "${BLOCKNAME}" = "unknown" ]; then
|
|
||||||
echo "ERROR: Failed to parse block device name for '${root}'"
|
|
||||||
elif [ -z "${BLOCKDEVICE}" ]; then
|
elif [ -z "${BLOCKDEVICE}" ]; then
|
||||||
echo "ERROR: Failed to parse block device ids for '${root}'"
|
echo "ERROR: Failed to parse block device ids for '${root}'"
|
||||||
else
|
else
|
||||||
export root="${BLOCKNAME}"
|
echo "/bin/mknod /dev/root b ${BLOCKDEVICE}"
|
||||||
echo "/bin/mknod \"${BLOCKNAME}\" b ${BLOCKDEVICE}"
|
/bin/mknod /dev/root b ${BLOCKDEVICE} >/dev/null
|
||||||
/bin/mknod "${BLOCKNAME}" b ${BLOCKDEVICE} >/dev/null
|
export root="/dev/root"
|
||||||
fi
|
fi
|
||||||
if [ ! -b "${root}" ]; then
|
if [ ! -b "${root}" ]; then
|
||||||
err "Unable to create/detect root device '${root}'"
|
err "Unable to detect or create root device '${root}'"
|
||||||
echo "Dropping to a recovery shell... type 'exit' to reboot"
|
echo "You are being dropped to a recovery shell"
|
||||||
|
echo " Type 'reboot' to reboot"
|
||||||
|
echo " Type 'exit' to try and continue booting"
|
||||||
echo "NOTE: klibc contains no 'ls' binary, use 'echo *' instead"
|
echo "NOTE: klibc contains no 'ls' binary, use 'echo *' instead"
|
||||||
echo ""
|
echo ""
|
||||||
echo "If the device '${root}' gets created while you are here,"
|
echo "If the device '${root}' gets created while you are here,"
|
||||||
echo "try adding 'rootdelay=8' or higher to the kernel command-line"
|
echo "try adding 'rootdelay=10' or higher to the kernel command-line"
|
||||||
PS1="ramfs$ " /bin/sh -i
|
PS1="ramfs$ " /bin/sh -i
|
||||||
msg "Rebooting..."
|
msg "Trying to continue (this will most likely fail)..."
|
||||||
/bin/reboot
|
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
|
|
||||||
msg ":: Initramfs Completed - control passing to kinit"
|
|
||||||
if [ -f "/message" ]; then
|
if [ -f "/message" ]; then
|
||||||
msg "$(cat /message)"
|
msg "$(cat /message)"
|
||||||
fi
|
fi
|
||||||
|
msg ":: Initramfs Completed - control passing to kinit"
|
||||||
#Special handling is udev is running
|
#Special handling is udev is running
|
||||||
udevpid=$(/bin/minips -C udevd -o pid=)
|
udevpid=$(/bin/minips -C udevd -o pid=)
|
||||||
if [ -n "${udevpid}" ]; then
|
if [ -n "${udevpid}" ]; then
|
||||||
|
|
Loading…
Reference in a new issue