Browse Source

rootfs-block/mount-root: remount root with /etc/fstab filesystem options

master
Harald Hoyer 15 years ago
parent
commit
57c6b805ce
  1. 9
      dracut.8
  2. 30
      modules.d/95rootfs-block/mount-root.sh
  3. 2
      modules.d/99base/init

9
dracut.8

@ -111,7 +111,14 @@ specify e.g. \fI/dev/sda1\fR or @@ -111,7 +111,14 @@ specify e.g. \fI/dev/sda1\fR or
"auto" if not specified, e.g. \fIrootfstype=ext3\fR
.TP
.B rootflags=<mount options>
specify additional mount options for the root filesystem
specify additional mount options for the root filesystem. If not set, /etc/fstab
of the real root will be parsed for special mount options and mounted
accordingly.
.TP
.B rd_NO_FSTAB
do not honor special mount options for the root filesystem found in
/etc/fstab of the real root.

.SH I18N
e.g. LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYTABLE=de-latin1-nodeadkeys
.TP

30
modules.d/95rootfs-block/mount-root.sh

@ -1,5 +1,33 @@ @@ -1,5 +1,33 @@
#!/bin/sh

. /lib/dracut-lib.sh

if [ -n "$root" -a -z "${root%%block:*}" ]; then
mount -t ${fstype:-auto} -o "$rflags" "${root#block:}" "$NEWROOT" && ROOTFS_MOUNTED=yes
mount -t ${fstype:-auto} -o "$rflags" "${root#block:}" "$NEWROOT" \
&& ROOTFS_MOUNTED=yes

if ! getarg rd_NO_FSTAB \
&& ! getarg rootflags \
&& [ -f "$NEWROOT/etc/fstab" ] \
&& ! [ -L "$NEWROOT/etc/fstab" ]; then
# if $NEWROOT/etc/fstab contains special mount options for
# the root filesystem,
# remount it with the proper options
rootfs="auto"
rootopts="defaults"
while read dev mp fs opts rest; do
if [ "$mp" = "/" ]; then
rootfs=$fs
rootopts=$opts
break
fi
done < "$NEWROOT/etc/fstab"

if [ "$rootopts" != "defaults" ]; then
umount $NEWROOT
info "Remounting ${root#block:} with -o $rflags,$rootopts"
mount -t "$rootfs" -o "$rflags","$rootopts" \
"${root#block:}" "$NEWROOT" 2>&1 | vinfo
fi
fi
fi

2
modules.d/99base/init

@ -282,3 +282,5 @@ exec switch_root "$NEWROOT" "$INIT" $initargs || { @@ -282,3 +282,5 @@ exec switch_root "$NEWROOT" "$INIT" $initargs || {
echo "file a bug against dracut."
emergency_shell
}
# vim:ts=8:sw=4:sts=4:et


Loading…
Cancel
Save