modifying fedora core kickstart w/newer kernel

Klaus Steden klaus.steden at thomson.net
Wed Jan 10 17:25:55 UTC 2007


> Fedora core 4 that is ...
> 
> I'm still working on convincing the folks at my company to go
> with something newer but for now several systems are on FC4.
> 
> Anyways, what I'm trying to do is modify the kickstart installer
> so that it uses the slightly more up-to-date 2.6.17-1.2142_FC4
> kernel rather than the default of 2.6.11-1.1369_FC4smp
> primarily because the latest tg3 drivers don't appear to
> compile under the older kernel. Some of the hardware is fairly
> new and the older tg3 driver doesn't work on it.
> 
> I got most of it figured out at this point, however I am stuck
> on getting anaconda to mount the partitions, the behavior I see
> is:
> 
> - system boots up
> - loads network driver
> - downloads kickstart config via http
> - anaconda starts
>   - wipes partition table
>   - creates new partitions
>   - formats partitions
>   - mounts the 'proc' and 'sys' partitions
>   - enables swap
>   - starts installing RPMs
> 
> It does not attempt to mount the '/' partition, as a result
> everything is installed to /mnt which is apparently on a ramdisk,
> and the system very quickly runs out of memory and crashes.
> (OOM killer goes nuts). Using the same kickstart config file
> with the 'original' kernel image and the original initrd
> the system installs fine. The only difference is:
> 
> - new kernel image (taken from the rpm itself, this isn't
>   a self-built image)
> - built a new modules.cgz from the modules in the updated
>   kernel, and replaced the other modules-related files
>   such as the pci.ids etc from RHEL 4 ES update 4
> - eventually also replaced the same modules files in
>   the stage 2 installer but that had no effect.
> 
> My test system is vmware running IDE disks, the IDE
> driver is compiled directly into the kernel. I've been
> using linux for about 10 years now and I just can't
> see why from the minor changes I've done would cause
> anaconda to not want to mount the filesystems.
> 
> Looking at the anaconda.log there are no errors, it clearly
> shows it formatting the filesystems, but it makes no attempt to
> mount them. I can mount the filesystems by hand from the
> busybox terminal fairly easily..
> 
> I suppose worst case I could come up with some sort of parted
> script and run everything by hand in %pre but I'd rather not,
> if I can avoid it.
> 
> Is there documentation somewhere that describes how from
> start to finish a kickstart config is generated from the kernel
> itself, to the initrd, to the stage 2 image, etc etc etc.
> 
> I've been working on this for about 9 hours now and about all
> the docs I can find are related to adding drivers to an existing
> kickstart image (which I've done on tons of occasions). I've
> yet to find docs on anything more in-depth than that.
> 
Hello nate,

This is something I've had to do in my own shop to add third-party drivers,
etc. to basic kernels.

So here's a quick rundown ...

In order to make the newer kernel work under anaconda, you'll need to replace
the vmlinuz files that get installed on your boot media (whatever flavour you
use - CD, USB disk, hard drive) to get your system started. You'll also have
to update any modules it uses (via modules.cgz, as you've correctly
identified), and possibly by modifying netstg2.img (since you're doing a
network-based install). 

This is fairly non-trivial, but can be done. I went through a similar process,
wanting to re-fit Anaconda to generate kickstart configurations on the fly via
the web ... but if you're already using VMware, you're ahead of the game.

Here's a page I wrote for the Fedora Wiki describing what I did (hopefully) in
detail ... http://fedoraproject.org/wiki/AnacondaExtendingKickstart ...
there's other good stuff in here on Anaconda, too, so you might find what you
want.

hth,
Klaus




More information about the Kickstart-list mailing list