[openstack-dev] [diskimage-builder] ERROR: embedding is not possible, but this is required for cross-disk install

Clint Byrum clint at fewbar.com
Mon Jun 20 22:12:23 UTC 2016

Excerpts from Jay Pipes's message of 2016-06-20 16:52:38 -0400:
> Hi dib-gurus,
> I'm trying to build a simple ubuntu VM image on a local Gigabyte BRIX 
> with a AMD A8-5557M APU with Ubuntu 16.04 installed and getting an odd 
> error. Hoping someone has some ideas...
> The command I am running is:
> disk-image-create -o /tmp/ubuntu.qcow2 --image-size=10 ubuntu vm
> Everything goes smoothly until trying to write the MBR, at which point I 
> get the following error:
> + /usr/sbin/grub-install '--modules=biosdisk part_msdos' 
> --target=i386-pc /dev/loop0
> Installing for i386-pc platform.
> /usr/sbin/grub-install: warning: this msdos-style partition label has no 
> post-MBR gap; embedding won't be possible.
> /usr/sbin/grub-install: error: embedding is not possible, but this is 
> required for cross-disk install.
> /dev/loop0: [0047]:3 (/tmp/image.hk8wiFJe/image.raw)

I think you found a bug. The ARCH should be armhf, but
elements/bootloader/finalise.d/50-bootloader doesn't know what to do with
armhf, so it falls back to x86_64/amd64. Also, grub-pc is the package
that bootloader claims to need in its pkg-map file, but you really need
grub-efi-arm on arm boxes.

We may need to add the ability for pkg-map's to differentiate based on

If you intended to build an amd64 image, you need to set ARCH=amd64
before running disk-image-create, so it won't detect it by running
'dpkg --print-architecture'.

More information about the OpenStack-dev mailing list