Sous Windows: est-il sûr de faire une robocopie afin de cloner le système?


16

Permettez-moi de commencer en donnant un peu de contexte. Sur les systèmes Linux, je compte souvent sur le fait que tant que je peux obtenir tous les fichiers d'un disque dur à un autre, et aussi longtemps que je corrige le chargeur de démarrage, je me retrouverai avec un identique, amorçable, entièrement système fonctionnel. La même chose fonctionne pour les sauvegardes et les restaurations (aucune sauvegarde spéciale de l'état du système requise, juste les fichiers) ... même MySQL est récupérable parfois même lorsqu'il n'était pas gelé au moment de la sauvegarde

Sous Windows, je n'ai jamais eu de chance avec le clonage du système en le faisant au niveau d'un fichier. J'ai toujours besoin d'un outil tel que VMWare Converter, Ghost, diXML etc. ils sont basés sur la prise de l'image du disque dans son ensemble. Au début, j'ai supposé que c'était principalement à cause de la façon spéciale / magique dont Windows fait son registre et je ne l'ai pas remis en question (cela a fonctionné). Jusqu'à aujourd'hui. J'ai réalisé que ce genre de pensée était stupide et qu'en réalité, Windows n'est qu'une collection de fichiers. Donc, comme test, j'ai pris un lecteur de serveur Windows 2003 hors ligne, j'ai copié les fichiers sur un disque dur vierge, rendu le lecteur actif et .. cela a parfaitement fonctionné!

Ou bien? Pourquoi ai-je cette peur irrationnelle qu'elle échoue simplement parce que ce n'est pas un clone textuel comme je m'y attendais avec Ghost? Devrais-je avoir peur? Pourquoi était-ce si facile? Les serveurs AD sont-ils différents? Y a-t-il des cas où cette méthode échouera?

Si la copie fichier par fichier est la voie à suivre, pourquoi est-ce que lorsque j'ai essayé de faire la même chose avec VSS (exposer le lecteur C: copié en tant que lecteur S:), la même approche a échoué. Plus précisément, j'ai obtenu un système de démarrage jusqu'à l'écran de connexion. Il a même accepté mon mot de passe, mais s'est immédiatement déconnecté de mon utilisateur sans erreur dans l'interface graphique. J'ai même essayé de fermer tous les services sauf ceux qui ne pouvaient pas être arrêtés avant de copier ... même résultat.

Au fait, j'utilise robocopy /E /SECpour toutes ces opérations de copie

Suis-je simplement à la recherche de problèmes en utilisant ces méthodes? Je sais que Ghost etc a fait ses preuves .. alors pourquoi réinventer la roue? ... Je comprends tout cela ... mais en tant que professionnel, je veux savoir pourquoi les choses fonctionnent comme elles le font. C'est pourquoi il est important pour moi de comprendre cela. (sans parler d'une rare possibilité d'avoir à faire une restauration à nu sur un système où je n'ai jamais eu de sauvegarde de l'état du système)


2
Résolution du cas particulier des contrôleurs de domaine: notez qu'il n'existe aucun moyen sûr de cloner un contrôleur de domaine, car cela gâche la réplication Active Directory. Je suis flou sur les détails, mais fondamentalement, chaque contrôleur de domaine a un identifiant unique qui est essentiel pour garder la séquence des changements AD cohérente. Si deux contrôleurs de domaine essaient d'utiliser le même identifiant, tout le système s'effondre dans un tas hurlant.
Harry Johnston

En outre, notez qu'il n'est pas sûr de promouvoir un serveur cloné en contrôleur de domaine. Si une instance de Windows va être un contrôleur de domaine, elle doit être installée via le programme d'installation de Windows. Le non-respect de cette précaution peut provoquer une variété de symptômes très étranges.
Harry Johnston

Réponses:


4

