After long periods of waiting and hoping, etc I'm just about to do a push of some changes that at least give us a good base to build on for persistent live images. They're very very very heavily based off of Douglas McClendon's patches that he posted here a month or two, but I've done basically two things with them: 1) Integrated the findoverlay bits into mkliveinitrd directly and was able to do a little bit of cleanup accordingly 2) Not put in the bits right now to do the snapshot teardown on shutdown
The former is pretty non-controversial. The latter, well, we're going to need some testing to know how feasible this really is. I spent quite a while this afternoon trying to cause any form of corruption without the initscripts changes and never succeeded[1]. And realistically, if it's going to cause corruption if we don't shutdown cleanly, then we have problems if someone loses power or removes their USB key or any of a whole bunch of other things occur. I _did_ have the journal get recovered and as long as things were able to get to the journal, it was good to go. But more testing is going to be needed. So if anyone here wants to try building some images and putting them on USB drives and testing them out, that'd be greatly appreciated. And then I'm going to issue a larger call for testers with the Fedora 9 beta. If we find that we need to integrate some of the shutdown bits, we'll make it happen. But right now, I'm feeling pretty confident that we won't
The quick steps of how to take advantage of the functionality: 1) Build a live image using the newer mkinitrd (6.0.32) in your repos 2) Use the updated livecd-iso-to-disk.sh with an --overlay-size-mb=512 (or 1024 or whatever based on the capacity of your USB stick minus the size of the ISO) 3) Boot the USB drive
You can also (although it's more complicated) use a USB stick with a CD 1) Build live image as in 1) above 2) Create /LiveOS/overlay-$v- on your USB stick with size how ever big you want (can be a sparse file). $v is the label of the _iso_ (not of the USB stick) 3) Find the label or UUID of the partition on the USB stick you're using. Write it down. 4) When you boot the CD, have the USB stick plugged in and add to the kernel command line overlay=$dev where $dev is what you found in step 3. If it's a label, do LABEL=foo; similarly uuid ==> UUID=foo.
Big big big thanks and kudos to dmc for doing all of the legwork here and letting me off the hook for so long on actually getting it integrated. But once I finally got around to having a full afternoon to spend on it, it was in great shape.
Jeremy