Ich muss ein gesamtes Linux-Root-Dateisystem von einer fehlerhaften Festplatte auf einen anderen Computer mit einer offenen, verfügbaren Partition übertragen. Ich habe ziemlich sicher , dass dies beinhaltet tar
und ssh
, aber ich kann mich nicht genau erinnern , wie dies zu tun.
Wahrscheinlich benutze ich eine Live-CD auf dem neuen / Ziel-Host, um so etwas auszuführen :
ssh user@failingharddrivehost "some tar command | piped into something else"
ssh user@failingsys "tar cfz - /" > oldsys.tar.gz
Antworten:
Verwenden Sie rsync. Vom neuen Host können Sie verwenden
rsync -avP --numeric-ids --exclude='/dev' --exclude='/proc' --exclude='/sys' root@failedharddrivehost:/ /path/to/destination/
Ich würde nicht versuchen, etwas wie Teer mit einzubeziehen, da es wahrscheinlich nicht funktioniert, wenn defekte Dateien vorhanden sind.
quelle
Wenn sich beide Computer im selben (sicheren) LAN befinden, empfehle ich einen anderen Ansatz
netcat
. Dies ist normalerweise viel schneller, da die Daten nicht verschlüsselt werden.Dies öffnet einen Abhörport 1234 auf dem guten Computer
netcat -l -p 1234
und leitet die eingehenden Daten weiter, um sietar
zu extrahieren (wobei die Zeit und die Berechtigungen erhalten bleiben). Der fehlerhafte Host sendet die Daten an diesen Port, ebenfalls mittar
undnetcat
. Ich habe einige--exclude
Parameter eingefügt, da/proc
und/sys
sind virtuelle Dateisysteme und daher auf dem neuen Host unbrauchbar. (Insbesondere die Datei, die Ihren RAM in (/proc/kcore
) darstellt, fügt eine unnötige Datenmenge hinzu.)Sie sollten jedoch (auch) in Betracht ziehen,
dd
die Partitionen des fehlerhaften Laufwerks zu sichern:wo musste man sich
/dev/sda1
auf das richtige gerät einstellen. Tun Sie dies auch mit anderen Partitionen auf dem fehlerhaften Laufwerk.Mit diesem Dump sind Sie sicher, dass Sie keine wichtigen Metadaten (wie ACLs) verpasst haben, die
tar
nicht erfasst werden.quelle
Warum kombinierst du mit Directory Exclusive? Ist es nicht besser, dasselbe Gerät in ein anderes Verzeichnis zu laden? moderne kerne erlauben diesen weg. Sie haben zum Beispiel gemountet
/ dev / sda1 as / then do: mkdir / CLEANROOT mount / dev / sda1 / CLEANROOT
Danach haben Sie: / dev / sda1 als / / dev / sda1 als / CLEANROOT
Dies ist dasselbe Dateisystem, das an zwei Stellen sichtbar ist, aber / CLEANROOT hat keine zusätzlichen Mounts. Dann können Sie tar oder rsync / CLEANROOT ohne Ausschlüsse ausführen, anstatt / with exclusions zu kopieren.
Natürlich müssen Sie andere Datenpartitionen kopieren, wenn Sie welche haben.
Das Kopieren der Partition ist der erste Schritt für die Serverwiederherstellung. Eine andere Möglichkeit besteht darin, Boot-Sektoren neu zu generieren, da das System sonst nicht von einer kopierten Festplatte bootet. Nützlich ist der Rettungsmodus, wenn Sie von einer Installations- / Rettungs-CD oder einem pendrive booten.
quelle
Haben Sie physischen Zugriff auf den fehlerhaften Host?
Wenn ja, booten Sie von einer Live-CD. Dann benutze:
Die Syntax auszuschließen ist:
tar --exclude='/dev'
.rsync -zvr --exclude /dev/ / destination_computer_name_or_ip
nc -l 4242 | gunzip | cat > my_full_disk_backup_of_PC_named_foo
dd if=/dev/sda of=- bs=1M | gzip | nc -p 4242 name_of_the_destination
Wenn Sie nicht von einer Live-CD booten können, bleiben einige der oben genannten Lösungen gleich, aber:
Z.B
tar --exclude='/dev' --exclude='/proc'
quelle
#mount /dev/sda1 /mnt/fedora
mount: unknown filesystem type 'LVM2_member'
Hier finden Sie eine Beschreibung zum Kopieren von Dateien mit
tar
undssh
. Grundsätzlich würden Sie eine der folgenden Aktionen ausführen, je nachdem, ob Sie local -> remote oder remote -> local kopieren möchten:quelle
Sie sollten in Betracht ziehen, rsync zu verwenden
Der folgende Befehl setzt zwei Dinge voraus:
rsync / new_partition:/wherever/you/want/
Hinweis: Das abschließende / ist wichtig, da Ihre Dateien sonst in einer Verzeichnisebene darüber abgelegt werden
quelle
-a
Parameter (und möglicherweise den-A
) verwenden, da er die Zeiten, den Besitz, die Symlinks (und möglicherweise die ACLs) usw. und den-e ssh
Parameter beibehält, da die Daten auf einen anderen Computer übertragen werden sollen. Sorsync -aAv -e ssh root@failingharddrivehost:/ /good_computer/newpartition_mountpoint