Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1451 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Créer un défragmenteur DOS ou Linux en C++ Pascal C etc...

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

Créer un défragmenteur DOS ou Linux en C++ Pascal C etc...

n°116760
juju_le_ba​rbare
Vous fiez pas aux apparences !
Posté le 24-03-2002 à 12:22:18  profilanswer
 

bonjour,
 
Il me faudrait un défragmenteur de fichiers pour le système FAT32 qui tourne sous DOS ou bien Linux, mais pas Windows !.
J'ai cherché sur un CD norton, ya que speed disk sous win, et sous DOS et Linux j'ai cherché sous google, et j'ai pôôô trouvé.
 
Sinon si quelqu'un a une idée de comment je pourrais programmer ça en C++, C, ou pascal, je suis preneur. Je vois pas trop comment gérer un fichier et sa place sur le DD, peut-être une lecture approfondie du MBR...
 
Merci d'avance... :hello:  
 
 
 
 
 
 
VB  :gun:


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
mood
Publicité
Posté le 24-03-2002 à 12:22:18  profilanswer
 

n°116789
Tentacle
Posté le 24-03-2002 à 13:59:42  profilanswer
 

juju_le_barbare a écrit a écrit :

bonjour,
 
Il me faudrait un défragmenteur de fichiers pour le système FAT32 qui tourne sous DOS ou bien Linux, mais pas Windows !.
J'ai cherché sur un CD norton, ya que speed disk sous win, et sous DOS et Linux j'ai cherché sous google, et j'ai pôôô trouvé.
 
Sinon si quelqu'un a une idée de comment je pourrais programmer ça en C++, C, ou pascal, je suis preneur. Je vois pas trop comment gérer un fichier et sa place sur le DD, peut-être une lecture approfondie du MBR...
 
Merci d'avance... :hello:  




 
Tu peux pas récupérer le Defrag d'en temps sous DOS ? :)

n°117119
juju_le_ba​rbare
Vous fiez pas aux apparences !
Posté le 25-03-2002 à 12:59:21  profilanswer
 

Tentacle a écrit a écrit :

 
 
