mirror of
https://gitlab.archlinux.org/tpowa/archboot.git
synced 2024-09-19 19:40:37 +02:00
49 lines
1.6 KiB
Text
49 lines
1.6 KiB
Text
run_hook ()
|
|
{
|
|
#needed for switching
|
|
if ! [ "${root}" = "" ]; then
|
|
msg -n ":: Loading root filesystem module..."
|
|
if [ "x${rootfstype}" != "x" ]; then
|
|
FSTYPE="${rootfstype}"
|
|
else
|
|
if [ ! -e "${root}" ]; then
|
|
msg -e "\nAttempting to create root device '${root}'"
|
|
|
|
if [ "x${rootdelay}" != "x" ]; then
|
|
msg -n "Waiting for devices to settle..."
|
|
/bin/sleep "${rootdelay}"
|
|
msg "done."
|
|
export rootdelay=0
|
|
kinit_params="${kinit_params} rootdelay=0"
|
|
fi
|
|
|
|
eval $(/bin/parseblock "${root}")
|
|
if [ "${BLOCKNAME}" = "unknown" ]; then
|
|
FSTYPE="unknown"
|
|
echo "ERROR: Failed to parse block device name for '${root}'"
|
|
elif [ "x${BLOCKDEVICE}" = "x" ]; then
|
|
FSTYPE="unknown"
|
|
echo "ERROR: Failed to parse block device ids for '${root}'"
|
|
else
|
|
export root="${BLOCKNAME}"
|
|
echo "/bin/mknod \"${BLOCKNAME}\" b ${BLOCKDEVICE}"
|
|
/bin/mknod "${BLOCKNAME}" b ${BLOCKDEVICE} >/dev/null
|
|
fi
|
|
fi
|
|
|
|
if [ -e "${root}" ]; then
|
|
eval $( /bin/fstype < "${root}" )
|
|
else
|
|
FSTYPE="unknown"
|
|
fi
|
|
|
|
fi
|
|
msg " ${FSTYPE}"
|
|
if [ "${FSTYPE}" = "unknown" ]; then
|
|
echo "ERROR: root fs cannot be detected. Try using the rootfstype= kernel parameter."
|
|
else
|
|
kinit_params="${kinit_params} rootfstype=${FSTYPE}"
|
|
/sbin/modprobe -q "${FSTYPE}" >/dev/null 2>&1
|
|
fi
|
|
fi
|
|
}
|