Bug 21211

Summary: PXE Boot on Server with Two NICs Requires User Intervention
Product: [Retired] Red Hat Linux Reporter: Mark Skarpness <mark.skarpness>
Component: anacondaAssignee: Erik Troan <ewt>
Status: CLOSED NOTABUG QA Contact: Brock Organ <borgan>
Severity: medium Docs Contact:
Priority: low    
Version: 7.0   
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2000-12-06 21:41:22 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Mark Skarpness 2000-11-22 00:03:00 UTC
The basic problem presented with headless (i.e. PXE boot) installation of 
RedHat 7.0 on any platform with multiple NICs is due to a design change in 
the Anaconda installer.  

The installer now checks for multiple network devices and, if more than 
one network device is found, it pops up a requestor (on the system being 
installed) asking which network device you would like to install through.  
Naturally, if this happens on a client system being installed with no 
keyboard, mouse or video, the install hangs with no clue to the user of 
what is happening.  

This check is done before the kickstart configuration file is obtained 
through the network connection, therfore there are no kickstart 
switches/options that would help overcome this problem.  The offending 
code is located in the Anaconda source in the "loader.c" file.  This code 
is compiled into the pxeboot/initrd image and causes this issue.  

Specifically, the function "ensureNetDevice" in the file "loader.c" has 
the following code which causes the problem:
---------------------------------------------------------------------------
    deviceNum = 0;
    rc = newtWinMenu(_("Networking Device"), 
		     _("You have multiple network devices on this system. "
		       "Which would you like to install through?"), 40, 
10, 10, 
		     deviceNums < 6 ? deviceNums : 6, devices,
		     &deviceNum, _("OK"), _("Back"), NULL);
    if (rc == 2)
	return LOADER_BACK;
---------------------------------------------------------------------------

Comment 1 Michael Fulbright 2000-11-22 17:24:36 UTC
Assigning to developer.

Comment 2 Erik Troan 2000-11-22 17:29:29 UTC
You can pass ksdevice=eth0 (for example) as a kernel parameter (same place you
pass "ks") to tell anaconda which device to use.

Comment 3 Mark Skarpness 2000-12-01 21:06:38 UTC
The suggested kernel parameter works fine.  However, the proposed solution 
breaks the headless installation because it still requires a monitor and 
keyboard for the end-user to input kernel parameters for each PXE client(s).
  
By definition, "headless" means no monitor, keyboard or mouse ... just plug in 
an RJ45 and power on the system and grab a cup of coffee.  That's how headless 
works on Red Hat 6.1, Red Hat 6.2 and Red Hat 6.2 SBE2.

Is there a way to pass the kernel paramter during PXE boot to accomplish a 
truly headless boot?


Comment 4 Erik Troan 2000-12-06 21:41:19 UTC
Put the ksdevice=eth0 bit in the same place you're putting the main 'ks'
argument. You can specify this right in the syslinux.cfg file, or the pxe
equivalent.