Tu peux pas récupérer le Defrag d'en temps sous DOS ? :)  




 
merci, je feria sune recherche mais j'ai déjà un peu recherché et j'ai pas trouvé :-(
Si tu l'as tu peux me le mailer ??? damamme@linux-fan.com ...
 
Merci d'avance :hello:


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
n°117130
Profil sup​primé
Posté le 25-03-2002 à 13:32:19  answer
 

Tentacle a écrit a écrit :

 
 
Tu peux pas récupérer le Defrag d'en temps sous DOS ? :)  




 
je pense pas que ca marche sur les disque de taille actuelle

n°117135
Mara's dad
Yes I can !
Posté le 25-03-2002 à 13:40:54  profilanswer
 

Le bon vieux DEFRAG sera incapable de gérer une FAT 32 !
 
Pour ce qui est d'en écrire un toi-même, je te souhaite bien du courrage ! Il va faloir te plonger dans la structure intime du système de fichier en FAT32, avec les noms longs ...
 
http://msdn.microsoft.com/library/ [...] 2_68fk.asp


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°117152
Tentacle
Posté le 25-03-2002 à 14:13:33  profilanswer
 

juju_le_barbare a écrit a écrit :

 
 
merci, je feria sune recherche mais j'ai déjà un peu recherché et j'ai pas trouvé :-(
Si tu l'as tu peux me le mailer ??? damamme@linux-fan.com ...
 
Merci d'avance :hello:  




 
bah écoute comme le dises Mat et Maraz, je sais pas si ça marchera avec des gros disques ou en Fat32... mais quand je rentrerais chez moi, je peux quand même te l'envoyer pour que tu testes :)

n°117290
juju_le_ba​rbare
Vous fiez pas aux apparences !
Posté le 25-03-2002 à 17:21:16  profilanswer
 

Tentacle a écrit a écrit :

 
 
bah écoute comme le dises Mat et Maraz, je sais pas si ça marchera avec des gros disques ou en Fat32... mais quand je rentrerais chez moi, je peux quand même te l'envoyer pour que tu testes :)  




 
merci à toi, l'ami, si ça marche pas je vais essayer de le coder en C++ pour DOS ou linux...
 
@++ :hello:


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
n°117295
El_gringo
Posté le 25-03-2002 à 17:26:30  profilanswer
 

juju_le_barbare a écrit a écrit :

 
 
merci à toi, l'ami, si ça marche pas je vais essayer de le coder en C++ pour DOS ou linux...
 
@++ :hello:  




 
Mais tu rêves toi !
Tu crois quoi ? que tu vas avoir des fonctions "PutFileToAdress", ou du style !? c forcément ultra compliqué à programmer des trucs de bas niveau comme ça. Je te parie ce que tu veux que t'arriveras jammais à faire ça (du moins, par dans les 5 prochaines années)

 

[jfdsdjhfuetppo]--Message édité par El_Gringo--[/jfdsdjhfuetppo]

n°117300
juju_le_ba​rbare
Vous fiez pas aux apparences !
Posté le 25-03-2002 à 17:33:32  profilanswer
 

El_Gringo a écrit a écrit :

 
 
Mais tu rêves toi !
Tu crois quoi ? que tu vas avoir des fonctions "PutFileToAdress", ou du style !? c forcément ultra compliqué à programmer des trucs de bas niveau comme ça. Je te parie ce que tu veux que t'arriveras jammais à faire ça (du moins, par dans les 5 prochaines années)  
 
 




 
Pour qui tu te prends toi ???
Tu me connais ???
 
J'en ait marre on m'a déjà critiqué, un inconnu critique mes compétences, et là ça recommence !!!
 
Je connais la programmation de bas niveau, de temps en temps je m'amuse à faire des  programmes pour DOS en héxadécimal, ils sont nuls, mais touça pour te dire que je sais à quoi m'attendre, c'est plus compliqué que Delphi !!!
 
ça va sûrement y aller les interruptions DOS et bios, et alors ???
 
 
Je déteste ça les gens qui critiquent sans connaitre !!!
Si tu me dis que t'as l'intention de faire un OS, je te dirais bravo et t'encouragerais, en te rappelant toutefois le niveau de difficulté d'une telle entreprise, mais jamais je te dirais que tu n'y arriveras pas dans les 5 ans ...
 
pfff mauvaise journée aujourd'hui décidément !!!
 
A tous les autres merci !!! :hello:


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
n°117303
El_gringo
Posté le 25-03-2002 à 17:37:40  profilanswer
 

juju_le_barbare a écrit a écrit :

 
 
Pour qui tu te prends toi ???
Tu me connais ???
 
J'en ait marre on m'a déjà critiqué, un inconnu critique mes compétences, et là ça recommence !!!
 
Je connais la programmation de bas niveau, de temps en temps je m'amuse à faire des  programmes pour DOS en héxadécimal, ils sont nuls, mais touça pour te dire que je sais à quoi m'attendre, c'est plus compliqué que Delphi !!!
 
ça va sûrement y aller les interruptions DOS et bios, et alors ???
 
 
Je déteste ça les gens qui critiquent sans connaitre !!!
Si tu me dis que t'as l'intention de faire un OS, je te dirais bravo et t'encouragerais, en te rappelant toutefois le niveau de difficulté d'une telle entreprise, mais jamais je te dirais que tu n'y arriveras pas dans les 5 ans ...
 
pfff mauvaise journée aujourd'hui décidément !!!
 
A tous les autres merci !!! :hello:  




 
hé oui, je critique, je critique, mais pas sans te connaitre.
G souvent lu tes posts... c tout, j'en dirais pas plus. Après tu vas encore dire que je te critique ! :D
 
Et quand tu l'aura fait ton défragmenteur, tu me l'envois !? :D

 

[jfdsdjhfuetppo]--Message édité par El_Gringo--[/jfdsdjhfuetppo]

mood
Publicité
Posté le 25-03-2002 à 17:37:40  profilanswer
 

n°117307
juju_le_ba​rbare
Vous fiez pas aux apparences !
Posté le 25-03-2002 à 17:42:44  profilanswer
 

El_Gringo a écrit a écrit :

 
hé oui, je critique, je critique, mais pas sans te connaitre.
G souvent lu tes posts... c tout, j'en dirais pas plus. Après tu vas encore dire que je te critique ! :D
Et quand tu l'aura fait ton défragmenteur, tu me l'envois !? :D  




 
mouaih !!! je vois !!!
je déteste les apprioris !!!
En lisant tous mes posts, tu as une image de moi comme étant un mauvais programmeur ???
 
Ouh là !!! si c'est le cas pour d'autres personnes, dites-le moi SVP !!!
 
Mara's Dad, merci pour le lien sur la MSDN, très instructif.
 
@++ :hello:


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
n°117310
El_gringo
Posté le 25-03-2002 à 17:50:35  profilanswer
 

juju_le_barbare a écrit a écrit :

 
 
mouaih !!! je vois !!!
je déteste les apprioris !!!
En lisant tous mes posts, tu as une image de moi comme étant un mauvais programmeur ???
 
Ouh là !!! si c'est le cas pour d'autres personnes, dites-le moi SVP !!!
 
Mara's Dad, merci pour le lien sur la MSDN, très instructif.
 
@++ :hello:  




 
g pas dit "mauvais programmeur"...
tu programmes sur quoi, et depuis combien de temps ?

n°117328
Mara's dad
Yes I can !
Posté le 25-03-2002 à 18:09:52  profilanswer
 

A priori, le principe du défrag n'est pas très compliqué, et pas trop dangereux si on suis quelques règles simples.
 
En fait le plus difficile, je pense, c'est de trouver un algo rapide pour effectuer le moins de déplacement de blocs.
 
Il faut aussi ne pas oublier de commencer par vérifier la validité de la structure.
 
Bon courage, et tiens nous au courrant !


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°117363
PompUsine
Leg9 ça suce bien !
Posté le 25-03-2002 à 19:31:46  profilanswer
 

Mara's dad a écrit a écrit :

A priori, le principe du défrag n'est pas très compliqué, et pas trop dangereux si on suis quelques règles simples.
 
En fait le plus difficile, je pense, c'est de trouver un algo rapide pour effectuer le moins de déplacement de blocs.
 
Il faut aussi ne pas oublier de commencer par vérifier la validité de la structure.
 
Bon courage, et tiens nous au courrant !  




EXCELLENTE TA CITATION !!!    :lol:     :love:   :lol:


---------------
Leg9 : Pédé de service, pipes gratuites.
n°117457
bjone
Insert booze to continue
Posté le 25-03-2002 à 23:04:02  profilanswer
 

bin fait gaffe, passke entre la fat16, la fat16 avec les extensions OS/2, la fat16 avec les extensions VFAT avec les noms long, et la fat32, y'a de quoi faire....
 
sachant que par exemple les speedisk / scandisk&ndd pré-vfat considérent les noms longs comme des entrées en erreur et te niquent sauvagement les noms longs (tu n'as plus que des yopla~1)....
et que le scandisk de windows 95 assassinait les extensions OS/2....
des cas particuliers au niveau des FATs + les cas particuliers au niveau géométrie....
 
va y avoir du sport.... enfin bon courage ;)
 
un conseil: trouve toi un pti 2 go, et fait du ghost de test en test...

n°117458
bjone
Insert booze to continue
Posté le 25-03-2002 à 23:07:42  profilanswer
 

arf, remarque, tu veux que de la fat32...

n°117546
juju_le_ba​rbare
Vous fiez pas aux apparences !
Posté le 26-03-2002 à 10:07:03  profilanswer
 

bjone a écrit a écrit :

arf, remarque, tu veux que de la fat32...  




salut à tous,
 
je vais me concentrer sur la fat32, sans la compatibilité os/2 dans un premier temps, j'ai trouvé de la doc, mais sous DOS je crois que ça va être chaud...
 
Je ne promets rien, en tout cas il est évident qu'il me faudra plusieurs mois, au strict minimum.
 
je compte sur votre aide, voire une association...
 
Encore une question :
 
Vous me conseillez de le coder :
 
1/ en C
2/ en C avec routines asm
3/ en C++
4/ en C++ avec routines asm
5/ en asm (arghhh!)
6/ en pascal (on sait jamais)
 
... 7/ en VB ... ok je sors  :crazy:  
 
perso j'opterais pour l'option 4.
Si certains d'entre vous ont déjà fait des programmes qui pourraient m'aider de quelque manière que ce soit, je suis preneur !
 
@++ :hello:


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
n°117552
Mara's dad
Yes I can !
Posté le 26-03-2002 à 10:15:58  profilanswer
 

Le plus loin oû je suis allé dans ce genre de programmation, c'était un petit prog en ASM pour formater une disquette ! Et encore, je l'ai jamais fini !
 
Je dirai que le language n'est pas primordial pour le problème à résoudre. Du C / C++ tout con devrait suffire.
Pour ASM, je dirais que vu la masse d'info à gérer, je pense c'est c'est un peu chaud quand même.
Et le Pascal, ben pourquoi pas ?
 
C'est quoi ta doc sur la structure FAT32 (à part MSDN) ?


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°117614
El_gringo
Posté le 26-03-2002 à 11:38:02  profilanswer
 

:lol:  ho ho ho  :lol:

n°117645
JPA
Posté le 26-03-2002 à 12:29:56  profilanswer
 

-> juju_le_barbare
 
as tu essayé freedos ?
http://www.freedos.org/
Il est maintenant compatible FAT 32 et doit posseder un défragmenteur.
remarque : je n'ai pas testé !!!
A+

n°117735
Cherrytree
cn=?
Posté le 26-03-2002 à 16:22:54  profilanswer
 

El_Gringo a écrit a écrit :

:lol:  ho ho ho  :lol:  




Pourquoi il rit celui-là. Il se moque et c'est tout. C'est pas glop ça comme attitude. Pas bien, faut pas faire.

n°117738
SquiiiD
be cool !
Posté le 26-03-2002 à 16:27:44  profilanswer
 

El_Gringo--> lui au moins il a le courage d'essayer.
Et meme si il n'y arrive pas il aura suremetn appris des truc... c'est comme ca qu'on progresse. Si tu baisse les brs a te dire que c trop difficile tout le temps tu arrivera jamasi a rien dans la vie c moi ki te le dis...  
je sais pas ce que vous en pensez les autres mais c ma facon de voir les choses.
Squid

n°117746
Cherrytree
cn=?
Posté le 26-03-2002 à 16:34:47  profilanswer
 

SquiiiD > Tu as raison. Voilà bien l'attitude d'un vrai programmeur.

n°117796
El_gringo
Posté le 26-03-2002 à 17:38:02  profilanswer
 

SquiiiD a écrit a écrit :

El_Gringo--> lui au moins il a le courage d'essayer.
Et meme si il n'y arrive pas il aura suremetn appris des truc... c'est comme ca qu'on progresse. Si tu baisse les brs a te dire que c trop difficile tout le temps tu arrivera jamasi a rien dans la vie c moi ki te le dis...  
je sais pas ce que vous en pensez les autres mais c ma facon de voir les choses.
Squid  




 
Pas d'acc...
C pas que g pas le courage d'essayer moi, c que j'en ai pas besoin. (ms, c vrai que j'pense pas que ça soit de mon niveau non plus)
Et, à mon avis, pour progresser, il faut faire des trucs à difficulté progressive justement. Pour le cas de l'ami juju, je comparerai ça à un bébé qui apprent à marcher, et décide de s'escalader un immeuble de 50 étages pour se faire la main. Un rien démesuré quoi. Cela dit, bonne chance !
ce qui me fait rire, c juste qu'a mon avis, il se rend pas compte !

n°117813
Mara's dad
Yes I can !
Posté le 26-03-2002 à 18:15:49  profilanswer
 

Franchement je ne vois pas ce qu'il y a de si insurmontable !
 
Si on réussi à avoir toute la doc nécessaire, y'a pas de raison de ne pas y arriver. Il n'y a tout de même pas 50000 trucs à faire.
 
Je le redis, à mon avis, le plus difficile, est de trouver un algo qui ne passe pas sont temps à déplacer des blocs pour faire de la place...


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°117864
bjone
Insert booze to continue
Posté le 26-03-2002 à 20:32:02  profilanswer
 

je pense que si tu fais ça sous dos, fais-le avec un compilo 32 bits (mode protégé) avec dos4gw/pmodew/cwspdmi genre avec watcom-c ou djgpp....
 
sinon du c ou c++, l'asm n'étant pas nécessaire, vu la lenteur relative des disques devant le cpu, le moteur de défragmentation n'a poa besoin d'asm (hormis les primitives d'écritures/lectures de blocs qui passent par le bios)...
 
en fait ce qu'il te faut c'est des primitives de lecture/écriture de blocs de 512 octets & taille cluster du dur(je sais pas si tu peux faire un defrag qui fonctionne qu'en LBA, ce serait idéal je pense d'un point de vue algorithmique)...
 
un moteur de parcourt et de vérification de la FAT32 (et de calcul d'espace blocs pris)...
 
un système de mapping de blocs (qui te permet de savoir de quels sont les blocs utilisés etc... etc...)
 
l'idéal serait d'avoir un moteur de "simulation/anticipation" comme le speedisk des nortons a, ça lui valut sa redoutable efficacité....
 
fo aussi que tu penses au fait que ton algo puisse ne pas corrompre l'intégralité de la fat en cas de problème fatal (ie bad sector ou coupure de courant :D)
 
truc très chiant à mon avis: trouver les appels dos pour couper le smartdrive (surêment via l'interruption de mutex)
 
fait attention je sais les disques possèdent un cylindre dit de test (une position dite de tests qui est utilisé par le firmware pour ses magouilles), une fois un vieux ghost m'avait étendu la partition jusqu'a ce cylindre, et tout ce qui était passé dessus été perdu... (donc au bout de 2/3 heures boum plus de fat sur le nouveau 20 go que je m'étais acheté à ce moment, et après 2/3 ghostage, j'ai scandisk qui m'a sorti un warning sur la géométrie de la partition, les derniers ghost ne font pas cette erreur)
 
enfin fo avaler de la doc pour obtenir une esquisse de truc fontionnel....
 
à la limite commençe par écrire un truc qui parcourt la fat de lui même, ça devrait être un super bon début...

n°117866
bjone
Insert booze to continue
Posté le 26-03-2002 à 20:33:49  profilanswer
 

il te faut aussi des routines de translation position cluster<=>géométrie disque(lba, ou chs & co...) pour choper les blocs aux bon endroits...

n°117978
SquiiiD
be cool !
Posté le 27-03-2002 à 07:27:16  profilanswer
 

El_Gringo a écrit a écrit :

 
 
Pas d'acc...
C pas que g pas le courage d'essayer moi, c que j'en ai pas besoin. (ms, c vrai que j'pense pas que ça soit de mon niveau non plus)
Et, à mon avis, pour progresser, il faut faire des trucs à difficulté progressive justement. Pour le cas de l'ami juju, je comparerai ça à un bébé qui apprent à marcher, et décide de s'escalader un immeuble de 50 étages pour se faire la main. Un rien démesuré quoi. Cela dit, bonne chance !
ce qui me fait rire, c juste qu'a mon avis, il se rend pas compte !  




 
El-gringo --> Combien defois je ne me suis pas dis "oula ca c'est pas de mon niveau" mais ca m'a pas empecher d'essayer, de progresser et d'y arriver... et resultat je fais  aujourd'hui tout ce que je pensais ne jamais savoir faire hier...
Et qu'est ce que tu connais des connaissances de juju_le_barbare??? Si ca se trouve il va nous pondre un super prog.. faut jamais sous estimer un informaticien j'en ai l'experience ;)
 a+

 

[jfdsdjhfuetppo]--Message édité par SquiiiD--[/jfdsdjhfuetppo]

n°117982
juju_le_ba​rbare
Vous fiez pas aux apparences !
Posté le 27-03-2002 à 08:37:19  profilanswer
 

salut à tous,
 
merci de votre soutien, el_gringo il est évident que je vais pas concurrencer norton dans 2 semaines !!!
 
Bref, je vais faire comme on m'a conseillé ça sous djgpp, un petit parcours de la fat, puis un affichage des blocs.
Ensuite je pourrais essayer d'écrire dans la fat.
Je ferais mieux d'écrire dans la fat le déplacement, puis ensuite déplacer les blocs (de 512 octets), ou l'inverse ?
Je pense notamment comme on m'a dit au coupures, afin de ne pas créer d'erreurs, et ne pas détruire les fichiers.
 
Une petite doc que j'ai trouvé :
http://www.labo-microsoft.org/articles/arc/
 
c'est juste un début disons.
j'en ait d'autres, je les afficherais en lien ici.
Si des personnes bien attentionnées voulaient bien m'aider à trouver de la doc je les en remercie d'avance  :p  
 
ciao :hello:


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
n°117997
JPA
Posté le 27-03-2002 à 09:16:10  profilanswer
 

si celà peut t'aider tu trouveras sur : http://www.simtel.net/pub/msdos/diskutil/
un défragmenteur pour DOS nommé reform16 livré avec ses sources en turbo pascal.
C'est sur qu'il ne gère pas les noms longs et les disques de grande capacité, mais c'est déjà un début.
A+

n°118003
helvetik
Posté le 27-03-2002 à 09:32:32  profilanswer
 
n°118020
Mara's dad
Yes I can !
Posté le 27-03-2002 à 10:25:33  profilanswer
 

juju_le_barbare -> Rapport à l'ordre d'écriture :
 
Donc, on peux immaginer un protocole qui ne risque pas de perdre des données.
 
Par exemple :
 
1- Recopie des clusters à leurs nouvelle destination. Pour chaque cluster, mettre à jour LES FATs pour indiquer qu'il est occupé.
 
Rmq : Si plantage, il suffit de faire un scandisk pour qu'il supprime la chaîne de clusters qui n'est utilisée par aucun fichier.
 
2- Modifier le pointeur dans l'entrée du répertoire.
 
3- Libérer les clusters de l'ancienne chaîne dans LES FATs.
 
Bon, c'est un exemple, y faut surement y réfléchir encore, mais une chose est sûre, il NE FAUT PAS modifier la FAT avant d'avoir copié les données !


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°118036
antp
Super Administrateur
Champion des excuses bidons
Posté le 27-03-2002 à 10:40:41  profilanswer
 

Pour les tests je conseille VMWare ou Virtual PC, dans lequel tu installes un Win95 sur un disque virtuel, pour ne pas risquer de bousiller un disque dur à chaque test. En plus si ça foire tu fais "Undo changes", pas besoin de tout reformater/réinstaller.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°118050
bjone
Insert booze to continue
Posté le 27-03-2002 à 11:14:17  profilanswer
 

pour les recopies, tu te trouves un bloc de 1/2 megs de libre vers la fin du disque (pour ça fo avoir un plan d'occupation mémoire de la surface "cluster" du disque)
 
lorsque tu défragmentes, tu virres un bloc de donné de A pour mettre le B à la place, je ferais:
 
1) copier A dans bloc temporaire
2) maj FAT
3) copier B sur espace de A
4) maj FAT
 
en fait normallement, ce sont les maj FAT qui sont critiques pour l'intégrité du disque... si tu as un problème "critique" pendant la recopie d'un bloc de donnée d'une ancienne à une nouvelle position, ce ne sera pas enfommageant, la FAT restant sur l'ancienne position.
 
pour quelque chose d'efficace faudrait:
a) vérifier l'intégrité de la FAT (espace déclaré et réellement pris, comparaison fat 1 et de sa copie fat 2)
b) calculer l'espace disque & mémoire pris par la FAT
c) libérer le début du disque pour y mettre la fat (copie fichiers utilisant le début vers la fin du disque)
d) tasser la fat à cet endroit (de préférence y trier les entrées par nom)
e) commencer la défragmentation des fichiers derrière la fat elle-même défragmentée...

