On Tue, Feb 28, 2006 at 07:18:26AM -0500, Reeves, Matthew J. wrote:
I'm trying to set up a pxe environment to install SuSE 9.0 on some Dell Poweredge 1850s. The kernel that comes with 9.0 doesn't support the raid controllers. I want to change the installing kernel to 2.4.32 so that the raid works. I can get the systems booting and linuxrc runs but it asks for a module disk then goes into manual mode. In the manual mode I can kick off a ftp install but after root is downloaded the system just goes back to the linuxrc menu. Is there an easy way to change the kernel?
I've done some completely custom kernel installs before. What I've done is to... On an already installed host, do a make cloneconfig and copy out the resulting .config file. Build the updated kernel you want using that .config file (if you don't know how to do that, using make oldconfig first, need to read up on that). Then I replace the kernel file with the resulting kernel file, then create an updated initrd by doing the following while booted into the updated kernel: - zcat the distribution install initrd to a tmp file, then loopback mount it. - rsync that whole filesystem into a tmp dir. - cd into that tmp dir, then modules. This path is usually /tmp_dir/lib/modules/2.6.5-override (or whatever version your kernel is-override). - to make sure I have all the exisiting modules replaced, I run; for file in *.o # *.ko for 2.6 kernels do find /lib/modules/`uname -r`/ -type f -name $file -exec cp {} . \; done - create a new loopback minix filsystem: cd /tmp dd if=/dev/zero of=new_initrd bs=1048576 count=x where x is the number of megs you need to fit the new modules (du -sh /tmp_dir to find out). mkfs.minix -v new_initrd loopback mount new_initrd rsync the /tmp_dir into that loopback mount path. gzip -cn9 new_initrd > initrd # replace initrd with installation initrd location. If you now boot and start an install using the updated kernel/initrd it should work. Of course, after the module replacement above, if your raid module was a new one, you have to copy it into place as well, and you might have to edit the modules.pcimap file so that it knows which module to try to load based on the pci id info (lspci and lspci -n help get the right values on a host with the hw). -- Mike Marion-Unix SysAdmin/Staff Engineer-http://www.qualcomm.com "Because right now, developing software for Microsoft is like brushing the teeth of a Great White Shark with a piece of raw steak." - Robert G. Brown, Linux Today; Nov 13th, 1998