So, there is certainly a limit on the size of the compressed kernel +
its init_size + the compressed initrd, and on this platform as you say
it's a little under 64MB.  However, I can't make this add up to a
problem in this case, and I think there may be some double-counting
going on in GRUB that exacerbates the problem.

I looked hard at how GRUB allocates memory for the initrd.  The maximum
address is capped to 0x37FFFFFF, thereby excluding the
0x40000000-0xABFFFFFF range that's available, so the effective available
range per E820 data is 0x100000-0x3FEFFFF, minus what's already been
allocated for the kernel.  The minimum address is then taken as the
target physical address of the kernel (0x1000000) plus its required init
space (0x134F000) plus the initrd size.  But the initrd is going to be
allocated *above* this address.  Why does it need to add the initrd
size?  The effect of this calculation is to limit the initrd size to
about 15MB when it should be limited to about 30MB.

You might like to try this patch:

  http://paste.ubuntu.com/1275848/

Beware that since it is nearly midnight here I've only minimally tested
this.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1055686

Title:
  Ubuntu 12.10 cloud images do not full provision on Azure

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+bug/1055686/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to