Bug 2041094

Summary: boot vm from pxe fails: dracut: FATAL: iscsiroot requested but kernel/initrd does not support iscsi
Product: Red Hat Enterprise Linux 9 Reporter: Matthew Davis <redhat-developer>
Component: dracutAssignee: Lukáš Nykrýn <lnykryn>
Status: CLOSED NOTABUG QA Contact: qe-baseos-daemons
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: CentOS StreamCC: bstinson, dracut-maint-list, dtardon, jwboyer
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-01-20 13:32:35 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Console of failed boot
none
Console log of Work-Around and Successful boot none

Description Matthew Davis 2022-01-15 22:49:37 UTC
Created attachment 1851040 [details]
Console of failed boot

Description of problem:
When installing el9 on a VirtualBox guest with an new vmdk files as the storage, the boot will fail with the error:

dracut: FATAL: iscsiroot requested but kernel/initrd does not support iscsi

Version-Release number of selected component (if applicable):


How reproducible:
This consistently reproducible with implementing a work around. 

Steps to Reproduce:
1. VirtualBox 6.1.30 (Windows host)
2. Create a new Linux VM.
3. Create a new VMDK file as the disk device.
4. Boot the guest using PXE.

Actual results:
Kernel and initrd loads however the boot fails/stops with:

dracut: FATAL: iscsiroot requested but kernel/initrd does not support iscsi

Expected results:
Boot succeeds and ANACONDA start the installation.

Additional info:

If I install CentOS 8 on the guest/vmdk file and then reinstall with EL9, the installation succeeds.

I am attaching 2 console logs.  One is the initial attempt that fails.  The second contains the El8 then EL9 work-around for comparison.

Comment 1 Matthew Davis 2022-01-15 22:50:49 UTC
Created attachment 1851041 [details]
Console log of Work-Around and Successful boot

Comment 2 David Tardon 2022-01-20 13:32:35 UTC
(In reply to Matthew Davis from comment #0)
> Description of problem:
> When installing el9 on a VirtualBox guest with an new vmdk files as the storage, the boot will fail with the error:

> dracut: FATAL: iscsiroot requested but kernel/initrd does not support iscsi

So, this error happens because probing for iSCSI--more specifically, "modprobe -n -q iscsi_tcp" command--failed, but it's not the first thing that fails. Looking at the logs, I see

[    5.506468] systemd[1]: systemd-modules-load.service: Main process exited, code=exited, status=1/FAILURE
[    5.509940] systemd[1]: systemd-modules-load.service: Failed with result 'exit-code'.
[    5.514048] systemd[1]: Failed to start Load Kernel Modules.

, which suggests something is wrong with loading kernel modules in general. And even before that

[    5.460372] systemd[1]: Condition check resulted in Create List of Static Device Nodes being skipped.

, which again points to some problem with kernel (it doesn't happen in the "functional" scenario, of course). The kmod-static-nodes.service is conditionalized on two things: having CAP_SYS_MODULE capability and /lib/modules/<kernel-version>/modules.devname not being empty. But the service is running as root, which means it's the non-empty file condition that failed.

> If I install CentOS 8 on the guest/vmdk file and then reinstall with EL9,
> the installation succeeds.

IOW, it works fine if the target disk is not empty. I'm pretty sure this is a bug in VirtualBox. It's certainly not a bug in dracut, because dracut isn't even aware of that disk--it's running from the installation initramfs. It could be a kernel bug, but I sincerely doubt any problem with a storage device could mess up kernel this seriously. Closing hence.