kdump.sysconfig: default to "nofail" mount
Currently we have two issues against mounting filesystems by systemd. 1. If any failure in sysroot.mount, initrd.target won't be reached. 2. If any failure in mounting /etc/fstab, initrd.target won't be reached Our kdump.sh is in dracut-pre-pivot hook which is ordered after initrd.target. That means if systemd doesn't reach initrd.target, pre-pivot service will not run. Based on above, we can conclude that in order to run kdump.sh, initrd.target must be reached. To fix issue 1), we can add rootflags=nofail to 2nd kernel cmdline, so that initrd.target will not require sysroot.mount. initrd.target wouldn't care about the failures in sysroot.mount. That means initrd.target can always be reached whether or not sysroot.mount fails. So when initrd.target is reached, kdump.sh can be run. To fix issue 2), we can append "nofail" mount options to every entry in /etc/fstab. It has almost the same affects as to sysroot.mount. initrd.target can be reached whether or not mount /etc/fstab fails. So when initrd.target is reached, kdump.sh can be run. If the mount failures block kdump from working properly (for example, the dump target isn't mounted), the error handling will be done by "default" action specified in /etc/kdump.conf. Otherwise kdump will ignore the mount failures and dump as expected. Signed-off-by: WANG Chao <chaowang@redhat.com> Acked-by: Vivek Goyal <vgoyal@redhat.com> Acked-by: Dave Young <dyoung@redhat.com>
This commit is contained in:
parent
45f24f53f5
commit
7c48f71b6f
@ -16,7 +16,7 @@ KDUMP_COMMANDLINE=""
|
||||
|
||||
# This variable lets us append arguments to the current kdump commandline
|
||||
# As taken from either KDUMP_COMMANDLINE above, or from /proc/cmdline
|
||||
KDUMP_COMMANDLINE_APPEND="irqpoll nr_cpus=1 reset_devices numa=off udev.children-max=2 panic=10"
|
||||
KDUMP_COMMANDLINE_APPEND="irqpoll nr_cpus=1 reset_devices numa=off udev.children-max=2 panic=10 rootflags=nofail"
|
||||
|
||||
# Any additional kexec arguments required. In most situations, this should
|
||||
# be left empty
|
||||
|
@ -16,7 +16,7 @@ KDUMP_COMMANDLINE=""
|
||||
|
||||
# This variable lets us append arguments to the current kdump commandline
|
||||
# As taken from either KDUMP_COMMANDLINE above, or from /proc/cmdline
|
||||
KDUMP_COMMANDLINE_APPEND="irqpoll maxcpus=1 noirqdistrib reset_devices cgroup_disable=memory numa=off udev.children-max=2 ehea.use_mcs=0 panic=10"
|
||||
KDUMP_COMMANDLINE_APPEND="irqpoll maxcpus=1 noirqdistrib reset_devices cgroup_disable=memory numa=off udev.children-max=2 ehea.use_mcs=0 panic=10 rootflags=nofail"
|
||||
|
||||
# Any additional kexec arguments required. In most situations, this should
|
||||
# be left empty
|
||||
|
@ -16,7 +16,7 @@ KDUMP_COMMANDLINE=""
|
||||
|
||||
# This variable lets us append arguments to the current kdump commandline
|
||||
# As taken from either KDUMP_COMMANDLINE above, or from /proc/cmdline
|
||||
KDUMP_COMMANDLINE_APPEND="maxcpus=1 cgroup_disable=memory numa=off udev.children-max=2 panic=10"
|
||||
KDUMP_COMMANDLINE_APPEND="maxcpus=1 cgroup_disable=memory numa=off udev.children-max=2 panic=10 rootflags=nofail"
|
||||
|
||||
# Any additional /sbin/mkdumprd arguments required.
|
||||
MKDUMPRD_ARGS=""
|
||||
|
@ -16,7 +16,7 @@ KDUMP_COMMANDLINE=""
|
||||
|
||||
# This variable lets us append arguments to the current kdump commandline
|
||||
# As taken from either KDUMP_COMMANDLINE above, or from /proc/cmdline
|
||||
KDUMP_COMMANDLINE_APPEND="irqpoll nr_cpus=1 reset_devices cgroup_disable=memory mce=off numa=off udev.children-max=2 panic=10"
|
||||
KDUMP_COMMANDLINE_APPEND="irqpoll nr_cpus=1 reset_devices cgroup_disable=memory mce=off numa=off udev.children-max=2 panic=10 rootflags=nofail"
|
||||
|
||||
# Any additional kexec arguments required. In most situations, this should
|
||||
# be left empty
|
||||
|
1
mkdumprd
1
mkdumprd
@ -103,6 +103,7 @@ to_mount() {
|
||||
_t=$(findmnt -k -f -n -r -o TARGET,FSTYPE $_dev)
|
||||
_o=$(findmnt -k -f -n -r -o OPTIONS $_dev)
|
||||
_o=${_o/#ro/rw} #mount fs target as rw in 2nd kernel
|
||||
_o="${_o},nofail" #with nofail set, systemd won't block for mount failure
|
||||
_mntopts="$_t $_o"
|
||||
#for non-nfs _dev converting to use udev persistent name
|
||||
if [ -b "$_s" ]; then
|
||||
|
Loading…
Reference in New Issue
Block a user