Festplatten-Images von virtuellen Maschinen enthalten normalerweise eine Partitionstabelle, die ein oder mehrere Dateisysteme enthält. Das Ändern der Größe ist etwas schmerzhaft, da Sie die Partitionstabelle sorgfältig neu schreiben müssen, bevor Sie die Größe der Partition ändern können. In einer Linux-VM kann die geänderte Partitionstabelle nicht sofort eingelesen werden, sodass Sie einen weiteren Neustart der VM durchführen müssen.
Ich würde es begrüßen, wenn das Disk-Image das Dateisystem direkt und ohne Partitionen enthält. Dies würde eine einfache Größenänderung sowohl innerhalb als auch außerhalb der VM ermöglichen. Bei einer solchen Installation ist der Grub-Bootloader jedoch nicht mehr so zuverlässig, da er über eine fest codierte Blockposition auf seine Stage2 zeigen muss, wodurch die VM alle paar Monate nicht mehr bootfähig ist, wenn das Dateisystem Daten verschiebt. (Bei einer DOS-Partitionstabelle wird der nicht zuordenbare Speicherplatz zwischen MBR und der ersten Partition verwendet, um Stage2 zu speichern. Bei anderen Partitionstabellen erstellen Sie eine separate Bootloader-Partition für diese Partition.)
Gibt es einen Weg, dies zu umgehen?
Wie sollte ich ein VM-Image organisieren, damit die Größe so einfach wie möglich geändert werden kann?
Erste Ideen sind:
Verwenden Sie zwei Festplatten-Images pro VM, eine Festplatte mit fester Größe nur für den Bootloader (MBR + Stufe 2) und eine zweite Festplatte, die direkt das Dateisystem enthält.
Verwenden eines anderen Bootloaders. Aber haben LILO und Syslinux nicht das gleiche Problem? Die ersten 512 Bytes einer Festplatte sind einfach zu klein, um einen Dateisystemtreiber aufzunehmen.
Gibt es einen anderen, vielleicht einfacheren Weg, dies zu erreichen?