Installing a system over PXE fails with "Warning: dracut-initqueue timeout" when VLAN tagging is configured for the boot interface

Solution Verified - Updated

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

  • dracut uses 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, dracut waits for the network interface corresponding to the MAC address specified in BOOTIF, which is considered up when /tmp/net.<hwaddr>.did-setup state file exists
  • When VLAN tagging is used, no such state file is created because dracut has 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

  1. Boot the system with rd.shell on the kernel command line

  2. Wait for dracut emergency 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:/# 
    
  3. Check that BOOTIF parameter 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 as bond0.123.
    If there is no VLAN configured, then the issue is different than what is described in this Solution.

  4. Check that dracut was 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
    
SBR
Components
Category
Tags

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.