]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
add default values in fstab_lines
authorDave Young <dyoung@redhat.com>
Thu, 27 Feb 2014 02:44:23 +0000 (10:44 +0800)
committerHarald Hoyer <harald@redhat.com>
Fri, 28 Feb 2014 11:10:47 +0000 (12:10 +0100)
It's useful for passing a full fstab line including like fs_passno so fsck
can take effect.

Previously it's assumed that there's no fs_freq and fs_passno in fstab lines
so original code just append "0 0" at the end of each fstab lines.

Improve this issue by assign default value in case they are not passed in.
Three field are handled here:
fs_mntops: default to "defaults"
fs_freq: default to "0"
fs_passno: default to "2"

Signed-off-by: Dave Young <dyoung@redhat.com>
dracut.8.asc
dracut.sh

index 89e086c70f6f4bb83f578d4c7025bbacbbbaf34e..14ce26b6fd282fd58c9f56d1d4a3e46452df1646 100644 (file)
@@ -317,9 +317,13 @@ provide a valid _/etc/fstab_.
 **--add-fstab** _<filename>_::
     Add entries of _<filename>_ to the initramfs /etc/fstab.
 
-**--mount** "_<device>_ _<mountpoint>_ _<filesystem type>_ _<filesystem options>_"::
-    Mount _<device>_ on _<mountpoint>_ with _<filesystem type>_ and _<filesystem
-    options>_ in the initramfs
+**--mount** "_<device>_ _<mountpoint>_ _<filesystem type>_ [_<filesystem options>_ [_<dump frequency>_ [_<fsck order>_]]]"::
+    Mount _<device>_ on _<mountpoint>_ with _<filesystem type>_ in the
+    initramfs. _<filesystem options>_, _<dump options>_ and _<fsck order>_ can
+    be specified, see fstab manpage for the details.
+    The default _<filesystem options>_ is "defaults".
+    The default _<dump frequency>_ is "0".
+    the default _<fsck order>_ is "2".
 
 **--add-device** _<device>_ ::
     Bring up _<device>_ in initramfs, _<device>_ should be the device name.
index f4f183e14334cacbe0940fefb4a4ec039aca18e4..74640adaba819b0b4ddc63de9d72e001681a62ff 100755 (executable)
--- a/dracut.sh
+++ b/dracut.sh
@@ -1310,7 +1310,11 @@ if [[ $kernel_only != yes ]]; then
     [[ $kernel_cmdline ]] && printf "%s\n" "$kernel_cmdline" >> "${initdir}/etc/cmdline.d/01-default.conf"
 
     while pop fstab_lines line; do
-        printf "%s\n" "$line 0 0" >> "${initdir}/etc/fstab"
+        line=($line)
+        [ -z "${line[3]}" ] && line[3]="defaults"
+        [ -z "${line[4]}" ] && line[4]="0"
+        [ -z "${line[5]}" ] && line[5]="2"
+        echo "${line[@]}" >> "${initdir}/etc/fstab"
     done
 
     for f in $add_fstab; do