[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: "btrsquash" images (dracut dmsquash-live + btrfs-in-squashfs runtime)

Chris asked me about this on IRC so I thought I'd mention it here:

On Fri, 2011-03-25 at 14:35 -0400, Will Woods wrote:
> Keep in mind that the image is actually two parts again - initramfs and
> squashfs.

I should be more careful about talking about splitting the images back
up! Let me be clear: with this proposed image layout, loader is still
very, very dead. The layout is like this:

Old: [loader] -> [stage2]
F15: [anaconda runtime]
New: [dracut] -> [anaconda runtime]

Note that we are *not* responsible for any of the code outside the
anaconda runtime - which means we're still no longer responsible for
anything that involves locating or mounting the anaconda runtime. 

All of that is completely up to dracut, which has far better debugging /
tracing tools than loader ever did, plus a builtin shell, udev, LVM
assembly tools, raid assembly tools, fairly robust networking, iSCSI
setup, etc. 

> We can also save RAM on media installs (and boot.iso and USB-based
> installs) by leaving the squashfs image on the media. And for every
> other case, we can just use the concatenated Big Image like are now.

This is pretty simple to set up - boot.iso would contain
LiveOS/squashfs.img and the initramfs would have an /etc/cmdline that
directs it to look for (e.g.) 
  root=live:CDLABEL="Fedora 15"
This would save another ~128MB RAM. The same technique could be applied
for performing installs from external drives (USB sticks and the like).

> If we keep those parts separate, PPC users could use dracut's
> networking stuff to fetch the runtime image.

And this would be up to the sysadmin to set up, not us. We can default
to booting from the combined image for the normal network case, but
sysadmins are an ingenious lot; as long as we provide them separate
images[1] they'll figure out how to make the corner cases work using
dracut's capabilities.


[1] Or a way to split the combined image(s) into separate parts. All
you really need is the length of the dracut initramfs and:
  dd if=initrd.img of=dracut.img bs=$DRACUT_LENGTH count=1
  dd if=initrd.img of=anaconda.img bs=$DRACUT_LENGTH skip=1

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]