Réparer un autre windows depuis le disque dur

Fermé
Hip - 1 mai 2010 à 01:16
 Hip - 20 mai 2010 à 03:32
Hello,

Je sais pas comment faire, je veux réparer une install windows xp (part 3 sur le disque maitre avec la lettre L) depuis une autre install windows XP (part 1 sur le disque maitre avec la lettre C).

Symptômes : Le logo du logon Windows apparait et reste figé (plus aucune activité de chargement depuis le disque dur au bout de 5 minutes) et je ne vois pas les comptes utilisateurs pour ouvrir une session, même en mode sans échec ! Tout fonctionne sinon : Les touches souris avec le beep, les touches Windows + u (clavier virtuel) mais l'affichage des comptes utilisateurs ne marche pas, même avec Ctrl + Alt + Suppr.

Comment lancer correctement une réparation (sur l'install qui a un problème depuis une autre install) depuis l'image dézippé du cd xp sur le disque dur ou quoi modifier dans le registre de l'installation en chargeant une ruche dans le registre de l'installation qui fonctionne (et expliquez comment faire en pratique, pour pas que je me plante, merci et svp).

Je veux bien récupérer un fichier (de registre .dat par exemple) sur le web pour récupérer le fonctionnement ; c'est pourquoi je vous donne la lettre et la position de la partition.

A voir également:

2 réponses

Hello, merci pour l'aide ...

J'ai réussi à réparer la partition avec Windows XP vu avec la lettre "L:" depuis l'image cd sur le disque dur et plus exactement en lançant winnt32.exe depuis le dossier i386, mais là, j'en suis revenu au même point, simplement parce que la partition quand xp est lancé, au lieu d'être sur "L:" (3ème partitions sur le disque dur primaire) est "Q:" = ce qui est pour moi, xp et mon pc un problème de lettre de partition.

Pour moi, suggestion pour mon problème supplémentaire : Il faut que j'utilise peut-être l'outil gratuit dans la version démo de partition magic qui permet de modifier les clé de registre quand l'on change la place des systèmes ; oui, car je veux et j'ai essayé à la main de le faire mais y'a trop de clé. Pourtant, une bonne partie des clé était déjà avec la bonne lettre "L:".

Pour tous, procédure pour faire la réparation de xp depuis le disque dur : Alors, lancez setup.exe ou winnt32.exe depuis un autre Windows (2000, 98SE, XP) sur le même pc puis choisissez de faire une nouvelle installation. Lancez l'un des 2 fichiers depuis l'image de cd de xp sur votre disque dur ou simplement depuis le BON dossier "i386" sur votre disque dur.

Faites les petits réglages en prenant soin de cocher la case qui fait que vous pouvez choisir la partition et le nom du dossier d'installation (Windows par défaut) et entrez la clé de produit ; puis attendez la copie des fichiers (faut un peu de place) et laissez redémarrer le pc.

Appuyez à la fin de la copie des fichiers sur la touche 'Echap' pour redémarrer vous-même le pc en fermant Windows (quand c'est affiché que vous pouvez le faire, là où il y a la barre de progression) = Redémarrez tout de suite ou éteignez le pc.

Le pc redémarre puis l'installation démarre. Vous pouvez installer les pilotes SATA (Touche F6). Au premier menu (installer, "R" ou quitter), ne choisissez pas le premier "R" car c'est la console de récupération de XP qui se lance, mais appuyez sur entrée pour installer Windows.

Choisissez cette fois-ci le "R" (appuyez sur la touche "r") au 2ème menu APRÈS AVOIR CHOISI LA PARTITION À RÉPARER (utilisez les flèches haut et bas), puis patientez. Si Windows XP vous dit qu'il a réparé vos disques durs = F3 pour redémarré comme indiqué sur l'écran ET REFAITE TOUT jusque ici.

Maintenant la réparation par installation par dessus doit commencer et aboutir :-)

Note : il se peut que ça coince vraiment, (donc éteignez en force et rallumez le pc) mais pas pour la partie "Fin de l'installation" qui peut être très longue et qui peut sembler bizarre car rien ne bouge = aucun voyant d'activité de disque dur allumé ou clignotant et pas de bruit venant du disque dur. Et c'est pas vraiment la fin de l'installation ... même si Microsoft l'appel comme ça ; vous verrez bien.

*** Ensuite, reste comme moi à faire les réparations supplémentaires si c'est nécessaire (mais faut s'en apercevoir à temps).
1
Ça fonctionne, salut !

