Je dois transférer un système de fichiers racine Linux complet d'un disque dur défaillant sur un autre ordinateur doté d'une partition ouverte et disponible. Je suis assez sûr que cela implique tar
et ssh
, mais je ne me souviens pas exactement comment faire cela.
J'imagine probablement en utilisant un cd en direct sur le nouvel hôte / cible pour exécuter quelque chose comme ceci:
ssh user@failingharddrivehost "some tar command | piped into something else"
ssh user@failingsys "tar cfz - /" > oldsys.tar.gz
Réponses:
Utilisez rsync. À partir du nouvel hôte, vous pouvez utiliser
rsync -avP --numeric-ids --exclude='/dev' --exclude='/proc' --exclude='/sys' root@failedharddrivehost:/ /path/to/destination/
Je n'essaierais pas d'impliquer quelque chose comme tar car cela ne fonctionnerait probablement pas lorsqu'il y a des fichiers cassés.
la source
Si les deux ordinateurs sont sur le même réseau local (sécurisé), je recommande une approche différente en utilisant
netcat
. Ceci est généralement beaucoup plus rapide car il ne crypte pas les données.qui ouvre un port d’écoute 1234 sur la bonne machine
netcat -l -p 1234
et envoie les données entrantestar
à extraire (en préservant mtime et les permissions). Le mauvais hôte envoie les données à ce port, en utilisant égalementtar
etnetcat
. J'ai inclus quelques--exclude
paramètres, comme/proc
et/sys
sont des systèmes de fichiers virtuels et donc inutiles sur le nouvel hôte. (surtout le fichier représentant votre RAM en (/proc/kcore
) ajoutera une quantité inutile de données).Cependant, vous devriez (aussi) envisager de faire un
dd
dump des partitions du lecteur défaillant:où vous deviez adopter
/dev/sda1
le bon appareil. Faites-le également avec d'autres partitions du lecteur défaillant.Avec ce vidage, vous êtes certain de ne pas manquer de métadonnées importantes (telles que les ACL) qui
tar
ne seront pas capturées.la source
Pourquoi combinez-vous avec l'annuaire? N'est-il pas préférable de monter le même appareil dans un autre répertoire? les noyaux modernes le permettent. par exemple, vous avez monté
/ dev / sda1 comme / alors faites: mkdir / CLEANROOT mount / dev / sda1 / CLEANROOT
après cela, vous avez: / dev / sda1 sous / / dev / sda1 sous / CLEANROOT
C'est le même système de fichiers visible à deux endroits, mais / CLEANROOT ne possède pas de montages additifs. Ensuite, vous pouvez tar ou rsync / CLEANROOT sans aucune exclusion à la place de la copie / avec des exclusions.
Bien sûr, vous devez copier d'autres partitions de données lorsque vous en avez.
La copie de la partition est la première étape de la récupération du serveur. un autre est régénérer les secteurs de démarrage, sinon le système ne démarrera pas à partir du disque copié. Utile est le mode de secours lorsque vous démarrez à partir d’un CD d’installation / de secours ou d’une clé USB.
la source
Avez-vous un accès physique à l'hôte défaillant?
Si vous le faites, démarrez à partir d'un live CD. Alors utilisez:
La syntaxe est exclue:
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
Si vous ne pouvez pas démarrer à partir d'un CD live, la plupart des solutions ci-dessus resteront inchangées, mais:
Par exemple
tar --exclude='/dev' --exclude='/proc'
la source
#mount /dev/sda1 /mnt/fedora
mount: unknown filesystem type 'LVM2_member'
Voici une description de la procédure à suivre pour copier des fichiers à l’aide de
tar
etssh
. Fondamentalement, vous exécuterez l’un des programmes suivants, selon que vous souhaitiez copier local -> distant ou distant -> local:la source
vous devriez envisager d'utiliser rsync
la commande suivante suppose 2 choses:
rsync / new_partition:/wherever/you/want/
Remarque: le / final est important, sinon vos fichiers se retrouveront dans un niveau de répertoire supérieur
la source
-a
paramètre (et peut-être le-A
), car il préserve les temps, la propriété, les liens symboliques (et peut-être les ACL), etc. et le-e ssh
paramètre, car les données doivent être transférées sur un autre ordinateur. Sorsync -aAv -e ssh root@failingharddrivehost:/ /good_computer/newpartition_mountpoint