Letzt Woche musste ich einen "alten" Server mit Debian Etch in eine KVM-Umgebung umziehen. Nach ein paar kleineren Anlaufschwierigkeiten lief das System auch ohne Probleme wieder. Nur booten wollte der Server nicht ohne die Hilfe von der Super Grub Disk. Der Versuch den Grub(Version 0.97) wieder in den Master Boot Record(MBR) zu installieren schlugen mit der Meldung: "The file /boot/grub/stage1 not read correctly." fehl.
Nach einer kurzen Recherche hatte ich gefunden, dass Grub nicht mit ext3 Dateisystem zurechtkommt, bei denen die Inode Size größer als 128 ist. Standardmäßig wird eine ext3 Dateisystem mit einer Inode Size von 256 angelegt.
Die Inode Size kann wie folgt mit dem Befehl tune2fs angezeigt werden. Im Beispiel kommt ein Ubuntu System zum Einsatz und /dev/sdaN muss entsprechend angepasst werden.
$ sudo tune2fs -l /dev/sdaN | grep "Inode size"
Inode size: 256
Da die Inode Size nachträglich nicht geändert werden kann, gab es für mich zwei Möglichkeiten. Entweder alles neu kopieren und alle Fixes wieder durchgehen oder eine Boot-Partition mit der entsprechenden Inode Size anlegen. Ich entschied mich für die Boot-Partition. Diese muss natürlich mit entsprechender Inode Size angelegt werden. Dies wird wie folgt gemacht.
Achtung: Beim ausführen des nächsten Befehls gehen alle Daten verloren.
$ mke2fs -T ext3 -I 128 /dev/sdaN
Anschließend kann /boot auf diese Partition kopiert und die /etc/fstab angepasst werden. Nach diesen Änderungen konnte der grub wieder ohne Probleme installiert werden und dem Server geht es seither sehr gut in seiner neuen Umgebung. ;-)
Links
- Super Grub Disk (englisch)