Il faut faire une deuxième réparation ... mais c'est pas obligatoire.

J'ai réparé et j'ai changé dans la foulée la lettre d'une autre partition contenant aussi une installation de Windows XP = la première partition ntfs qui avait la lettre c sur le disque esclave (ide comme le disque maitre mais partition c en fat) ; maintenant, elle a la lettre N quand je lance le Windows. Heu la lettre c sur un disque esclave, vous vous demandez ? Simple: Au boot du pc j'appuis sur la touche Echap et un menu me permet de booter sur le disque esclave qui bien sûr contient un mbr et pour pas m'embêter avec une install et par sécurité (= sauvegarde de l'install d'origine), j'avais cloné la partition du disque maitre sur le disque esclave.

Faites la réparation après avoir modifié (réparé) 2 clés importantes du registre XP qui gèrent la lettre qui est utilisé pour la partition système (particulièrement quand le dossier WINDOWS n'est pas par défaut sur le disque avec la lettre C).

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"Userinit"="userinit.exe,C:\\WINDOWS\\system32\\userinit.exe,"



CI-DESSUS, dans le code : N'oubliez pas la virgule ! Là, il y a la lettre C mais mettez la lettre que devra avoir votre partition contenant le dossier WINDOWS. Le nom du dossier SANS le chemin permet de débloquer Windows XP au démarrage pour qu'il puisse démarrer une session et afficher le bureau. VOUS N'ÊTES PAS OBLIGEZ DE METTRE USERNITE.EXE AVEC LE CHEMIN, SEUL LE PREMIER PARAMÈTRE COMPTE. (Notez bien que par défaut, le chemin complet est présent quand XP est installé correctement !)

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"Userinit"="userinit.exe,"



Vous devez, avec le gestionnaire de disque dans Windows XP, après une première réparation de Windows XP qui vous permet d'utiliser et d'afficher le bureau placez et modifier correctement toutes les lettres de partitions :

- Ne mettez pas car vous ne le pouvez pas (...) la bonne lettre à la partition où il y a Windows XP ; le Windows que vous êtes en train d'utiliser et de réparer.

- Ne mettez pas non plus TOUS DE SUITE les lettres pour les partitions qui sont utilisées pas le système pour certains programmes et qui pointent vers les partitions en question ; vous mettrez la bonne lettre quand les programmes seront déplacés ou quand le registre de Windows XP sera réparé un minimum (la bonne lettre = car vous avez mis peut-être une lettre provisoire).

Avant de modifier la clé permettant de changer la lettre de la partition où Windows se trouve, préparez ce qu'il vous faut pour lancer une nouvelle réparation de Windows XP (la deuxième), CAR VOUS NE POURREZ PAS OUVRIR DE SESSION, les ruches utilisateur du registre n'étant plus sur la bonne partition puisque l'on va changer la lettre (à moins de changer d'autres clé tous de suite mais j'ai pas trouvé pour l'instant) :

Clé: HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices = Valeur: \DosDevices\C: = Donnée: De type REG_BINARY contenant un identifiant (je ne sais pas le décoder)


NE CHANGEZ LA LETTRE QUE SI VOUS ÊTES SÛR DE VOUS ET NE CHANGEZ QUE LA LETTRE DE LA PARTITION OÙ IL Y A LE WINDOWS XP EN COURS D'UTILISATION. Vérifiez avec le gestionnaire de disques que la bonne lettre est non-utilisée ; 1 SEULE LETTRE = PAS DE DOUBLE valeur, comme par exemple avec la lettre "C": \DosDevices\C: ! Vous n'avez qu'une lettre à modifier à la main pas deux ; pour les autres modifications, avant et après, utilisez le gestionnaire de disques.

Note : Si vous avez plusieurs installation de Windows, faites en sorte que toutes les partitions aient la même lettre quelque soit le système Windows lancé.

