Installing a system over PXE fails with "Warning: dracut-initqueue timeout" when VLAN tagging is configured for the boot interface
Environment
- Red Hat Enterprise Linux 7 and later
- pxe
- VLAN tagging
Issue
-
When installing a system over PXE and VLAN tagging is configured for the boot interface, the following message is seen in loop on the console
[ ... ] dracut-initqueue[XXX]: Warning: dracut-initqueue timeout - starting timeout scripts [ ... ] dracut-initqueue[XXX]: Warning: dracut-initqueue timeout - starting timeout scripts ... [ ... ] dracut-initqueue[XXX]: Warning: Could not boot. [ ... ] dracut-initqueue[XXX]: Warning: /dev/root does not exist
Resolution
Follow the procedure in the Diagnostic Steps section. If this is a match, proceed further.
Append the following kernel command line parameter to the entry in your PXE configuration:
rd.bootif=0
For more KB articles/solutions related to Red Hat Satellite 6.x Provisioning Issues, please refer to the Consolidated Troubleshooting Article for Red Hat Satellite 6.x Provisioning related Issues
Root Cause
dracutuses state files to record the state of a given network interface to configure, e.g./tmp/net.eno1.did-setup- When
BOOTIF=<hwaddr>is specified on the kernel command line,dracutwaits for the network interface corresponding to the MAC address specified inBOOTIF, which is considered up when/tmp/net.<hwaddr>.did-setupstate file exists - When VLAN tagging is used, no such state file is created because
dracuthas no way to distinguish between the physicall network interface and the VLAN, since they share the same MAC address
This results in dracut waiting forever on the MAC address specified in BOOTIF.
Diagnostic Steps
-
Boot the system with
rd.shellon the kernel command line -
Wait for
dracutemergency shell to show up (requires ~3 minutes or more)[ ... ] dracut-initqueue[XXX]: Warning: Could not boot. [ ... ] dracut-initqueue[XXX]: Warning: /dev/root does not exist ... dracut:/# -
Check that
BOOTIFparameter is on the kernel command line# cat /proc/cmdline initrd=... ip=<server_ip>::<gateway>:<hostname>:bond0.123:none ... bond=bond0:eno1,eno2:mode=4,miimon=100,lacp_rate=1 vlan=bond0.123:bond0 ... rd.shell BOOTIF=<01-aa-bb-cc-dd-ee-ff>In the example above, the boot interface's MAC address is
<aa:bb:cc:dd:ee:ff>(colons are replaced by dashed) and is configured asbond0.123.
If there is no VLAN configured, then the issue is different than what is described in this Solution. -
Check that
dracutwas waiting on the MAC address to be configured but this never happened# ls -1 /lib/dracut/hooks/initqueue/finished/wait-* wait-aa:bb:cc:dd:ee:ff.sh
This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.