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 _<dump frequency>_ is "0".
the default _<fsck order>_ is "2". 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>_ :: **--add-device** _<device>_ ::
Bring up _<device>_ in initramfs, _<device>_ should be the device name. 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 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 "[DEV] [MP] [FSTYPE] [FSOPTS]"
Mount device [DEV] on mountpoint [MP] with filesystem Mount device [DEV] on mountpoint [MP] with filesystem
[FSTYPE] and options [FSOPTS] in the initramfs [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 --add-device "[DEV]" Bring up [DEV] in initramfs
-i, --include [SOURCE] [TARGET] -i, --include [SOURCE] [TARGET]
Include the files in the SOURCE directory into the Include the files in the SOURCE directory into the
@ -1469,9 +1471,21 @@ if [[ $kernel_only != yes ]]; then


for line in "${fstab_lines[@]}"; do for line in "${fstab_lines[@]}"; do
line=($line) 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[4]}" ] && line[4]="0"
[ -z "${line[5]}" ] && line[5]="2" [ -z "${line[5]}" ] && line[5]="2"

strstr "${line[2]}" "nfs" && line[5]="0" strstr "${line[2]}" "nfs" && line[5]="0"
echo "${line[@]}" >> "${initdir}/etc/fstab" echo "${line[@]}" >> "${initdir}/etc/fstab"
done done