Les serveurs AD sont différents. Un contrôleur de domaine a une jonction d'annuaire sur le répertoire C: \ Windows \ SYSVOL \ sysvol qui pointe vers le répertoire C: \ Windows \ SYSVOL \ domain:

 Directory of C:\Windows\SYSVOL\sysvol

04/13/2011  01:22 PM    <DIR>          .
04/13/2011  01:22 PM    <DIR>          ..
04/13/2011  01:22 PM    <JUNCTION>     domainName.acme.com [C:\Windows\SYSVOL\domain]

Presque tout type d'opération de copie manuelle entraînerait un SYSVOL qui ne se met pas en ligne en raison d'une jonction bouchée. Bien que pour être précis, cela peut se produire dans des scénarios de restauration normaux, il est donc toujours conseillé de vérifier et de recréer la jonction SYSVOL si nécessaire.

En parlant de liens, tout système Windows 2008 / Vista / Windows 7 peut avoir des milliers de liens dans le dossier% SYSTEMROOT% \ System32 pour les binaires. Ces cibles de liens résident réellement dans le dossier% SYSTEMROOT% \ Winsxs.

Je n'ai pas confirmé cela, mais Robocopy peut copier la cible au lieu du lien. Ce qui expliquerait le switch / SL :: "copier les liens symboliques contre la cible".

Il est possible que le système semble fonctionner correctement, mais que se passerait-il quand il est temps d'effectuer une activité de mise à jour du système, qui doit conserver les fichiers où résident les cibles de lien? Peut-être que cela les recréerait, mais ce serait quelque chose qui mérite d'être testé.

Si vous êtes curieux de savoir comment ces liens sont transférés sur le disque copié, vous pouvez prendre un instantané avant et après, puis comparer les fichiers à l'aide de Windiff ou Notepad ++.

Vous pouvez utiliser la commande suivante pour obtenir une sortie des points de jonction sur un lecteur:

dir C:\ /aL /s  >> junctions.txt  

Vous pouvez utiliser le script suivant dans un fichier pour obtenir une sortie des liens pour un emplacement (par exemple, systemroot):

for /r %systemroot% %%i in (*.exe,*.dll) do (
  echo Checking file: %%i >> file.txt
  fsutil.exe hardlink list "%%i" >> file.txt 2>&1
  echo . >> file.txt
)

Tu as raison. Les points de jonction sont le principal problème. De faire plus de recherches à ce sujet, ce ne sont pas seulement les serveurs AD qui utilisent des jonctions. Windows 7 les utilise également beaucoup. Robocopy ne sait pas copier les jonctions "Robocopy peut rencontrer des jonctions ... Il peut s'agir de points de montage de volume créés à l'aide de la commande MOUNTVOL ou de liens de répertoire créés à l'aide de la commande LINKD. Robocopy gère les jonctions dans la source en créant un répertoire normal de le même nom dans la destination, car il peut ne pas être possible de répliquer la jonction dans la destination. " ... Existe-t-il un outil de copie de fichiers?
ixnaum

ici plus de détails sur robocopy ne pas copier les jonctions sous Windows 7. FastCopy peut copier soi - disant jonctions ... va essayer suivante
ixnaum

1
Un autre problème potentiel, Windows 7 (probablement en 2008 également) a une jonction circulaire dans chaque dossier de profil utilisateur sous C: \ users \ <user> \ AppData \ Local \ pour "Application Data". Si vous exécutez Robocopy à l'aide d'un compte avec le privilège de sauvegarde ou modifiez les autorisations de dossier, il est possible d'entrer dans une boucle infinie sur cette jonction.
Greg Askew

7

J'ai effectué des clones de niveau fichier (à l'aide de l' ntfscloneutilitaire Linux NTFS Tools ) de Windows 2000 et Windows XP. Je n'ai pas essayé ntfscloneavec Windows Vista ou des versions plus récentes mais je ne m'attendrais à aucun problème. J'utilise l'outil de clonage au niveau des fichiers de Microsoft ImageX, assez régulièrement avec Windows XP et Windows 7 et je n'ai aucun problème non plus. Je ne clone généralement pas les ordinateurs serveurs, mais je m'attends ImageXà ce que cela fonctionne correctement avec les systèmes d'exploitation du serveur.

