96 lines
3.9 KiB
Diff
96 lines
3.9 KiB
Diff
|
From 721bec3f143141fe3243e9f9dda9931f99b6b085 Mon Sep 17 00:00:00 2001
|
||
|
From: Harald Hoyer <harald@hoyer.xyz>
|
||
|
Date: Fri, 18 Aug 2017 09:33:10 +0200
|
||
|
Subject: [PATCH] Merge pull request #269 from xlpang/master
|
||
|
|
||
|
introduce new "--no-hostonly-default-device" argument
|
||
|
---
|
||
|
dracut.8.asc | 4 ++++
|
||
|
dracut.sh | 11 +++++++++--
|
||
|
modules.d/95rootfs-block/module-setup.sh | 6 ++++++
|
||
|
3 files changed, 19 insertions(+), 2 deletions(-)
|
||
|
|
||
|
diff --git a/dracut.8.asc b/dracut.8.asc
|
||
|
index ca169189..23c53cc4 100644
|
||
|
--- a/dracut.8.asc
|
||
|
+++ b/dracut.8.asc
|
||
|
@@ -323,6 +323,10 @@ provide a valid _/etc/fstab_.
|
||
|
**--no-hostonly-cmdline**:
|
||
|
Do not store kernel command line arguments needed in the initramfs
|
||
|
|
||
|
+**--no-hostonly-default-device**:
|
||
|
+ Do not generate implicit host devices like root, swap, fstab, etc.
|
||
|
+ Use "--mount" or "--add-device" to explicitly add devices as needed.
|
||
|
+
|
||
|
**--hostonly-i18n**:
|
||
|
Install only needed keyboard and font files according to the host configuration (default).
|
||
|
|
||
|
diff --git a/dracut.sh b/dracut.sh
|
||
|
index 3a136d46..681a6b7a 100755
|
||
|
--- a/dracut.sh
|
||
|
+++ b/dracut.sh
|
||
|
@@ -151,6 +151,10 @@ Creates initial ramdisk images for preloading modules
|
||
|
in the initramfs
|
||
|
--no-hostonly-cmdline Do not store kernel command line arguments needed
|
||
|
in the initramfs
|
||
|
+ --no-hostonly-default-device
|
||
|
+ Do not generate implicit host devices like root,
|
||
|
+ swap, fstab, etc. Use "--mount" or "--add-device"
|
||
|
+ to explicitly add devices as needed.
|
||
|
--hostonly-i18n Install only needed keyboard and font files according
|
||
|
to the host configuration (default).
|
||
|
--no-hostonly-i18n Install all keyboard and font files available.
|
||
|
@@ -345,6 +349,7 @@ rearrange_params()
|
||
|
--long no-host-only \
|
||
|
--long hostonly-cmdline \
|
||
|
--long no-hostonly-cmdline \
|
||
|
+ --long no-hostonly-default-device \
|
||
|
--long persistent-policy: \
|
||
|
--long fstab \
|
||
|
--long help \
|
||
|
@@ -539,6 +544,8 @@ while :; do
|
||
|
i18n_install_all_l="yes" ;;
|
||
|
--no-hostonly-cmdline)
|
||
|
hostonly_cmdline_l="no" ;;
|
||
|
+ --no-hostonly-default-device)
|
||
|
+ hostonly_default_device="no" ;;
|
||
|
--persistent-policy)
|
||
|
persistent_policy_l="$2"; PARMS_TO_STORE+=" '$2'"; shift;;
|
||
|
--fstab) use_fstab_l="yes" ;;
|
||
|
@@ -1133,7 +1140,7 @@ if (( ${#add_device_l[@]} )); then
|
||
|
push_host_devs "${add_device_l[@]}"
|
||
|
fi
|
||
|
|
||
|
-if [[ $hostonly ]]; then
|
||
|
+if [[ $hostonly ]] && [[ "$hostonly_default_device" != "no" ]]; then
|
||
|
# in hostonly mode, determine all devices, which have to be accessed
|
||
|
# and examine them for filesystem types
|
||
|
|
||
|
@@ -1300,7 +1307,7 @@ export initdir dracutbasedir \
|
||
|
dracutmodules force_add_dracutmodules add_dracutmodules omit_dracutmodules \
|
||
|
mods_to_load \
|
||
|
fw_dir drivers_dir debug no_kernel kernel_only \
|
||
|
- omit_drivers mdadmconf lvmconf root_dev \
|
||
|
+ omit_drivers mdadmconf lvmconf root_devs \
|
||
|
use_fstab fstab_lines libdirs fscks nofscks ro_mnt \
|
||
|
stdloglvl sysloglvl fileloglvl kmsgloglvl logfile \
|
||
|
debug host_fs_types host_devs swap_devs sshkey add_fstab \
|
||
|
diff --git a/modules.d/95rootfs-block/module-setup.sh b/modules.d/95rootfs-block/module-setup.sh
|
||
|
index 2b06bac2..987373b4 100755
|
||
|
--- a/modules.d/95rootfs-block/module-setup.sh
|
||
|
+++ b/modules.d/95rootfs-block/module-setup.sh
|
||
|
@@ -32,6 +32,12 @@ cmdline_journal() {
|
||
|
cmdline_rootfs() {
|
||
|
local _dev=/dev/block/$(find_root_block_device)
|
||
|
local _fstype _flags _subvol
|
||
|
+
|
||
|
+ # "--no-hostonly-default-device" can result in empty root_devs
|
||
|
+ if [ "${#root_devs[@]}" -eq 0 ]; then
|
||
|
+ return
|
||
|
+ fi
|
||
|
+
|
||
|
if [ -e $_dev ]; then
|
||
|
printf " root=%s" "$(shorten_persistent_dev "$(get_persistent_dev "$_dev")")"
|
||
|
_fstype="$(find_mp_fstype /)"
|
||
|
|