Attached is an up to date revision of my turboLiveInst patch which
incorporates the suggestions made during MarkMC's review.
Mark's executive summary of the feature:
"Reduce installation time by not copying unused data to disk"
"We avoid copying unused data by copying a filesystem image that has
been reduced to the minimal possible size. This minimal image is not
sufficient for a running LiveCD as applications need room to write
more data, but the minimal image is efficiently created just before
copying by applying a pre-calculated set of deltas to the original
large filesystem image."
2nd revision post with performance numbers and decent descritpion:
(first two copy times are typo swapped)
http://www.redhat.com/archives/anaconda-devel-list/2007-July/msg00065.html
Mark's comments thread:
http://www.redhat.com/archives/fedora-livecd-list/2007-September/msg00007...
The anaconda patch applies on top of the selinux bugfix I sent to
anaconda-devel this morning, but there is no overlap.
The main things I'll mention that aren't directly related to the review
thread above-
- I included a couple typo fixes to the documentation, as well as adding
what seemed to be some appropriate additions.
- I included a slight cleanup of livecd-creator's resize2fsToMinimal.
As discussed in the above thread, since the dumpe2fs code is going into
anaconda for this patch, it seems to make sense to go ahead and include
it in livecd-creator as well to remove the blocksize argument to
resize2fsToMinimal, and have it calculate implicitly instead.
- I had to move the anaconda resize2fs invocation, as now the filesystem
starts out full, and before resize2fs cannot even have mountpoint
directories made in it. Even outside turboLiveInst this is a valid
thing to do.
- renamed the main function from turboLiveInst to genMinInstDelta
- removed option for ignore-deleted, and didn't bother with option for
turboliveinst. The liveinst.sh code gracefully handles the legacy
configuration of no delta file.
- still not yet being a rawhide user, I tested this on an F7 livecd
spin, generated with this git livecd-tools. I used the patch to patch
the installed anaconda. It worked in a test under qemu. (sparse disk
file with du -cms showed that only ~2.2G of data was written).
- I expect, that even just looking at it myself over the next couple
days I'll probably find one or two things to change. Please give me any
feedback about any possible improvements you can think of. If you have
a rawhide livecd spinning enironment handy and want to test it, that
would be greatly appreciated.
Enjoy...
-dmc/jdog