[Fedora-livecd-list] Custom initrd

Mads Kiilerich mads at kiilerich.com
Sat Aug 15 09:17:54 UTC 2009


Jeremy Katz wrote, On 08/15/2009 04:45 AM:
> On Saturday, August 15 2009, Mads Kiilerich said:
>    
>> I have figured out that livecd-creator through imgcreate creates a
>> /etc/sysconfig/mkinitrd. When rpms runs mkinitrd from their %post script
>> then it will exec mkliveinitrd and use the configured module list.
>> AFAICS livecd-creator then picks up the initrd from /boot, and the end
>> result after having written the iso to usb with livecd-iso-to-disk is
>> that it ends up in /syslinux/initrd0.img.
>>      
> Correct
>
>    
>> But if I overwrite the /boot/initrd* in %post like this:
>>      /sbin/mkinitrd -f /boot/initrd-$(rpm -q kernel --qf
>> '%{version}-%{release}.%{arch}\n').img $(rpm -q kernel --qf
>> '%{version}-%{release}.%{arch}\n')
>> then it won't be used.
>>
>> What am I doing wrong? When is the initrd picked up? What is the code flow?
>>      
> %post runs after we've set up the boot loader bits.  Otherwise, it
> %wouldn't be the last thing run.

I intuitively expected %post to be the last step in the kickstart 
process, but to come before the "taking a snapshot of the chroot and 
transforming it to something bootable" part. But no one size fits all. 
Ok. Perhaps different %posts could make some things simpler.

> So if you want to do this, you have to
> do something like we did for Fedora 8 on the initial move of initramfs
> stuff into mkinitrd proper.  See commit
> 11dbd0bb5ba4b845e80109e990e4e780ca402218
>    

Oh yeah. livecd-creator thinks (knows) that it is creating a CD, and 
thus the initrd is (has to be) in $LIVE_ROOT/isolinux/initrd0.img.

So
     /sbin/mkinitrd -f $LIVE_ROOT/isolinux/initrd0.img $(rpm -q kernel 
--qf "%{version}-%{release}.%{arch}")
in %post should do the trick? I will try that.

I tried and was looking for $LIVE_ROOT/syslinux/initrd0.img as it can be 
seen on running USB sticks, but that mangling is only done later by 
livecd-iso-to-disk ...

I have had some problems with things copied to $LIVE_ROOT in nonchrooted 
%post not showing up on the final system, but that might be 
livecd-iso-to-disk too - I will try harder.

Thanks!

/Mads




More information about the livecd mailing list