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.
master
Fabian 2015-09-11 13:35:57 +02:00 committed by Harald Hoyer
parent dcc2a4344b
commit edbd9ca058
2 changed files with 19 additions and 1 deletions

View File

@ -338,6 +338,10 @@ provide a valid _/etc/fstab_.
The default _<dump frequency>_ is "0".
the default _<fsck order>_ is "2".

**--mount** "_<mountpoint>_"::
Like above, but _<device>_, _<filesystem type>_ and _<filesystem options>_
are determined by looking at the current mounts.

**--add-device** _<device>_ ::
Bring up _<device>_ in initramfs, _<device>_ should be the device name.
This can be useful in hostonly mode for resume support when your swap is on

View File

@ -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