Using Network Driver Images on RedHat/CentOS Installs
I was building a shiny new CentOS 5.0 server today with a very nice 3ware 9650SE raid card.
Problem #1: the RedHat anaconda installer kernel doesn't support these cards yet, so no hard drives were detected.
If you are dealing with a clueful Linux vendor like 3ware, though, you can just go to their comprehensive download driver page, grab the right driver you need for your kernel, drop the files onto a floppy disk, and boot with a 'dd' (for 'driverdisk') kernel parameter i.e. type 'linux dd' at your boot prompt.
Problem #2: no floppy disks! So the choices were: actually exit the office and go and buy a floppy disk, or (since this was a kickstart anyway) figure out how to build and use a network driver image. Hmmm ...
Turns out the dd kernel parameter supports networked images out of the box. You just specify dd=http://..., dd=ftp://..., or dd=nfs://..., giving it the path to your driver image. So the only missing piece was putting the 3ware drivers onto a suitable disk image. I ended up doing the following:
# Decide what name you'll give to your image e.g. DRIVER=3ware-c5-x86_64 mkdir /tmp/$DRIVER cd /tmp/$DRIVER # download your driver from wherever and save as $DRIVER.zip (or whatever) # e.g. wget -O $DRIVER.zip http://www.3ware.com/KB/article.aspx?id=15080 # though this doesn't work with 3ware, as you need to agree to their # licence agreement # unpack your archive (assume zip here) mkdir files unzip -d files $DRIVER.zip # download a suitable base image from somewhere wget -O $DRIVER.img \ http://ftp.usf.edu/pub/freedos/files/distributions/1.0/fdboot.img # mount your dos image mkdir mnt sudo mount $DRIVER.img mnt -o loop,rw sudo cp files/* mnt ls mnt sudo umount mnt
Then you can just copy your $DRIVER.img somewhere web- or ftp- or nfs-accessible, and give it the appropriate url with your dd kernel parameter e.g.
Alternatives: here's an interesting post about how to this with USB keys as well, but I didn't end up going that way.blog comments powered by Disqus