From: Fabian Date: Fri, 11 Sep 2015 11:35:57 +0000 (+0200) Subject: dracut.sh: Support --mount with just mountpoint as parameter X-Git-Tag: 044~27 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=edbd9ca058bcb19f351aca470581db1a67b706d7;p=thirdparty%2Fdracut.git dracut.sh: Support --mount with just mountpoint as parameter Right now the --mount parameter of dracut expects a rather long fstab-like line. This makes it possible to invoke dracut with e.g. --mount /boot. --- diff --git a/dracut.8.asc b/dracut.8.asc index 5f45ed9b4..d22c1cb76 100644 --- a/dracut.8.asc +++ b/dracut.8.asc @@ -338,6 +338,10 @@ provide a valid _/etc/fstab_. The default __ is "0". the default __ is "2". +**--mount** "__":: + Like above, but __, __ and __ + are determined by looking at the current mounts. + **--add-device** __ :: Bring up __ in initramfs, __ should be the device name. This can be useful in hostonly mode for resume support when your swap is on diff --git a/dracut.sh b/dracut.sh index fb5d4006a..52a628ae3 100755 --- a/dracut.sh +++ b/dracut.sh @@ -160,6 +160,8 @@ Creates initial ramdisk images for preloading modules --mount "[DEV] [MP] [FSTYPE] [FSOPTS]" Mount device [DEV] on mountpoint [MP] with filesystem [FSTYPE] and options [FSOPTS] in the initramfs + --mount "[MP]" Same as above, but [DEV], [FSTYPE] and [FSOPTS] are + determined by looking at the current mounts. --add-device "[DEV]" Bring up [DEV] in initramfs -i, --include [SOURCE] [TARGET] Include the files in the SOURCE directory into the @@ -1469,9 +1471,21 @@ if [[ $kernel_only != yes ]]; then for line in "${fstab_lines[@]}"; do line=($line) - [ -z "${line[3]}" ] && line[3]="defaults" + + if [ -z "${line[1]}" ]; then + # Determine device and mount options from current system + mountpoint -q "${line[0]}" || derror "${line[0]} is not a mount point!" + line=($(findmnt --raw -n --target "${line[0]}" --output=source,target,fstype,options)) + dinfo "Line for ${line[1]}: ${line[@]}" + else + # Use default options + [ -z "${line[3]}" ] && line[3]="defaults" + fi + + # Default options for freq and passno [ -z "${line[4]}" ] && line[4]="0" [ -z "${line[5]}" ] && line[5]="2" + strstr "${line[2]}" "nfs" && line[5]="0" echo "${line[@]}" >> "${initdir}/etc/fstab" done