Dienstag, November 22, 2016

Kein Spass mit tar

Da versuche ich also, eine virtuelle Maschine aus Dateien in einem Verzeichnis auf einer anderen Maschine wiederherzustellen. Ich habe eine Live-CD in meiner neuen Maschine, partitioniere und formatiere die Platte, mounte sie, und ... ja, jetzt gehts los...

Auf der sendenden Seite mache ich ein tar cvz . | netcat 1.2.3.4 12345, auf der empfangenden Seite mache ich ein netctat -l -p 12345 | tar xz und kopiere so alle Dateien auf die neue Maschine rüber. Leider beendet sich der Stream nicht richtig, und nachdem alle Dateien kopiert wurden, muss ich noch mit Ctrl-C das netcat abbrechen.
Jetzt noch schnell den Bootloader einrichten, und ich bin fertig! Dazu kann ich ja einfach in einem root-Jail update-grub und install-grub verwenden!

chroot /mnt /bin/bash 
permission denied

Das kann ja wohl nicht wahr sein!

Stellt sich raus, dass zB /bin/systemd eine leere Datei ist auf meinem neuen System. Auf meinem alten ist es ein Symlink nach /lib/systemd/systemd. Wieso ist es eine leere Datei? Da sind noch mehr leere Dateien... Vielleicht auch Libraries? Ich suche nicht alles ab. Nach viel googlen finde ich raus, es ist wie folgt...:

tar entpackt Symlinks aus einem merkwürdigen Sicherheitsgrund nicht direkt, sondern erstellt Platzhalterdateien, die in einem zweiten Lauf erst (wenn sich die Platzhalterdateien nicht verändert haben) durch Symlinks ersetzt werden. Da der mein Netzwerkstream sich nicht richtig beendete, musste ich tar und netcat ja mit Ctrl-C abbrechen, und da ich mir keine Gedanken darüber machte, machte ich das auf der empfangenden Seite. Damit habe ich aber verhindert, dass dieser zweite Lauf durchlaufen konnte, und behielt leere Dateien. Meine Kopie war nicht in Ordnung, chroot funktionierte nicht.
Als ich aber auf der sendenden Seite mit Ctrl-C abbrach, konnte sich tar auf der empfangenden Seite korrekt beenden, seinen zweiten Lauf machen (den man nicht mitbekommt. Es beendet sich einfach), und zack! meine Kopie ist in Ordnung!

Danach funktionierte alles. Mal wieder zwei Stunden im weg mit unvorhersehbarem!

Keine Kommentare: