On 04/01/2009 02:35 PM, Jason Maestri wrote:
On 4/1/09 5:36 PM, "David Cantrell"<dcantrell@xxxxxxxxxx> wrote:
On 04/01/2009 01:01 PM, Jason Maestri wrote:
The company I work for has a need to be able to install Fedora onto
several different hardware configurations via a USB thumb drive. As far as
I can currently tell, the only way to install via a thumb drive is to treat
it like a hard drive and tell Anaconda which device it is. We would like to
see something like the "cdrom" install method, where we would just say
"flash" in the kickstart and kernel options, and then Anaconda would take
care of the rest.
I have been looking into this for the past few days and have begun to
modify the source accordingly. I am adding a flashinstall.c module to the
loader, and the next step would be to modify the python code of Anaconda
proper.
Not more code in the loader!
Once the loader is ready to pass things off to Anaconda, there are two
ways (as I see it) to proceed. Anaconda itself, like the loader, can be
modified to find the flash device and install from there, or the loader can
just modify the kickstart file when it is installing it into /tmp/ks.cfg.
In the latter case, it would create an hd: entry so that when Anaconda takes
over, it would just pretend it was installing from a normal hard drive.
That method is a little more straightforward, having fewer new code paths to
maintain, but nothing else seems to do anything like that.
Does anybody have any thoughts about the best way to do this? Also, once
it is done and working, is this something that the community would be
interested in having? I would love to see this go into the upstream
Anaconda source so that others can use it. Either way, the source code will
be available should anybody care to peruse it.
Thank you for your time in responding.
Based on what you're describing, I think we provide enough in the
installer to do what you want without having to modify the source.
Here's my brainstorm:
1) Boot from USB jumpdrive, we can already do this.
2) Build custom USB boot media for your company which includes a
kickstart file and modifies the boot arguments to pass the correct
'ks' argument to the installer so it uses your kickstart file.
3) The kickstart file can be minimal, mostly you just want to control
where packages are coming from (or automate as much as you want). With
the 'repo' command, you can do that.
a) Include a %pre script in your kickstart file that finds the
packages on your USB media. The %pre script writes out
/tmp/repoks.cfg, which contains 'repo' commands that point to
the location you found.
b) Add a '%include /tmp/repoks.cfg' in the kickstart file so the
kickstart file always includes the repo on the USB media.
c) Add %packages and any other kickstart commands you want to
automate the install.
Done.
--
David Cantrell<dcantrell@xxxxxxxxxx>
Red Hat / Honolulu, HI
_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/anaconda-devel-list
David,
Thanks for the quick reply! This sounds like it is worth pursuing. The
only issue I see here is what to put as the option for the ³install² command
in the kickstart. Obviously, I can¹t use the ³cdrom² directive that we
usually use, and when the kickstart is being written, we won¹t know what the
parameters to the harddrive directive would be. The documentation seems to
say that the install command is optional anyway. Should I just skip the
command entirely and just depend upon the repo that we¹ll set up in the %pre
script?
Yes, 'install' is an optional command. The counterpart to 'install'
would be 'upgrade'. By default, anaconda is going to perform an
install, which is what you want. So you don't need to specify an
additional keyword.
Just find the yum repository on your USB media, write out the correct
repo line in the %pre script, and make sure you have a %include line to
include the file you're writing out in %pre.
--
David Cantrell <dcantrell@xxxxxxxxxx>
Red Hat / Honolulu, HI
_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/anaconda-devel-list