n°118053
Mara's dad
Yes I can !
Posté le 27-03-2002 à 11:18:55  profilanswer
 

Bjone -> Une FAT fragmentée ? ? ?
 
Je connais pas cette bête là !
 
T'as vu çà où ?


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°118056
bjone
Insert booze to continue
Posté le 27-03-2002 à 11:26:26  profilanswer
 

ta FAT elle-même est crée au fur et à mesure que tu crées ton arborescence.....
 
les défragmenteurs comme speedisk, diskeeper, O&O....
proposent de "tasser" la FAT en début de disque, dans le cas des déframenteurs Win2/XP, on parle de MFT (master file table) vu que l'on peut être en FAT ou en NTFS (la MFT est un terme NTFS, mais les softs nt/2k/xp de défragmentation parlent quand même de MFT quand il s'agit de défragmenter la FAT en début de disque).
 
ce qui a pour conséquence de booster DRAMATIQUEMENT la recherche de fichier (et les performances globales vu que toute ouverture de fichier est une recherche dans la fat, pas une recherche dans tous les répertoires, mais une recherche quand-même)....

 

[jfdsdjhfuetppo]--Message édité par bjone--[/jfdsdjhfuetppo]

n°118064
bjone
Insert booze to continue
Posté le 27-03-2002 à 11:37:19  profilanswer
 

