Um dies richtig zu machen, müssen Sie:
- Erweitern Sie zuerst die
.img
Datei.
- Als nächstes erweitern Sie das Dateisystem innerhalb.
Der beste Weg, um das erste zu tun, ist mit dd
. Aus irgendeinem Grund schreiben manche Leute der Funktionsweise eine Art Geheimnis zu dd
, aber es gibt wirklich keine. So fügen Sie beispielsweise ein Loch an das Ende Ihrer .img
Datei an:
dd bs=1kx1k seek=100 of=.img </dev/null
An jedem POSIX - System , das wird gestutzt , die Datei zu 100MiBs. Auf einem GNU-System kann das 1kx1k
Bit auf nur gekürzt werden M
. dd
Sucht 100 MB in der Datei, trifft beim ersten Lesen auf EOF und schließt die Datei. Es ist eine einzelne Aktion und erfordert keine Lesevorgänge (über die erste leere hinaus) oder Schreibvorgänge - es ist nahezu atomar.
Wenn die Datei zuvor 50 MB groß war, werden ihr jetzt 50 MB mehr zugewiesen. Wenn die Datei zuvor 150 MB groß war, werden die letzten 50 MB vom Schwanz abgeschnitten. Auf einem Dateisystem , das versteht Sparse - Dateien, das angehängte Datei Loch wird keinen Speicherplatz verwenden, wirklich, und wird nur verwendet werden, was notwendig ist , wie Sie es füllen.
Andere Möglichkeiten, dasselbe auf einigen Systemen zu tun:
fallocate -l100M .img
truncate -s100M .img
... beide Befehle werden genau das Gleiche tun dd
. Ich empfehle, dd
da keines dieser Tools portabel ist, wenn dd
das Verhalten POSIX-spezifiziert ist. Wenn Sie erst einmal gelernt haben, wie Sie den Festplatten-Zerstörer richtig verwenden, wird es keine Festplatte mehr wagen , sich Ihnen in den Weg zu stellen.
Wenn Sie lediglich etwas hinzufügen, .img
können Sie die oben genannten Schritte ausführen, unabhängig davon, ob es bereitgestellt ist oder nicht (obwohl .img
es möglicherweise nicht wie erwartet funktioniert, wenn Sie einen Teil eines bereitgestellten Geräts entfernen) , müssen Sie jedoch höchstwahrscheinlich umount
.img
zuerst die Größe ändern Bestandteil des Dateisystems, und das könnte auch so sein. Sie müssen -d
das Loop-Gerät jedoch nicht zerstören.
Wie Sie mit der zweiten Sache umgehen, hängt davon ab, ob sie .img
partitioniert ist oder nicht. Wenn dies nicht der Fall ist, wie ich aufgrund Ihrer Kommentare an anderer Stelle vermute, müssen Sie die fs nur nach ihrem Typ adressieren. Für eine ext[234]
.img
Datei sollten Sie verwenden resize2fs
und damit fertig sein. Für andere sollten Sie sich die relevanten User-Space-Tools und deren man
Seiten ansehen .
Wenn .img
es partitioniert ist, kann es komplizierter sein. In solchen Fällen hängt es davon ab, welche Art von Partitionstabelle verwendet wird (z. B. GPT vs MBR vs Hybrid-MBR) , ob es sich um die letzte Partition in der Partitionstabelle der Datei handelt und vieles mehr. Ich zögere, hier .img
Einzelheiten ohne weitere Informationen zu erfahren : Wenn Sie Ratschläge zum Umgang mit einer Partitionierung benötigen, teilen Sie mir dies bitte mit, und ich werde Ihnen anbieten, was ich kann.