Wie ändere ich die Größe einer .bin-Datei für Linux-Dateisystemdaten?


7

Ich habe eine 2-MB-Datei: root.bin, das ist ein Linux Rev. 1.0 ext2-Dateisystem, und ich möchte es erweitern, damit ich mehr Dateien darin ablegen kann, aber es ändert nicht nur die Größe, wie ich es mir vorgestellt habe. Wie ändere ich die Größe, vorzugsweise die Dateien, auf eine bestimmte Größe?


Ist Ihre spezifische Verwirrung darüber, dass Sie die Größe der Datei erhöht haben, das darin enthaltene Dateisystem sich jedoch anscheinend nicht geändert hat?
Carcer

Antworten:


10

Wir werden versuchen, Ihre root.binDatei mit zwei MB auf 12 MB zu verkleinern, um die Schritte zu demonstrieren.


Erstellen Sie eine Kopie Ihrer Datei (nur für Sicherungszwecke):

cp root.bin 12mb.bin

Führen Sie diesen Befehl aus, um der Dateigröße 10 MB hinzuzufügen:

dd if=/dev/zero of=12mb.bin bs=1MiB count=10 conv=notrunc oflag=append

Jetzt ist 12mb.bin nicht mehr 2M, sondern 12M.

Lauf:

e2fsck -f 12mb.bin

Um das Dateisystem in der Datei zu überprüfen, führen Sie Folgendes aus:

resize2fs 12mb.bin

Erledigt. irgendwo montieren:

sudo mount 12mb.bin /mnt

Überprüfen Sie die Größe:

df -h --output=size /mnt/
Size
 12M

Und die Existenz von Dateien:

ls /mnt

Wir können auch verwenden losetup, um mit der Datei wie ein Blockgerät zu handeln:

sudo losetup -f 12mb.bin

dann:

sudo losetup -l | grep -i "12mb.bin" | awk '{print $1}'
/dev/loop0

und wir können die Größe ändern /dev/loop0.


Der ddBefehl überschreibt nicht den ursprünglichen Inhalt
George Udosen

1
@ GeorgeUdosen Nein, tut es nicht. wir benutzen notruncund append. und es sollte nicht richtig sein?
Ravexina

Ihr Recht, tut mir leid, ich greife vom Handy aus zu. Diese Optionen haben fast nicht gedacht, dass Sie einen esoterischen Code verwenden. Immer schön, Ihrer Antwort zu folgen, immer ein
lehrreicher

1
Anstatt mit ddder Datei zu erweitern, warum nicht einfach zu verwenden truncate?
Carcer

@Carcer Das ist auch eine gute Option, ich habe gerade verwendet dd...
Ravexina
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.