Changing the BIOS boot order in linux

Tim Cutts tjrc at sanger.ac.uk
Wed Aug 5 14:11:24 CEST 2009


On 21 Jul 2009, at 1:51 pm, Joel Merrick wrote:

>> There might be a dirty way:
>>
>> Write a FAI script or a hook for the final part of the installation.
>> This script changes the pxe configuration in such a way that the node
>> does not boot locally but it boots a DOS image.
>> This DOS image contains tools for setting the NVRAM and CMOS.  
>> Create a
>> CMOS-image which has the right boot order. After the next reboot the
>> nodes boots from a local disk.
>
> This is intriguing, I take it you can use this method for BOIS updates
> too (on hardware that it'll work with of course..)
>

Yep, used to do that on RLX blade servers all the time circa 2002,  
since they had no removable media at all, and the only way the  
firmware could be updated was to PXE boot a DOS floppy.  It was  
actually built into the RLX Control Tower software; its OS deployment  
method also used a PXE booted DOS boot floppy to SMB mount the Control  
Tower server's exported filesystems, which contained OS images which  
could be unpacked onto the disks of the machine.  The process was  
fairly analogous to the way FAI works today, but much less  
customisable.  SMB was used rather than NFS to make deploying Windows  
onto the blades easier (not that I heard of many RLX customers that  
were using Windows).

Even though RLX is long since a defunct company, Control Tower still  
exists as a product, only now it's owned by HP and goes by the name of  
Insight Control Linux Edition, which some of you may have seen.  It's  
had some fairly substantial rewriting since the days of Control Tower  
3 on the original RLX blade products, though.

Back to the question at hand, updating BIOS settings is frequently a  
hardware specific issue, and difficult to automate.  It's one of the  
principal reasons why I'm a fan of blade server architectures.  For  
example, on our HP c-Class blades, to PXE boot (and hence hand to FAI)  
a chassis of machines, I just log into the chassis onboard  
administrator using ssh, and then type:

set server boot once pxe all
reboot server all

Obviously if I only want to do a subset of blades, I can change "all"  
to be whichever blades I want to reboot.  Simple as that.  No messing  
about with PXE boot floppies and all that nonsense.

Tim


-- 
 The Wellcome Trust Sanger Institute is operated by Genome Research 
 Limited, a charity registered in England with number 1021457 and a 
 company registered in England with number 2742969, whose registered 
 office is 215 Euston Road, London, NW1 2BE. 


More information about the linux-fai mailing list