en fait pour moi (et je configure tout le temps les défragmenteur comme ça, depuis le speedisk des nortons utilities):
 
fo foutre la FAT en début de disque avec un tri par nom (vue que souvent l'os & applis retrient derrière par nom, ça sert à rien de trier autrement, et en plus même si ce n'est pas le cas, si l'os pouvait assummer que la table des fichiers est triée par nom, il pourrait faire une recherche dichotomique, enfin il ne peut pas assumer ça alors)
 
après les fichiers peuvent être défragmentés derrière, l'ordre des fichiers en s'en fout un peu (je vois pas trop l'intêret de faire un tri par date ou par nom, vo mieux que le defragmenteur supporte une préférence par répertoire pour foutre par exemple, dans le cas d'un windows, les fichiers du WINDOWS\SYSTEM / SYSTEM32 en premier afin de booster de le chargement de l'os et des DLLs qui sont utilisés par les 99% des applis)
 
et je peut t'assurer, que si tu n'as jamais activé la défragmentation de la FAT ou de la MFT si le volume est en NTFS, fais-le tout de suite et défragmentes, tu risques de voir ta machine avoir un coup de fouet au boot et au chargement des applis.
 
note aussi, que là je suis sous xp, et pour l'instant la meilleure défragmentation que j'ai vue c'est celle de diskeeper qui peut faire toute sa défragmentation au boot de l'os avant d'entrer dans l'interface graphique (MFT/FAT+fichiers+pagefile). d'ailleurs tu peux observer toutes les étapes de défragmentation (1:libération d'espace en début de disque pour la FAT/MFT, 2:recopie de la FAT/MFT en début de disque avec déframentation, 3:défragmentation des fichiers eux-mêmes).
 
sinon sous win9x, le speedisk est de loin le plus efficace (en tout cas bien configuré, il marche super-bien). et en plus c zuper joli de le voir tout défragmenter....
d'ailleurs je trouver le speedisk NT pourri et en retard devant le speedisk w9x (le design du nt est pourri, et le moteur bof je trouve, enfin j'ai ptet pas assez testé).
 
