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 :)
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.