<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Oct 11, 2016 at 2:54 PM, Steve Langasek <span dir="ltr"><<a href="mailto:steve.langasek@canonical.com" target="_blank">steve.langasek@canonical.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="m_-1511149551035584014gmail-">On Tue, Oct 11, 2016 at 06:12:06PM +0200, Oliver Grawert wrote:<br>
<br>
> Am Dienstag, den 11.10.2016, 11:55 -0400 schrieb Barry Warsaw:<br>
> > On Oct 11, 2016, at 05:01 PM, Oliver Grawert wrote:<br>
<br>
> > > defining it in the gadget would be rather awful since that means if we<br>
> > > use an identical image for cloud, VM  and "normal PC install" we would<br>
> > > need a gadget per image just for that one difference ...  (the pc<br>
> > > image that you can use for all three consists of: pc (gadget,<br>
> > > pc-kernel (obviously kernel) and core (rootfs).<br>
> > That's the data point I was looking for, thanks!<br>
<br>
> > Can you explain in more detail why kvm images need some extra space, but<br>
> > other images do not?<br>
<br>
> on VMs the img file defines the "physical VM disk" while for an actual<br>
> install you write the img file to a pyhsical disk device ... the resize<br>
> code will find that the partition table does not cover all of the disk<br>
> before first boot and start the resize process so here the img size<br>
> wont be taken into account at all.<br>
<br>
> on a VM, all the resize code will see is the img file that pretends to<br>
> be a harddisk and it will find there is nothing to resize to.<br>
<br>
> > Also, if you specify a fudge factor via cli/envar, should that be<br>
> > applied in addition to, or instead of, any built-in compensation for<br>
> > file system overhead?<br>
<br>
> i dont mind either, whatever is easier to implement (as long as the<br>
> help documents the right behaviour) ;)<br>
<br>
</span>I don't think a 'fudge factor' option is particularly clean or intuitive.  I<br>
think what you actually want is to be able to declare the overall size of<br>
the image that you're building.  It's a waste of mental energy to think<br>
about VM image sizes in increments less than 1G, especially given that these<br>
are all still going to be sparse files.<br>
<br>
So I would suggest:<br>
<br>
 - a --size option to ubuntu-image to specify the full image size (needs<br>
   some careful thought for the multiple-image case)<br></blockquote><div><br></div><div><div>If we support flags, we need to make it per partition so we can tell what to grow, or we need to extend the language to be more precise about what to grow and by how much relative to the total size.</div></div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
 - keep the 50% buffer on ext4 filesystem size as a floor (the '50%' can be<br>
   refined over time with investigation into the actual size requirements<br>
   for ext4 metadata, but this is not a high priority; highest priority is<br>
   that it works reliably)<br></blockquote><div><br></div><div>What's the 50% buffer?  Per our agreements the size option in the structure items is a requirement, right?</div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
 - if --size is smaller than the minimum size needed to accommodate the<br>
   contents, warn but build the image anyway - because all the expensive<br>
   work of ubuntu-image happens /before/ we're able to calculate the final<br>
   size, so throwing that all away at the end would be /very annoying/.<br></blockquote><div><br></div><div>Why would we go ahead if we know the contents won't fit?  It sounds fine to warn if we think it's too small to be useful. But we should error hard if we know the image is corrupted. It's better to be forced to recreate than to risk having people using knowingly broken images.</div><div><br></div><div><br></div></div><div class="m_-1511149551035584014gmail_signature">gustavo @ <a href="http://niemeyer.net" target="_blank">http://niemeyer.net</a></div>
</div></div>