putting ks.cfg into initrd.img
Peter Scheie
peter.scheie at visionshareinc.com
Wed Oct 28 21:04:49 UTC 2009
Thanks, Chip. I have a copy of your presentation in my desk and refer to it
regularly. But I'm at home today (sick kid) and since it was out of sight, it
was out of mind.
I fixed my kickstart-in-initrd.img file problem (was editing wrong initrd file),
but I'm having some other difficulties and there some aspects to
kickstart/anaconda that I don't quite understand, and it occurs to me that I
should probably describe what I'm trying to do to make sure it's even possible.
Currently, we distribute a stripped down Centos to customers. We do this by
creating an ISO that is just a syslinux system with a ks.cfg loaded via http
(ks=http://blah.blah.com/). Within the ks.cfg, the installation method
specified is http as well, so basically everything is pulled from the web
server. To carry it one step further, we have our customers download a
customized Unetbootin which pulls down this installer ISO file and installs it
onto a USB flash drive. The customer then boots their server from the flash
drive, the kernel and initrd.img file are loaded, the kickstart is retrieved
from the http server, as is minstg2.img, and the installation goes on its merry
way. It works wonderfully--IF the customer's server can get an IP address from
a DHCP server. But often it cannot, because, for example, it is in a DMZ;
besides, ultimately, we require them to enter a static address for the server,
althought that doesn't happen until after installation. The solution at the
moment is to have the customer edit the boot command of the installer and append
an IP, netmask, gw and dns address. No big deal if one is used to Linux, but
Sales & Marketing is telling me our customer's can't handle this. So, my
thought is to prompt the customer for the network info at the very beginning of
the boot process, and then somehow pass that to anaconda so it can connect to
our web server. Interestingly, right now when the installer does not get an
address from a dhcp server, it does pop up the network configuration dialog.
Unfortunately, this info does not get passed to minstg2.img because while
minstg2.img does get downloaded, it then gives errors that the kickstart file
could not be downloaded; tcpdump showed new dhcp requests coming from the
installer at this stage. My first thought was to put the kickstart into the
initrd.img in the ISO and use the ks=file: parameter in the boot command, and in
%pre put some shell commands that would prompt the user for networking info.
But it's still trying to pull minstg2.img from the web server. At 37MB,
minstg2.img is more than four times the entire installer ISO, but if it gives me
an environment for prompting the user for network info, I'll put it into the ISO.
So, my questions are:
1. How do I tell anaconda that minstg2.img is on the same medium as initrd.img
and ks.cfg and so on?
2. When DHCP fails and the dialog for network info pops up, is there a way that
info can be passed to minstg2.img, such that ks.cfg could be pulled from the web
server and not have to be in initrd.img?
3. One would think that the asknetwork parameter would answer #2 above, but it
doesn't seem to. Should it? Am I just doing something incorrectly?
Thanks.
Peter
Shabazian, Chip wrote:
> There are instructions on how to embed the ks.cfg in the Linuxworld
> presentation I did a few years ago:
> http://www.shabazian.com/lw2007.pdf
>
> -----Original Message-----
> From: kickstart-list-bounces at redhat.com
> [mailto:kickstart-list-bounces at redhat.com] On Behalf Of Peter Scheie
> Sent: Wednesday, October 28, 2009 7:40 AM
> To: Discussion list about Kickstart
> Subject: putting ks.cfg into initrd.img
>
> I'm trying to put my kickstart file into the initrd.img file with the
> intent of
> putting 'ks=file:/ks.cfg' in my isolinux.cfg file, for custom centos 5
> installation. I did this to get the kickstart into initrd.img:
>
> gunzip < isolinux/initrd.img > initrd.raw
> ls ks.cfg | cpio -oAO initrd.raw -H newc
> gzip -c initrd.raw > initrd.img
>
> Then I copied the new initrd.img file to my flash drive, replacing the
> one in
> the isolinux/ directory. At the boot prompt, I set ks=file:/ks.cfg, but
> while
> it starts to boot, I get a dialog box saying the /ks.cfg file could not
> be
> found. Any suggestions as to what I'm doing wrong?
>
> Peter
>
> _______________________________________________
> Kickstart-list mailing list
> Kickstart-list at redhat.com
> https://www.redhat.com/mailman/listinfo/kickstart-list
>
> _______________________________________________
> Kickstart-list mailing list
> Kickstart-list at redhat.com
> https://www.redhat.com/mailman/listinfo/kickstart-list
More information about the Kickstart-list
mailing list