Wie kann ein Dateisystem exakt unverändert kopiert werden?

Wie kann ein Dateisystem exakt unverändert kopiert werden?

Ich habe ein Dateisystem für ein Gerät, das ich programmiere und von dem ich eine exakte Kopie erstellen möchte. Idealerweise soll diese Kopie identisch mit dem Ordner sein, aus dem sie kopiert wurde. Ich habe versucht, dies mit cp -r cp -aund rsync -azvPzu erreichen. Jedes Ergebnis ergibt jedoch einen Ordner mit unterschiedlicher Größe (mit du -s), und letztendlich läuft mein Gerät zwar mit dem Originalordner, aber nicht mit dem, den ich kopiert habe.

  • Was wird weggelassen, was die von mir verwendeten Befehle nicht berücksichtigen?
  • Ist es möglich, beim Kopieren eines Dateisystems/Ordners alles identisch zu lassen? Wenn ja, wie gehe ich dabei vor?

PS: Ich habe eine ähnliche Frage gepostet aufPaketüberflussaber ich merkte schnell, dass ich es an der falschen Börse gefragt hatte


Bearbeiten: Dies ist möglicherweise nicht hilfreich, aber unabhängig davon, welche Methode ich verwende, führt das kopierte Verzeichnis auf der betreffenden Maschine immer zu einem Kernel Panic mit der folgenden Ausgabe.

VFS: Root-FS kann nicht über NFS gemountet werden, versuche es über Diskette. VFS: Root-Gerät „nfs“ oder unknown-block(2,0) kann nicht geöffnet werden. Bitte fügen Sie eine korrekte „root=“-Boot-Option an; hier sind die verfügbaren Partitionen: 1f00
64 mtdblock0 (Treiber?) 1f02 64 mtdblock2 (Treiber?) 1f04 2432 mtdblock4 (Treiber?) 1f05 128 mtdblock5 (Treiber?) 1f06 4352 mtdblock6 (Treiber?) 1f07 204928 mtdblock7 (Treiber?) 1f08 50304 mtdblock8 (Treiber?) 0800
8388608 sda-Treiber: sd Kernel-Panik – keine Synchronisierung: VFS: Root-FS kann auf unknown-block(2,0) nicht gemountet werden

Antwort1

Ich verwende im Allgemeinen eine der folgenden Alternativen:

  • rsync -aHAX(v für Ausführlichkeit hinzufügen) stellt sicher, dass beim Kopieren alle Linkstrukturen und X-Attribute im Zielordner erhalten bleiben. „Nicht vergessen“ abedeutet „Archivieren“ und bewahrt bereits Zeit, Eigentum und Berechtigungen.
  • Einfach tar cvf(nicht komprimieren, um Zeit zu sparen, sondern nur tarnen) ist das, was ich verwende, wenn das erste aus irgendeinem Grund nicht meinen Anforderungen entspricht und ich keine Zeit habe, aber ich versuche es immer mit dem ersten.

Um zu prüfen, ob alles so gelaufen ist, wie es sollte, können Sie diff -r <folder1> <folder2>bei Bedarf einen Nachlauf durchführen.

Antwort2

Wenn ich Ihre Antwort in den Kommentaren lese, klingt es, als würden Sie möglicherweise versuchen, den Stammordner zu kopieren („Mein Gerät startet nicht mit dem kopierten Verzeichnis“). In diesem Fall gibt es mehrere Dinge, die Sie tun sollten.

$ cd /
$ mkdir backups

$ tar -cvpf /backups/fullbackup.tar --directory=/ --exclude=proc --exclude=sys \
     --exclude=dev/pts --exclude=backups .

Nachdem Sie den Stammordner auf das neue System kopiert haben, müssen Sie Grub aktualisieren, bevor es bootet.

$ grub-install --recheck /dev/sdX (Where X is the partition number)
$ update-grub

Antwort3

Du könntest es versuchenFSArchiver. Es ist der Nachfolger des ähnlichen partimage, das mittlerweile nicht mehr gepflegt wird. Ich habe in der Vergangenheit sowohl partimage als auch FSArchiver verwendet und beide haben gut funktioniert. Soweit ich weiß, erstellen beide Kopien eines Dateisystems, das dem Original so nahe wie möglich kommt. Ich denke, FSArchiver ist etwas leistungsfähiger als partimage. Es funktioniert beispielsweise mit ext4, während partimage dies nicht tut. Siehedie FSArchiver/partimage Vergleichstabelle.

Antwort4

Es hängt ein bisschen davon ab, was Sie mit „identisch“ meinen.

  • In den meisten Fällen reicht es aus, einfach Folgendes zu tun rsync. Manchmal möchten Sie jedoch taralles in eine Datei packen und diese an einem anderen Ort extrahieren.
  • Wenn Sie einen Klon des gesamten Dateisystems wünschen, können Sie dddas gesamte Dateisystem selbst kopieren.

Wenn Sie über die Möglichkeit verfügen, Ihr Gerät zu debuggen, versuchen Sie herauszufinden, was genau das Problem ist, warum es derzeit nicht läuft.

verwandte Informationen