<!-- 
.. title: No post-MBR gap
.. slug: no-post-mbr-gap
.. date: 2013-06-16 15:38:09 UTC+01:00 
.. tags: archlinux, virtual-machines, 
.. link: 
.. description: 
.. type: text 
--> 

A [recent update of Archlinux](https://www.archlinux.org/news/binaries-move-to-usrbin-requiring-update-intervention/ "recent update of Archlinux") moved all binaries to /usr/bin. The update was smooth on my main system, but for my [4 years old virtual Arch](browser-appliance.html "4 years old virtual Arch"), a 'pacman -Qqo /bin /sbin /usr/sbin | pacman -Qm -' revealed that grub 0.97 required a fix.

I could have installed [grub-legacy from the AUR,](https://aur.archlinux.org/packages/grub-legacy/ "grub-legacy from the AUR,") but that idea struck me as a rather backwardish one. Since I learned to really like syslinux from my main system, I installed this modern bootloader instead. Upon a reboot I was greeted with "no operating system found". Hm.

I soon learned that the problem originated from the fact that my /boot partition starts with sector 1. Well, just like fdisk partitioned a few years ago. Now, I could have [converted the partition to GPT,](https://wiki.archlinux.org/index.php/GUID_Partition_Table#Convert_from_MBR_to_GPT "converted the partition to GPT,") but I didn't like that idea too much either. Instead, I tried grub2, only to get rebuffed once more: "no post-MBR gap; embedding won't be possible". Aarghhh!

Finally, it was the [Gentoo Wiki](http://wiki.gentoo.org/wiki/GRUB2#No_post-MBR_gap "Gentoo Wiki") which told me what to do: "If you really want blocklists, use --force." A 'grub-install /dev/sda --force' later, my virtual Arch is up-to-date and thus again as new and shiny as in the beginning.

