You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

36 lines
1.1 KiB

#!/bin/sh
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
type det_fs >/dev/null 2>&1 || . /lib/fs-lib.sh
fstab_mount() {
local _dev _mp _fs _opts _dump _pass _rest
test -e "$1" || return 1
info "Mounting from $1"
while read _dev _mp _fs _opts _dump _pass _rest; do
[ -z "${_dev%%#*}" ] && continue # Skip comment lines
if [[ ! "$_fs" =~ "nfs" ]] && [ ! -e "$_dev" ]; then
warn "Device $_dev doesn't exist, skipping mount."
continue
fi
if [ "$_pass" -gt 0 ] && ! strstr "$_opts" _netdev; then
fsck_single "$_dev" "$_fs"
fi
_fs=$(det_fs "$_dev" "$_fs")
info "Mounting $_dev"
if [[ -d $NEWROOT/$_mp ]]; then
mount -v -t $_fs -o $_opts $_dev $NEWROOT/$_mp 2>&1 | vinfo
else
mkdir -p "$_mp"
mount -v -t $_fs -o $_opts $_dev $_mp 2>&1 | vinfo
fi
done < $1
return 0
}
for r in $NEWROOT/etc/fstab.sys /etc/fstab; do
fstab_mount $r && break
done