Festplatten-Image verkleinern
Veröffentlicht: 01.11.2017Zunächst wird die Image-Datei (*.img) gemäß dieses Blogeintrags als LoopBack-Device angemeldet. Anschließend kann man das Image mit dem folgenden Befehl verkleinern. Es wird die grafische Benutzeroberfläche von gparted aufgerufen.
sudo gparted /dev/loop0
Dabei schafft man möglichst viel Plattenplatz am Ende des Images (d.h. der rechten Seite in der Grafik). Anschließend kann das LoopBack-Device abgemeldet werden:
sudo losetup -d /dev/loop0
Wie man sehen kann, ist die Größe der Image-Datei (*.img) auf der Festplatte noch immer gleich. Da in den vorherigen Schritten ja freier Speicher am Ende des Images geschaffen wurde, kann man diesen Speicherbereich nun abschneiden.
Zunächst ermittelt man die Größe der Partition in dem Image:
fdisk -l myimage.img
In der Ausgabe kann man sehen, wie groß die Partition ist. In der Spalte End wird die Zahl des letzten Blocks angegeben und die Blockgröße wird weiter oben in der Ausgabe als sector-size angegeben (in der Regel 512 Bytes). Nehmen wir an, dass der letzte Block 12345 ist, kann man nun die notwendige Größe des Images bestimmen. Da die Zählung der Blöcke bei Null beginnt, muss noch ein Block hinzugezählt werden. Der Befehlt truncate schneidet nun die img-Datei zu:
truncate --size=$[(12345+1)*512] myimage.img