"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
#!/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