Updateprobleme bei grub unter Debian

Neulich hatte ich Probleme, ein System-Update einer Debian VM durchzuführen. Dieses sollte ohne Nutzerinterkation erfolgen. Unter den zu aktualisierenden Paketen war u.a. grub-pc, welcher allerdings Probleme verursachte und dazu führte, dass die VM nicht mehr startete.
error: symbol 'grub_calloc' not found
Entering rescue mode...
grub rescue> _

Nach etwas Recherche konnte ich zumindest das Problem identifizieren: grub-install: error: cannot find a GRUB drive for /dev/disk/by-id/ata-VBOX_HARDDISK_VB0d12ab89-aead62db. Check your device.map.

Für das Update waren folgende Optionen aktiv:

  • DEBIAN_FRONTEND=noninteractive
  • UCF_FORCE_CONFFOLD=true
Ursache des Problems war, dass sich die ID der Festplatte beim Import in Virtualbox geändert hatte. Dadurch wurde der ursprüngliche MBR nicht mehr gefunden. Beim Update wollte er aber den Bootloader an die bisherige Stelle schreiben.

Leider lies sich Grub nicht davon überzeugen, UUIDs zu nutzen, welche sich auch durch den Import nicht ändern würden. Für mich funktionierte der Workaround, nach dem Erstellen oder Importieren der VM den Cache von debconf für grub-pc aufzuräumen:

echo PURGE | debconf-communicate grub-pc