La copie d'un système de fichiers en direct sera toujours un défi. Le cliché instantané de volume est censé exposer un système de fichiers au repos, mais je pense que vous tentez toujours votre chance. (Je ne peux pas vous dire ce qui s'est passé avec votre volume cloné VSS qui ne vous permettrait pas de vous connecter. Sans pouvoir voir le clone en échec, c'est vraiment, vraiment difficile à diagnostiquer). Je vous conseille toujours de cloner des systèmes hors ligne, si possible.

En supposant que vous copiez un système de fichiers complètement au repos et capable d'obtenir tous les fichiers, vos seules préoccupations sont:

  • Avoir un bon enregistrement de démarrage principal (MBR) et un enregistrement de démarrage de partition (PBR)
  • Avoir un bon chargeur de démarrage

Microsoft bootsect.exepeut être utilisé pour écrire de bons MBR et PBR pour les anciennes versions NTLDR de Windows NT (NT 3.5 à Windows Server 2003) et les versions basées sur BOOTMGR (Windows Vista et plus récent). Votre clone Windows 2003 doit avoir été sur un disque qui avait un PBR au format NT 5.2 (depuis son démarrage).

Le chargeur de démarrage NTLDR sera copié dans une copie de niveau fichier, ce qui explique pourquoi votre copie Windows 2003 a fonctionné sans problème. Le chargeur de démarrage BOOTMGR peut être installé à l'aide de l' bcdboot.exeutilitaire (inclus sur le support d'installation Windows basé sur BOOTMGR).

Je ne clonerais pas les ordinateurs Active Directory Domain Controller (DC) de cette façon. Vous ne voulez pas démarrer un clone d'un contrôleur de domaine sur le même réseau avec le contrôleur de domaine d'origine, car il s'agit d'un scénario totalement non pris en charge et probablement imprévu.

Edit (maintenant que j'ai quelques minutes sur un vrai ordinateur):

Les outils que j'ai décrits ci-dessus ImageXet ntfsclonesont des outils de clonage au niveau du système de fichiers (tout comme Ghost s'il n'est pas exécuté en mode secteur brut). Ils interprètent le système de fichiers NTFS plutôt que de copier secteur par secteur. Ces deux outils n'auront pas de problèmes avec les points de jonction ou les liens durs comme ROBOCOPY(sans l' /SLargument) et XCOPY(avec n'importe quel argument).

En général, Microsoft ne prévoit pas que vous effectuiez un clonage de fichiers basé sur la copie de systèmes. Ouais, tu peux le faire, mais si ça casse tu dois garder les morceaux.


Mais ntfsclone et ImageX sont basés sur des images un peu comme Ghost ... qu'en est-il de la copie fichier par fichier?
ixnaum

1
ImageX ne génère pas de copie du disque au niveau du bloc, il est définitivement basé sur un fichier. (Il génère, bien sûr, un "fichier image" mais cela ressemble plus à un fichier zip qu'à, disons, un iso.) ImageX est la seule et unique façon de le faire.
Harry Johnston

4

Le problème avec la copie d'un système de fichiers en direct VSSest que l'instance Windows existante aura probablement la signature du nouveau disque déjà dans son registre. Lorsque vous démarrez la copie, la signature de la partition à partir de laquelle elle démarre est mise en correspondance avec le registre et montée en tant que D:ou E:, plutôt que ce C:qu'elle devrait être.

Vous pouvez trier cela en montant le fichier de registre et en le mettant à jour. HKLM\SYSTEM\MountedDevices Faites ceci après la copie mais avant de redémarrer. Vous souhaitez simplement supprimer l' \DosDevices\C:entrée et modifier l'entrée de votre nouveau lecteur en C:.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.