AntiGuide: bouchetrou



PagePrincipale :: DerniersChangements :: ParametresUtilisateur :: Vous êtes 216.73.216.55 :: Signaler un abus :: le: 20250722 10:29:29
REDACTION EN COURS

cette méthode propose de remplacer des secteur illisibles ou incorrects d'une disquette par des rustines qui vont bien
Il faut d'abord échapper à windows

*avec un ordinateur msdos*
phase préalable: extraire les secteurs lisibles par tout moyen convenable

Si vous disposés d'un ordinateur Msdos, windows 9x ou Me:
3) créez les quatre fichiers de commande:

tout.bat
set liste=(0 1 2 3 4 5 6 7 8 9 A B C D E F)
for %%cent in %liste% do call dizaine.bat %%cent %1


dizaine.bat
for %%dizaine in %liste% do call unite %%dizaine %1 %2

unite.bat
for %%unite in %liste% do call %3 %1 %2 %%unite

lirsect.bat
@echo off
if %1%2%3 == B40 pause
echo>debug.in L100,0,%1%2%3,1
echo>>debug.in d100L200
echo>>debug.in q
debug < debug.in > %1%2%3.lst


lancez la commande:
tout lirsect.bat

quand arrive la pause, interrompre par ^C

le résultat est un ensemble de 2880 fichiers .lst nommés 000, 001 jusqu'à B3F

chercher les secteurs illisibles
à l'aide de fgrep
fgrep "Erreur" *.lst

utiliser les utilitaires de réparation
passer à la phase utltime plus bas et applique chkdsk ou autre à la disquette copiée.

changer un secteur invalide d'une des FAT
...

changer le secteur de boot
...

recréer un secteur de directory (à partir de la fat)
...

faire réapparaitre des fichiers effacés
...

phase ultime: recréer un fichier image de la disquette:

ce programme (laconique) est écrit en turboPascal
var
  fi:text;
  fo:file of char;
  i,j,k:integer;
  ili,ic:integer;
  lu,nx:string;
  a2:string;
  n:integer;
  c:char;
  err:integer;
const al:string[16]='0123456789ABCDEF';
const tot:longint=0;
label fin;
begin
 assign(fo,'image');rewrite(fo);
 for i:=1 to 16 do
   for j:=1 to 16 do
     for k:=1 to 16 do
        begin
          if al[i] + al[j]+al[k]='B40' then goto fin;
          assign(fi,al[i] + al[j]+al[k]+'.lst');reset(fi);
write(chr(13),chr(10),al[i],al[j],al[k],'  ',tot);
repeat
       readln(fi,lu);
       if lu[1]='E' then writeln(lu);
until not (lu[1] in ['-','E']);
          for ili:=1 to 32 do
            begin
              for ic:=0 to 15 do
                begin
                  a2:=copy(lu,12+3*ic,2);
                  val('$'+a2,n,err);
                  c:=chr(n);
                  write(fo,c);
                  inc(tot);
                end;
              readln(fi,lu);

            end;
          close(fi);
        end;
fin:
      close(fo);
      write('  ',tot);readln;

end.


et enfin écrire l'image sur une nouvelle disquette
l'outil s'appelle avec rawwrite, il existe en de multiples versions, ligne de commande ou avec interface graphique sous Windows.


pour la lecture notre ambassadeur signale:
Alors pourquoi ne pas regarder directement du côté de "dd for windows",
par le même auteur :

http://www.chrysocome.net/dd


...

PS : je fais le malin, mais j'ai rien compris..., dit il