Jeremy Katz wrote:
On Tue, 2007-07-17 at 20:07 -0500, Jerry Vonau wrote:
Jeremy Katz wrote:
On Fri, 2007-07-13 at 12:46 -0500, Jerry Vonau wrote:
I've been playing around with both anaconda and the live-cd, and I had
an idea to kind of merge the two. I took advantage up the RHupdates
override on a nfs install, to have anaconda use a squashfs.img that is
on the nfs server in /LiveOS/,(this could use a bit of work...) creating
the same device name as the the live-cd install is looking for. Once
that is done, anaconda uses a patched livecd.py to install to the
harddrive. This is more of a proof of concept them prime code.. ;)
First I altered fedora.py in installclass, flags.py, bootloader.py,
livecd.py, and added a new one called livefs.py, adding them in
/RHupdates/ to incorporate my changes with out really having to play
with the loader.
I wouldn't expect that you would have to go this far... you should
really be able to just mount your NFS dir, loopback mount the
squashfs.img and losetup the os.img block device and then you just need
to run anaconda with the right args as liveinst does.
I tried that, by placing an anaconda file in RHupdates with with the
same string that liveinst uses:
/usr/sbin/anaconda --method=livecd://dev/live-osimg
That worked but after the coping image part there was a warning (from
bootloader.py) that there was no kernel packages were installed, and the
bootloader will not be changed. Then I was off to add the flag and edit
bootloader.py. That fixed the warning, but no joy, no grub.conf
Do you have a kernel package installed in your image? Specifically a
package named kernel. Otherwise, the check in livecd.py's
kernelVersionList() won't work -- patches cheerfully accepted to make it
handle at least looking for anything that provides kernel :-)
Yes, there is a kernel installed, a stock f7, off-the-net live image was
used. Think I found the issue, in kernelVersionList
ts = rpm.TransactionSet() is looking at the running system and not at
the newly installed image. Changing that line to
ts = rpm.TransactionSet("/mnt/sysimage") results in a db version
mismatch error when run from the "normal" installer but not when run
from the livecd, but if I do a "rm -f /mnt/sysimage/var/lib/rpm/__db.*"
before calling kernelVersionList, in the installer, I get a new initrd,
grub.conf, it all works. :-)