[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: Anaconda RPMBUILD and KernelSPEC

Essien Ita Essien a écrit :
Olivier BONHOMME wrote:
Hello Everybody,

I am writing on this mailing because I have got a problem to understand how anaconda works with initrd.

Let me explain my problem.

I build a kernel package with rpmbuild using a custom SPEC file. This kernel uses an initrd.img file in order to boot correctely. I decided to use this kernel for creating an automatic installer for Fedora Core 6 using anaconda.
I build our distro also with a custom kernel built with a custom SPEC file.

I built my CD sucessfully and tried to boot on it. Anaconda starts sucessfully and the installation is OK.
If anaconda starts successfully and installation is ok, then the problem is NOT from Anaconda's kernel installation, if it was, Anaconda would probably not boot at all.

After the installation, the system reboots and at this moment I see that the initrd line is not added in GRUB. If I try to boot, the system restarts after saying that it is impossible to open the initial console.

After investigation, I found that the initrd file was not present on the destination system and I undserstood why.
I've had a somewhat similar problem in my distro building episodes. I used to use a custom build process which I kept updating as things changed from FC3, FC4, FC5, etc, when I had this problem recently, I discovered that some rpms where NOT being installed on my target machine default installs, basically 'mkinitrd' and 'initscripts' where not being installed, at this point, after much head scratching and related staring into space (and then some more head scratching), I discovered and switched to using 'pungi', and currently, I don't have that problem anymore... My problem back then was that mkinitrd and initscripts were missing from the pkgorder file that buildinstall was creating, I still don't know what was wrong, but using pungi now, i no more have that problem.

In my RPM, I have a postinst directive which says to create the initrd file and update the GRUB entry using commands new-kernel-pkg and mkinitrd. But on the stage2 file system these commands are not present.
Can you boot into system rescue mode and try to manually install your kernel again, you'll then see any errors that are preventing your kernel from being properly installed during the CD installation or at least, you'll get a clue.

But, on a Fedora Default Install, we have a custom with an initrd.img file. So the thing I would want to understand is how and when anaconda creates the initrd file and how and when the GRUB entry is updated because I didn't find out where was done these operations.
these should happen when the kernel is being installed, but if dependencies are missing, for instance, mkinitrd is not installed, BadThings(tm) will happen.

Thank you for your answer.

I tried the kernel on a default Fedora Installation (Rpm -i after a completed installation) and it works sucessfully.

Actually, the thing I don't understand is how anaconda generates the initrd img without the mkinitrd and new-kernel-pkg tools. Indeed, these tools don't seem to be present on the stage2.img.

Then in the buildinstall script mkinitd and new-kernel-pkg tools are not located in the KEEPFILE file. So I wonder to know how anaconda works. I tried to look on the python script but it is difficult to find where is done this operation.

I found a recreateInitrd function but didn't find out when it is called (Python is not my favourite langage)

Best Regards,

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]