Currently, while building the initrd with dump capture support, if a network-based dump target is specified, network is configured in the initial ramdisk which includes an interface name change if necessary.
When fadump is configured, the initrd used for booting production kernel is rebuilt with dump capturing support. This initrd applies the network configuration changes, intended for capturing a dump, while booting the production kernel as well, potentially changing the network interface name in production kernel. Avoid enforcing kdump specific network parameters while boot production kernel to tackle that problem. The first patch in this patch-set prefixes all network related cmdline conf files with 'kdump' for graceful handling. The second patch adds a dracut cmdline hook in the initrd to remove network cmdline conf files while booting production kernel. The last patch reverts an old commit that is no longer relevant with the change in second patch.
---
Hari Bathini (3): add kdump prefix to network cmdline config files fadump: avoid renaming network interface name during regular boot avoid network interface rename when unnecessary
dracut-kdump-boot.sh | 16 ++++++++++++++++ dracut-module-setup.sh | 31 ++++++++++++++----------------- kexec-tools.spec | 3 +++ 3 files changed, 33 insertions(+), 17 deletions(-) create mode 100644 dracut-kdump-boot.sh
Prefix 'kdump-' to cmdline config files used for bringing up network. This gives flexibilty in handling network configuration gracefully in different scenarios.
Signed-off-by: Hari Bathini hbathini@linux.ibm.com ---
Changes in v3: * added kdump prefix to other network interface files.
dracut-module-setup.sh | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh index db7cd23..578a7b3 100755 --- a/dracut-module-setup.sh +++ b/dracut-module-setup.sh @@ -243,11 +243,11 @@ kdump_setup_bridge() { else _mac=$(kdump_get_mac_addr $_dev) _kdumpdev=$(kdump_setup_ifname $_dev) - echo -n " ifname=$_kdumpdev:$_mac" >> ${initdir}/etc/cmdline.d/41bridge.conf + echo -n " ifname=$_kdumpdev:$_mac" >> ${initdir}/etc/cmdline.d/41kdump-bridge.conf fi _brif+="$_kdumpdev," done - echo " bridge=$_netdev:$(echo $_brif | sed -e 's/,$//')" >> ${initdir}/etc/cmdline.d/41bridge.conf + echo " bridge=$_netdev:$(echo $_brif | sed -e 's/,$//')" >> ${initdir}/etc/cmdline.d/41kdump-bridge.conf }
kdump_setup_bond() { @@ -256,16 +256,16 @@ kdump_setup_bond() { for _dev in `cat /sys/class/net/$_netdev/bonding/slaves`; do _mac=$(kdump_get_perm_addr $_dev) _kdumpdev=$(kdump_setup_ifname $_dev) - echo -n " ifname=$_kdumpdev:$_mac" >> ${initdir}/etc/cmdline.d/42bond.conf + echo -n " ifname=$_kdumpdev:$_mac" >> ${initdir}/etc/cmdline.d/42kdump-bond.conf _slaves+="$_kdumpdev," done - echo -n " bond=$_netdev:$(echo $_slaves | sed 's/,$//')" >> ${initdir}/etc/cmdline.d/42bond.conf + echo -n " bond=$_netdev:$(echo $_slaves | sed 's/,$//')" >> ${initdir}/etc/cmdline.d/42kdump-bond.conf # Get bond options specified in ifcfg
source_ifcfg_file $_netdev
bondoptions="$(echo :$BONDING_OPTS | sed 's/\s+/,/')" - echo "$bondoptions" >> ${initdir}/etc/cmdline.d/42bond.conf + echo "$bondoptions" >> ${initdir}/etc/cmdline.d/42kdump-bond.conf }
kdump_setup_team() { @@ -274,10 +274,10 @@ kdump_setup_team() { for _dev in `teamnl $_netdev ports | awk -F':' '{print $2}'`; do _mac=$(kdump_get_perm_addr $_dev) _kdumpdev=$(kdump_setup_ifname $_dev) - echo -n " ifname=$_kdumpdev:$_mac" >> ${initdir}/etc/cmdline.d/44team.conf + echo -n " ifname=$_kdumpdev:$_mac" >> ${initdir}/etc/cmdline.d/44kdump-team.conf _slaves+="$_kdumpdev," done - echo " team=$_netdev:$(echo $_slaves | sed -e 's/,$//')" >> ${initdir}/etc/cmdline.d/44team.conf + echo " team=$_netdev:$(echo $_slaves | sed -e 's/,$//')" >> ${initdir}/etc/cmdline.d/44kdump-team.conf #Buggy version teamdctl outputs to stderr! #Try to use the latest version of teamd. teamdctl "$_netdev" config dump > ${initdir}/tmp/$$-$_netdev.conf @@ -307,10 +307,10 @@ kdump_setup_vlan() { exit 1 elif kdump_is_bond "$_phydev"; then kdump_setup_bond "$_phydev" - echo " vlan=$_netdev:$_phydev" > ${initdir}/etc/cmdline.d/43vlan.conf + echo " vlan=$_netdev:$_phydev" > ${initdir}/etc/cmdline.d/43kdump-vlan.conf else _kdumpdev="$(kdump_setup_ifname $_phydev)" - echo " vlan=$_netdev:$_kdumpdev ifname=$_kdumpdev:$_netmac" > ${initdir}/etc/cmdline.d/43vlan.conf + echo " vlan=$_netdev:$_kdumpdev ifname=$_kdumpdev:$_netmac" > ${initdir}/etc/cmdline.d/43kdump-vlan.conf fi }
@@ -346,7 +346,7 @@ kdump_setup_netdev() { _proto=dhcp fi
- _ip_conf="${initdir}/etc/cmdline.d/40ip.conf" + _ip_conf="${initdir}/etc/cmdline.d/40kdump-ip.conf" _ip_opts=" ip=${_static}$(kdump_setup_ifname $_netdev):${_proto}"
# dracut doesn't allow duplicated configuration for same NIC, even they're exactly the same. @@ -415,9 +415,9 @@ kdump_install_net() { # call kdump_install_net again and we don't want eth1 to be the default # gateway. if [ ! -f ${initdir}/etc/cmdline.d/60kdumpnic.conf ] && - [ ! -f ${initdir}/etc/cmdline.d/70bootdev.conf ]; then + [ ! -f ${initdir}/etc/cmdline.d/70kdump-bootdev.conf ]; then echo "kdumpnic=$(kdump_setup_ifname $_netdev)" > ${initdir}/etc/cmdline.d/60kdumpnic.conf - echo "bootdev=$(kdump_setup_ifname $_netdev)" > ${initdir}/etc/cmdline.d/70bootdev.conf + echo "bootdev=$(kdump_setup_ifname $_netdev)" > ${initdir}/etc/cmdline.d/70kdump-bootdev.conf fi }
When a network-based dump target is configured, the interface name is prefixed with 'kdump-'. While this has no consequence for production kernel when kdump is configured, the network interface name is changed for production kernel as well when fadump is configured. Avoid that and ensure network interface is renamed only while capturing vmcore.
Signed-off-by: Hari Bathini hbathini@linux.ibm.com ---
Changes in v2: * Removed network interface config files (prefixed with 'kdump-') while booting production kernel.
dracut-kdump-boot.sh | 16 ++++++++++++++++ dracut-module-setup.sh | 1 + kexec-tools.spec | 3 +++ 3 files changed, 20 insertions(+) create mode 100644 dracut-kdump-boot.sh
diff --git a/dracut-kdump-boot.sh b/dracut-kdump-boot.sh new file mode 100644 index 0000000..e5b8c27 --- /dev/null +++ b/dracut-kdump-boot.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +# An Initrd with dump capturing support can boot a production kernel +# as well (FADump). In such scenario, avoid enforcing such parameters +# in production kernel that make sense only while capturing dump. +[ ! -f /etc/fadump.initramfs ] && return + +if [ ! -f /proc/device-tree/rtas/ibm,kernel-dump ]; then + rm -f /etc/cmdline.d/40kdump-ip.conf + rm -f /etc/cmdline.d/41kdump-bridge.conf + rm -f /etc/cmdline.d/42kdump-bond.conf + rm -f /etc/cmdline.d/43kdump-vlan.conf + rm -f /etc/cmdline.d/44kdump-team.conf + rm -f /etc/cmdline.d/60kdumpnic.conf + rm -f /etc/cmdline.d/70kdump-bootdev.conf +fi diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh index 578a7b3..09db5e9 100755 --- a/dracut-module-setup.sh +++ b/dracut-module-setup.sh @@ -800,6 +800,7 @@ install() { cp "$moddir/kdump-emergency.target" "$initdir/$systemdsystemunitdir/emergency.target" # Also redirect dracut-emergency to kdump error handler ln_r "$systemdsystemunitdir/emergency.service" "$systemdsystemunitdir/dracut-emergency.service" + inst_hook cmdline 30 "$moddir/kdump-boot.sh"
# Check for all the devices and if any device is iscsi, bring up iscsi # target. Ideally all this should be pushed into dracut iscsi module diff --git a/kexec-tools.spec b/kexec-tools.spec index cd90e3d..17442ad 100644 --- a/kexec-tools.spec +++ b/kexec-tools.spec @@ -44,6 +44,7 @@ Source106: dracut-kdump-capture.service Source107: dracut-kdump-emergency.target Source108: dracut-early-kdump.sh Source109: dracut-early-kdump-module-setup.sh +Source110: dracut-kdump-boot.sh
Requires(post): systemd-units Requires(preun): systemd-units @@ -204,6 +205,8 @@ cp %{SOURCE108} $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99earlyk cp %{SOURCE109} $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99earlykdump/%{remove_dracut_early_kdump_prefix %{SOURCE109}} chmod 755 $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99earlykdump/%{remove_dracut_prefix %{SOURCE108}} chmod 755 $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99earlykdump/%{remove_dracut_early_kdump_prefix %{SOURCE109}} +cp %{SOURCE110} $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99kdumpbase/%{remove_dracut_prefix %{SOURCE110}} +chmod 755 $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99kdumpbase/%{remove_dracut_prefix %{SOURCE110}}
%define dracutlibdir %{_prefix}/lib/dracut
Revert commit 78e985e51cf1 ("kdump/fadump: fix network interface name when switching from fadump to kdump") as it is no longer relevant in the context of the recent change that ensures network interface name on production kernel is not altered.
Signed-off-by: Hari Bathini hbathini@linux.ibm.com ---
Changes in v3: * unchanged.
dracut-module-setup.sh | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh index 09db5e9..3893dfb 100755 --- a/dracut-module-setup.sh +++ b/dracut-module-setup.sh @@ -216,11 +216,7 @@ kdump_get_perm_addr() { kdump_setup_ifname() { local _ifname
- # If ifname already has 'kdump-' prefix, we must be switching from - # fadump to kdump. Skip prefixing 'kdump-' in this case as adding - # another prefix may truncate the ifname. Since an ifname with - # 'kdump-' is already persistent, this should be fine. - if [[ $1 =~ eth* ]] && [[ ! $1 =~ ^kdump-* ]]; then + if [[ $1 =~ eth* ]]; then _ifname="kdump-$1" else _ifname="$1"
Hi Hari,
On Fri, Feb 1, 2019 at 10:55 PM Hari Bathini hbathini@linux.ibm.com wrote:
When a network-based dump target is configured, the interface name is prefixed with 'kdump-'. While this has no consequence for production kernel when kdump is configured, the network interface name is changed for production kernel as well when fadump is configured. Avoid that and ensure network interface is renamed only while capturing vmcore.
Signed-off-by: Hari Bathini hbathini@linux.ibm.com
Changes in v2:
- Removed network interface config files (prefixed with 'kdump-') while booting production kernel.
dracut-kdump-boot.sh | 16 ++++++++++++++++ dracut-module-setup.sh | 1 + kexec-tools.spec | 3 +++ 3 files changed, 20 insertions(+) create mode 100644 dracut-kdump-boot.sh
diff --git a/dracut-kdump-boot.sh b/dracut-kdump-boot.sh new file mode 100644 index 0000000..e5b8c27 --- /dev/null +++ b/dracut-kdump-boot.sh @@ -0,0 +1,16 @@ +#!/bin/sh
+# An Initrd with dump capturing support can boot a production kernel +# as well (FADump). In such scenario, avoid enforcing such parameters +# in production kernel that make sense only while capturing dump. +[ ! -f /etc/fadump.initramfs ] && return
+if [ ! -f /proc/device-tree/rtas/ibm,kernel-dump ]; then
- rm -f /etc/cmdline.d/40kdump-ip.conf
- rm -f /etc/cmdline.d/41kdump-bridge.conf
- rm -f /etc/cmdline.d/42kdump-bond.conf
- rm -f /etc/cmdline.d/43kdump-vlan.conf
- rm -f /etc/cmdline.d/44kdump-team.conf
- rm -f /etc/cmdline.d/60kdumpnic.conf
- rm -f /etc/cmdline.d/70kdump-bootdev.conf
+fi diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh index 578a7b3..09db5e9 100755 --- a/dracut-module-setup.sh +++ b/dracut-module-setup.sh @@ -800,6 +800,7 @@ install() { cp "$moddir/kdump-emergency.target" "$initdir/$systemdsystemunitdir/emergency.target" # Also redirect dracut-emergency to kdump error handler ln_r "$systemdsystemunitdir/emergency.service" "$systemdsystemunitdir/dracut-emergency.service"
inst_hook cmdline 30 "$moddir/kdump-boot.sh"
# Check for all the devices and if any device is iscsi, bring up iscsi # target. Ideally all this should be pushed into dracut iscsi module
diff --git a/kexec-tools.spec b/kexec-tools.spec index cd90e3d..17442ad 100644 --- a/kexec-tools.spec +++ b/kexec-tools.spec @@ -44,6 +44,7 @@ Source106: dracut-kdump-capture.service Source107: dracut-kdump-emergency.target Source108: dracut-early-kdump.sh Source109: dracut-early-kdump-module-setup.sh +Source110: dracut-kdump-boot.sh
Requires(post): systemd-units Requires(preun): systemd-units @@ -204,6 +205,8 @@ cp %{SOURCE108} $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99earlyk cp %{SOURCE109} $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99earlykdump/%{remove_dracut_early_kdump_prefix %{SOURCE109}} chmod 755 $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99earlykdump/%{remove_dracut_prefix %{SOURCE108}} chmod 755 $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99earlykdump/%{remove_dracut_early_kdump_prefix %{SOURCE109}} +cp %{SOURCE110} $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99kdumpbase/%{remove_dracut_prefix %{SOURCE110}} +chmod 755 $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99kdumpbase/%{remove_dracut_prefix %{SOURCE110}}
%define dracutlibdir %{_prefix}/lib/dracut _______________________________________________ kexec mailing list -- kexec@lists.fedoraproject.org To unsubscribe send an email to kexec-leave@lists.fedoraproject.org Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/kexec@lists.fedoraproject.org
Thanks for the update. As we talked in another thread, it's true that in production kernel we don't need to setup network for dump, so it makes sense to delete the cmdline.d files to disable interface renaming and disable network.
But the problem is the dump target setup hooks/cmdline.d files still exists. For example, if the remote target is a nfs target, we will have a nfs entry in /etc/fstab (in initramfs), and dracut will still try to setup, but due to network is not available so it will fail. An extra error message will be generated: [FAILED] Failed to mount /kdumproot/mnt/nfs. See 'systemctl status kdumproot-mnt-nfs.mount' for details. [DEPEND] Dependency failed for Remote File Systems. ...snip... Then boot progress keep going on.
With iscsi, iscsi related cmdline and hook still exits. So it still brings up the network unconditionally, as iscsi will add extra netroot cmdline parameter, dracut detects that, and automatically setup all interfaces even though the network related configs are deleted. But the auto-configuration will break if the network is configured using static IP, and it will hang the boot progress.
-- Best Regards, Kairui Song
On 02/02/19 at 05:53pm, Kairui Song wrote:
Hi Hari,
On Fri, Feb 1, 2019 at 10:55 PM Hari Bathini hbathini@linux.ibm.com wrote:
When a network-based dump target is configured, the interface name is prefixed with 'kdump-'. While this has no consequence for production kernel when kdump is configured, the network interface name is changed for production kernel as well when fadump is configured. Avoid that and ensure network interface is renamed only while capturing vmcore.
Signed-off-by: Hari Bathini hbathini@linux.ibm.com
Changes in v2:
- Removed network interface config files (prefixed with 'kdump-') while booting production kernel.
dracut-kdump-boot.sh | 16 ++++++++++++++++ dracut-module-setup.sh | 1 + kexec-tools.spec | 3 +++ 3 files changed, 20 insertions(+) create mode 100644 dracut-kdump-boot.sh
diff --git a/dracut-kdump-boot.sh b/dracut-kdump-boot.sh new file mode 100644 index 0000000..e5b8c27 --- /dev/null +++ b/dracut-kdump-boot.sh @@ -0,0 +1,16 @@ +#!/bin/sh
+# An Initrd with dump capturing support can boot a production kernel +# as well (FADump). In such scenario, avoid enforcing such parameters +# in production kernel that make sense only while capturing dump. +[ ! -f /etc/fadump.initramfs ] && return
+if [ ! -f /proc/device-tree/rtas/ibm,kernel-dump ]; then
- rm -f /etc/cmdline.d/40kdump-ip.conf
- rm -f /etc/cmdline.d/41kdump-bridge.conf
- rm -f /etc/cmdline.d/42kdump-bond.conf
- rm -f /etc/cmdline.d/43kdump-vlan.conf
- rm -f /etc/cmdline.d/44kdump-team.conf
- rm -f /etc/cmdline.d/60kdumpnic.conf
- rm -f /etc/cmdline.d/70kdump-bootdev.conf
+fi diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh index 578a7b3..09db5e9 100755 --- a/dracut-module-setup.sh +++ b/dracut-module-setup.sh @@ -800,6 +800,7 @@ install() { cp "$moddir/kdump-emergency.target" "$initdir/$systemdsystemunitdir/emergency.target" # Also redirect dracut-emergency to kdump error handler ln_r "$systemdsystemunitdir/emergency.service" "$systemdsystemunitdir/dracut-emergency.service"
inst_hook cmdline 30 "$moddir/kdump-boot.sh"
# Check for all the devices and if any device is iscsi, bring up iscsi # target. Ideally all this should be pushed into dracut iscsi module
diff --git a/kexec-tools.spec b/kexec-tools.spec index cd90e3d..17442ad 100644 --- a/kexec-tools.spec +++ b/kexec-tools.spec @@ -44,6 +44,7 @@ Source106: dracut-kdump-capture.service Source107: dracut-kdump-emergency.target Source108: dracut-early-kdump.sh Source109: dracut-early-kdump-module-setup.sh +Source110: dracut-kdump-boot.sh
Requires(post): systemd-units Requires(preun): systemd-units @@ -204,6 +205,8 @@ cp %{SOURCE108} $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99earlyk cp %{SOURCE109} $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99earlykdump/%{remove_dracut_early_kdump_prefix %{SOURCE109}} chmod 755 $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99earlykdump/%{remove_dracut_prefix %{SOURCE108}} chmod 755 $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99earlykdump/%{remove_dracut_early_kdump_prefix %{SOURCE109}} +cp %{SOURCE110} $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99kdumpbase/%{remove_dracut_prefix %{SOURCE110}} +chmod 755 $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99kdumpbase/%{remove_dracut_prefix %{SOURCE110}}
%define dracutlibdir %{_prefix}/lib/dracut _______________________________________________ kexec mailing list -- kexec@lists.fedoraproject.org To unsubscribe send an email to kexec-leave@lists.fedoraproject.org Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/kexec@lists.fedoraproject.org
Thanks for the update. As we talked in another thread, it's true that in production kernel we don't need to setup network for dump, so it makes sense to delete the cmdline.d files to disable interface renaming and disable network.
But the problem is the dump target setup hooks/cmdline.d files still exists. For example, if the remote target is a nfs target, we will have a nfs entry in /etc/fstab (in initramfs), and dracut will still try to setup, but due to network is not available so it will fail. An extra error message will be generated: [FAILED] Failed to mount /kdumproot/mnt/nfs. See 'systemctl status kdumproot-mnt-nfs.mount' for details. [DEPEND] Dependency failed for Remote File Systems. ...snip... Then boot progress keep going on.
With iscsi, iscsi related cmdline and hook still exits. So it still brings up the network unconditionally, as iscsi will add extra netroot cmdline parameter, dracut detects that, and automatically setup all interfaces even though the network related configs are deleted. But the auto-configuration will break if the network is configured using static IP, and it will hang the boot progress.
Right, it seems not easy to split all kdump enabled things out.
Probably the easiest way is separate the normal initrd and the kdump initrd but pack them together, while capture kernel booting just extrace kdump initrd to overwrite the initramfs root, and while normal booting just to ahead?
But it will indeed cause a bigger initrd..
-- Best Regards, Kairui Song
Hi,
Sorry that the reply-email from Dave and Kairui can not be found in my mail box. I can only reply based on this cover.
Can we create a separate dir for kdump network config file, and let dracut loads from the dir if in capture kernel.
On 02/01/2019 10:53 PM, Hari Bathini wrote:
Currently, while building the initrd with dump capture support, if a network-based dump target is specified, network is configured in the initial ramdisk which includes an interface name change if necessary.
When fadump is configured, the initrd used for booting production kernel is rebuilt with dump capturing support. This initrd applies the network configuration changes, intended for capturing a dump, while booting the production kernel as well, potentially changing the network interface name in production kernel. Avoid enforcing kdump specific network parameters while boot production kernel to tackle that problem. The first patch in this patch-set prefixes all network related cmdline conf files with 'kdump' for graceful handling. The second patch adds a dracut cmdline hook in the initrd to remove network cmdline conf files while booting production kernel. The last patch reverts an old commit that is no longer relevant with the change in second patch.
Hari Bathini (3): add kdump prefix to network cmdline config files fadump: avoid renaming network interface name during regular boot avoid network interface rename when unnecessary
dracut-kdump-boot.sh | 16 ++++++++++++++++ dracut-module-setup.sh | 31 ++++++++++++++----------------- kexec-tools.spec | 3 +++ 3 files changed, 33 insertions(+), 17 deletions(-) create mode 100644 dracut-kdump-boot.sh _______________________________________________ kexec mailing list -- kexec@lists.fedoraproject.org To unsubscribe send an email to kexec-leave@lists.fedoraproject.org Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/kexec@lists.fedoraproject.org