sinon aussi le GHOST fait ça à merveille, il te crée la FAT bien tassée en début de disque et te fait ensuite la copie de fichier à la queue-leu-leu.... ce qui fait que quand tu ghostes un disques sur un autre il est automatiquement défragmenté :D
ça m'avais bien fait plaisir d'avoir rien à faire lorsque je sous passé de mon 40go bourré ras-la-gueule et fragmenté à mort à mon 80 go tout neuf & vide.

 

[jfdsdjhfuetppo]--Message édité par bjone--[/jfdsdjhfuetppo]

n°118075
bjone
Insert booze to continue
Posté le 27-03-2002 à 12:08:41  profilanswer
 

Citation :


Je ferais mieux d'écrire dans la fat le déplacement, puis ensuite déplacer les blocs (de 512 octets), ou l'inverse ?


 
donc effectivement d'abord un déplacement non destructif (dans une zone libre du disque), puis maj FAT, la taille du bloc déplacée pouvant largement plus grande qu'un secteur (ou plutôt cluster dans le cas d'une fat), genre tu peux très bien déplacer 20 mo de donnée, à partir du moment ou tu sais que si y'a une erreur critique pendant le déplacement ou après, le volume ne sera pas corrompu vue que la fat "pointera" toujours sur l'emplacement précédent....

n°118077
Mara's dad
Yes I can !
Posté le 27-03-2002 à 12:11:10  profilanswer
 

Désolé, mais j'ai encore un doute !
 
Pour moi, l'organisation d'un disque logique, c'est à dire que je ne parle pas des tables de partition, c'est :
FAT 1
FAT 2
Répertoire principal.
Fichiers et répertoires.
 
La FAT (File Allocation table) et une table avec des entrées en 32bit (pour une FAT32) qui code l'ocupation de chaque cluster du disque.
Dans la FAT, il y a donc au formattage autant d'entrées que de cluster.
Chaque entrée dans la FAT contient une information du genre:
Libre, Fin de fichier, Adresse du cluster suivant, Cluster endomagé.
Dans les répertoires, chaque entrée contient le nom du fichier, l'adresse du cluster de début, la taille du fichier, et d'autres infos du genre date, attributs...
 
Quand tu parle de défragmenter la FAT, je pense que tu veux plutôt dire déplacer l'arboressence des répertoires au début du disque (juste après le répertoire racine).
 
Le répertoire racine à un nombre fixe d'entrées possibles, et il est toujours au même endroit, c'est les sous-répertoires qui ne sont en fait que des fichiers comme les autres, qui peuvent eux être fragmenté.
 
Enfin, tout çà, j'en suis certain pour ce qui est d'un disque en FAT16, j'ai assez joué à récupérer des fichiers à la main avec des outils comme DiskEdit pour le savoir.
 
Mais peut-être que ce que je dis est complètement faux pour la FAT32 !
 
Quelqu'un n'aurrai pas des infos ?


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°118081
Mara's dad
Yes I can !
Posté le 27-03-2002 à 12:18:09  profilanswer
 

J'ai trouvé çà : http://home.teleport.com/~brainy/fat32.htm


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Créer un défragmenteur DOS ou Linux en C++ Pascal C etc...

 

Sujets relatifs
Problème copie de fichier C/Linux[plus que newbie inside] créer un exe à partir d'un raccourci et autre
Appel desespere !!! Fortran sous Linux.....[C++] Comment créer des variables d'environnement?
tri par paire(pascal)Pascal : faire un timer
[PHP-MySQL] : Problème de connexion à la base de données sous LinuxComment créer un .exe...
[Perl] Creer un module...Comment fait-on pour créer des cookies ?
Plus de sujets relatifs à : Créer un défragmenteur DOS ou Linux en C++ Pascal C etc...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR