WINDOWS2000.OVH.ORG

 

Votez pour ce site !

Homepage

Service Pack 1

Chat / IRC

Toute l'actualité

Drivers

Logiciels

Livres

Guide technique

Bugs

InterNet & réseaux

Trucs & astuces

Scripts BATCH

Listes de diffusion

Virus

Humour

Linux & Unix

Feedback

Contact

Rejoignez-nous

Bug

Microsoft n'a pas inclus dans Windows 2000 Professsional la possibilité de restaurer votre ancien système d'exploitation.

Résolution proposée par le technet Microsoft

Effectuer un backup complet du disque avant la mise à jour.

Notre solution si vous n'avez pas fait de backup

Windows, c'est comme la gangrène : pour s'en débarrasser, il faut amputer.

Cette procédure est valable, quelque soit l'OS que vous voulez installer.

Etape 1 - backup

Effectuer un backup de vos documents avant cette manipulation sensible qui pourrait rendre inaccessible votre disque dur lors de l'étape 2.

Etape 2 - effacement du NTLDR

L'outil qui va nous permettre d'arriver à ce résultat s'apelle debug et est inclus dans la disquette système Windows 9x ou sur toutes les disquettes d'installation MSDOS depuis la version 3.31. Ce programme permet d'interagir directement avec les informations contenues en mémoire. D'où son interêt, mais aussi son danger. A manipuler donc avec précaution....

Nous considérons ici que Windows 2000 est installé sur c:, première partition du disque. Si ce n'est pas le cas, contactez-nous par mail pour recevoir la séquence correcte.

f 200 L200 0
a 100
xxxx : 0100  mov ax, 301
xxxx : 0100  mov bx, 200
xxxx : 0100  mov cx, 1
xxxx : 0100 mov dx, 0080
xxxx : 0100 int 13
xxxx : 010E int 3
xxxx : 010F
g=100

Là, vous verrez s'afficher les registres ainsi que leur contenu.

Q

Voilà vous êtes de retour au prompt DOS. Bravo, vous avez sans doute réalisé votre première manipulation en assembleur, ce langage "mystique" dont se servait les premiers informaticiens (vous comprenez maintenant l'intérêt des autres langages de programmation ...)

Si vous êtes curieux, consulter les explications de ce script.

Etape 3 - régénération de la table d'allocation

Une commande beaucoup moins barbare : fdisk/mbr

Etape 4 - réécriture de la MBR DOS

SYS C:

Etape 5 - suppression des fichiers Windows 2000

c:
cd\
deltree /y winnt
deltree /y docume~1

Etape 6 - installation d'un autre OS

Là, c'est à vous de jouer :)


Explications du script assembleur

En premier lieu, il faut comprendre comment le processeur traite les données :

  • Un processeur possède des registres, qui sont des emplacements dans lesquelles sont temporairement stockées des données qui vont être manipulées par le processeur.
  • La taille de ces registres varient :  8 -16 ou 32 bits par exemple.

Ainsi :

AX est un registre de 16 bits. On peut le diviser en deux registres de 8 bits : AH et AL.
Idem pour le registre BX, subdivisé en BH et BL.
Idem pour CX, subdisé en CH et CL.
Idem pour DX, subdivisé en  DH et DL.

Dans ce script, on utilise l'interruption 13 du bios (int 13). Une interruption est un petit programme, ou routine ; l'interruption 13 permet ici de gérer le disque dur. Ce programme a évidemment besoin de paramètres, qu'il va chercher dans les registres :
Par exemple, il va chercher dans le registre AL le numéro de la  fonction de la routine Int 13 qui va être appelée.

Venons en au fait :

f 200 L200 0 : cette instruction écrit des 0 à l'offset 200 sur 512 octets (200 en hexadécimal = 512). On pourrait traduire : Fill at offset 200, a length of 512 bytes with 0.

a 100 : Assembler le programme à l'offset 100

On va ensuite programmer les registres de façon à pouvoir utiliser la fonction "écriture" de l'int 13 correctement :

mov ax, 301 Ah = 03 => utiliser la fonction n° 3( écriture) de int 13.
                    Al = 1 => écrire sur un octet.

mov bx, 200 Ecrire le contenu commançant à l'offset 200 ( remplis de 0).

mov cx , 1    CH = 0 (l'instruction équivaut à mov cx, 00001). Ecrire sur le cylindre 0 du disque.
             CL = 1 Premier secteur du disque.

mov dx, 0080 DH = 00 Indique la tête n° 0 du disque.
             DL = 80 Indique le disque N°1 (Disque maître sur le connecteur primaire par exemple).

int 13 : appel de l'interruption 13

int 3  : c'est une routine qui repasse la main au DOS

g = 100 : Go - Execute le programme assemblé à l'offset 100.

q : quitte le mode DEBUG.

(c) V.S.D.I. scrl, 1999-2000, tous droits réservés