REMPLACEMENT ET RECHERCHE DE TOUT LES LIENS DANS LE REGISTRE Windows XP : J'ai eu une erreur pour tester la suppression d'une clé (car j'ai pas bien confiance) : list index out of bound (256) = Avec ce logiciel que j'ai cherché et trouvé (Mais je ne m'en suis pas encore servi, du moins pas pour le sujet qui nous concerne car j'ai fais le gros du travail à la main (= (re)mettre les bonnes lettres), ou avec ccleaner = suppression des clés avec sauvegarde de restauration, modification du (très gros peut-être) fichier reg avec Notepad++ (car le bloc-notes gère mal les gros fichiers), puis fusion avec le registre) : Remplacer regedit avec Registrar Lite : http://www.zebulon.fr/actualites/522-remplacer-regedit-editeur-base-registre.html

Autre liens ; le but étant de trouver un logiciel gratuit et libre, qui permette de chercher et remplacer automatiquement plusieurs chaînes dans le registre :

Registry Search and Replace 2.15 - Téléchargez le logiciel Registry Search and Replace 2.15 :
https://www.zdnet.fr/telecharger/logiciel/registry-search-and-replace-11000388s.htm

Free Windows Registry Tools :
http://www.softpanorama.org/Windows/free_registry_tools.shtml

Advanced Regedit (win32) | Get Advanced Regedit (win32) at SourceForge.net :
https://sourceforge.net/projects/regedt33/
On cherche des développeurs ! (Vu que ça avance pas ... pour l'instant)

Télécharger RegEditX - gratuit - :
https://www.clubic.com/telecharger-fiche307666-regeditx.html

...
1
edit: "Le nom du fichier SANS le chemin" et pas "Le nom du dossier SANS le chemin"
0
Structure du secteur de partition ( MBR ) :
http://www6.bellamyjc.org/?tdfs=1&kw=Computer+Software+Blog&term=Computer%20Knowledge%20Base%20Software&term=Windows%20Server%20Patch%20Management%20Software&term=Windows%20Server%20Backup%20Software&backfill=0#secteur_partition

Décodage de l'identifiant ... et donc tout savoir pour faire des modifications :

L'information de 4 octets située à l'offset 1BA est utilisée seulement par Windows NT/2000/XP/2003  pour "signer" le disque physique.
Cette opération est exécutée par le gestionnaire de disques (Windisk.exe sous Windows NT4, DISKMGMT.MSC sous Windows 2000 et au delà) la première fois qu'il est lancé (ou après ajout ou remplacement du disque).
Cette valeur est recopiée dans la base de registres, dans la clef
    HKEY_LOCAL_MACHINE\SYSTEM\DISK, entrée "Information" (et éventuellement dupliquée dans l'entrée "VirtualInfo"), et se situe entre l'offset 0034 et 0037 pour le 1er disque.
Les emplacements des signatures des autres disques éventuels dépendent du nombre de partitions de chaque disque. 
Ce nombre est stocké également dans la clef :
    HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices




Exemple :

A l'aide d'un éditeur disque (DskProbe ou HexWorkshop) on voit que le MBR du 2ème disque d'un PC contient, à l'offset 0x1BA les valeurs suivantes :
    23 B7 65 2D

et dans la clef HKLM\SYSTEM\MountedDevices\
les entrées
   \??\Volume{804139e0-990d-11d8-811d-444553544200}
   \DosDevices\R:
commencent aussi par :
    23 B7 65 2D
	\??\Volume{804139e0-990d-11d8-811d-444553544200}
est le nom "officiel" du disque (physique)
Pour connaitre ce nom à partir d'une partition lui appartenant,
on peut exécuter la commande suivante :
    mountvol x: /L
"x" étant la lettre de la partition concernée.
  	

C:\WINDOWS\system32>mountvol r: /L
\\?\Volume{804139e0-990d-11d8-811d-444553544200}\




Les valeurs contenues dans la BDR et dans le MBR doivent être égales.
Cela permet à Windows :

    * de vérifier la cohérence entre Disque et Base de Registres
    * dans des cas très particuliers pour faciliter le démarrage :
      Le fichier BOOT.INI présente une syntaxe légèrement différente de ce que l'on a habitude de voir :
          signature(xxxxxxxx)disk(0)rdisk(0)partition(1)....
      au lieu du traditionnel
          multi(0)disk(0)rdisk(0)partition(1)....
      "xxxxxxxx" est identique à la valeur stockée dans le MBR et HKLM\SYSTEM\MountedDevices\

      Cette astuce (apparue avec Windows 2000) est utilisée uniquement dans les cas suivants :
          o Le BIOS ou contrôleur du disque qui héberge la partition de boot ne supporte pas les extensions de l'int13h (ou les extension de l'int13h ont été désactivées), et la partition sur laquelle se trouve Windows a une taille supérieure à 7.8 Go, ou déborde cette limite de 7.8 Go (n° de cylindre de fin > 1024)
          o Le disque sur lequel se trouve Windows est relié à un contrôleur SCSI dont le BIOS a été désactivé, si bien que les appels à l'int13h de ce BIOS ne peuvent pas être effectués.

            "signature(xxxxxx)" est équivalent à "scsi(n)", mais avec une fonctionnalité de "plug and play"

            En effet, le problème avec scsi(n) est qu'il faut connaitre le n° de contrôleur SCSI, or ce n° peut varier si jamais on ajoute ou retire un tel contrôleur. Donc un n° erroné va entrainer un blocage.

            Avec la syntaxe "signature(xxxxxx)", NTLDR va chercher, parmi TOUS les disques physiques présents, lequel possède le MÊME n° dans le MBR à l'offset 0x1BA
            Donc même si on a modifié l'arrangement des disques, ajouté une autre carte SCSI, un autre disque, ..., le disque contenant la partition système de Windows sera trouvé automatiquement.

Un disque doit être signé pour qu'il puisse être géré par Windisk ou DiskMgmt.
0
Emplacements des ruches ... pour faire des modifications pour pouvoir ouvrir des sessions :

"regedit" = pour ouvrir le registre de Windows. N'utilisez pas Regedt32.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\hivelist

HarddiskVolume1 correspond à la première partition "C" ; j'ai pas les autres correspondances.

Ne changez quelque chose que si la ou les partitions ne sont plus aux mêmes endroits ; la lettre ne compte pas ; y'en a pas ici.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\hivelist]
"\\REGISTRY\\MACHINE\\HARDWARE"=""
"\\REGISTRY\\MACHINE\\SECURITY"="\\Device\\HarddiskVolume1\\WINDOWS\\System32\\CONFIG\\SECURITY"
"\\REGISTRY\\MACHINE\\SOFTWARE"="\\Device\\HarddiskVolume1\\WINDOWS\\System32\\CONFIG\\SOFTWARE"
"\\REGISTRY\\MACHINE\\SYSTEM"="\\Device\\HarddiskVolume1\\WINDOWS\\System32\\CONFIG\\SYSTEM"
"\\REGISTRY\\USER\\.DEFAULT"="\\Device\\HarddiskVolume1\\WINDOWS\\System32\\CONFIG\\DEFAULT"
"\\REGISTRY\\MACHINE\\SAM"="\\Device\\HarddiskVolume1\\WINDOWS\\System32\\CONFIG\\SAM"
"\\REGISTRY\\USER\\S-1-5-20"="\\Device\\HarddiskVolume1\\Documents and Settings\\NetworkService\\NTUSER.DAT"
"\\REGISTRY\\USER\\S-1-5-20_Classes"="\\Device\\HarddiskVolume1\\Documents and Settings\\NetworkService\\Local Settings\\Application Data\\Microsoft\\Windows\\UsrClass.dat"
"\\REGISTRY\\USER\\S-1-5-19"="\\Device\\HarddiskVolume1\\Documents and Settings\\LocalService\\NTUSER.DAT"
"\\REGISTRY\\USER\\S-1-5-19_Classes"="\\Device\\HarddiskVolume1\\Documents and Settings\\LocalService\\Local Settings\\Application Data\\Microsoft\\Windows\\UsrClass.dat"
"\\REGISTRY\\USER\\S-1-5-21-XXXX-XXXX-XXXX-1003"="\\Device\\HarddiskVolume1\\Documents and Settings\\Name_UserOrAccount\\ntuser.dat"
"\\REGISTRY\\USER\\S-1-5-21-XXXX-XXXX-XXXX-1003_Classes"="\\Device\\HarddiskVolume1\\Documents and Settings\\Name_UserOrAccount\\Local Settings\\Application Data\\Microsoft\\Windows\\UsrClass.dat"



Pour fusionner avec le registre ce code vous devez copier par exemple (ne le faites pas) ce code dans le bloc-notes de windows puis vous devez l'enregistrer avec l'extension ".reg", puis clic droit fusion ou clic gauche direct sur le fichier créé (un dialogue s'affiche pour demander confirmation).

Il y a peut-être d'autres emplacements à modifier pour éviter le problème comme j'ai eu sans avoir à faire deux réparations = Windows est en cours de démarrage ne s'affichait même pas, pas de compte utilisateurs d'affichés ni même par 2 fois Ctrl + Alt + Suppr et donc impossible d'ouvrir une session. Maintenant ça marche mais j'ai du faire 2 réparations de Windows.

Adaptez ce code ... à votre situation (modifiez le registre directement à la main !) ! Le but est toujours de pouvoir modifier la lettre de la partition où il y a le dossier "WINDOWS" de XP et de n'avoir à faire qu'une réparation = le moins possible SANS plantage définitif of course.
0