Jerry Vonau wrote:
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. :-)
Nice catch.
Probably unrelated, but earlier today I was looking through TransactionSet
anaconda code in an unfruitful attempt to see if I could figure anything out
related to the f8t1 semi-blocker 249908. I didn't get anywhere, but maybe you
might want to take a look at it since you sound like you at least somewhat
understand those bits of anaconda (certainly more than I do).
The only thing that came out of my looking at it was curiosity at this in the
traceback attached to bug-
rpmfile:
/tmp/cache/anaconda-base-200707270745.i386/packages/openoffice.org-langpack-en-2.2.1-18.6.fc8.i386.rpm
txmbr: openoffice.org-langpack-en.i386 1-2.2.1-18.6.fc8 - u
I.e. what the "1-" prefixed to the version is there for. Probably there for
some good reason.(?)
-dmc
P.S./Offtopic- since you brought it up before, if you didn't notice, I did post
a proof of concept rebootless installer on fedora-devel a while back. I should
have an anaconda-ized version done soon (minus the extra mayflower hackery which
turns out to not even be needed). Thanks for making me keep in mind all the
cool things that can be done with stuff stored on the network ;)
I'm just not sure why there is the db version mis-match between the
livecd and the "normal" installer. I'll leave that for another time to
figure out.