Clé USB - pb système de fichiers

Ah, moi aussi je n’arrivais pas à lire ma clé, mais j’ai juste fais un
mount -t vfat /dev/sdb1 /media/usb1 pour l’avoir dans le répertoire /media/usb1.

personnellement, c’est cette histoire de double fat qui me turlupine.
Contrairement à ce que tu penses, fsck marchera sur ton image exactement comme si c’etait une partoche, car pour linux C’EST une partoche comme une autre, tu pourrais même, si tu voulais, lui faire un defrag :laughing: donc fais des copies, et essayes les outils comme fsck, et surtout, en essayant de reconstruire ou choisir une fat correcte:
les fichiers ne sont sans doute ni invisible, ni effacés, mais la fat de ta partoche doit je pense ne plus être entière, et ne connait plus leur position sur le disque.
En regardant avec un editeur hexa, il serait peut etre possible de detecter les debuts et fin des fichiers (en esperant qu’ils sont répartis de manière contigues), mais je ne sais pas faire ca…
Je crois que si c’est ca, tu aurais interet à trouver un bidouilleur windows qui sait reconstruire une fat à la main, parceque ca sera plus facile a trouver (vu le rapport de population entre les adeptes des deux systêmes) qu’un linuxien spécialiste des supports physique.

au fait, je ne t’ai pas demandé, mais tu l’a retirée sans la désactiver, ta clé ? c’est de la que vient le pb ?

Sinon, encore une autre possibilité. Tu essayes d’afficher tes fichiers par leur numéro d’inode.

Explications:
Sous unix, chaque fichier ou répertoire a un N° d’inode, par exemple:

bej@luciole { ~/essai }$ ls -l
total 0
-rw-r--r--  1 bej bej 0 2005-11-10 09:49 un_fichier
bej@luciole { ~/essai }$

ls -l affiche un fichier par son nom

bej@luciole { ~/essai }$ ls -ail un_fichier
524310 -rw-r--r--  1 bej bej 0 2005-11-10 09:49 un_fichier
bej@luciole { ~/essai }$

ls -ail affiche en plus, son N° d’inode qui en quelque sorte un identifiant unique pour ce fichier.
Donc, si la commande ls ne te permets pas d’afficher les noms de tes fichiers, s’ils existent réellement, tu pourra au moins afficher leur N° d’inode.

Petite démonstration:
Je reprends mon fichier nommé “un_fichier” et je le renomme en " " (un espace à la place d’un nom lisible, donc il devient invisible !

bej@luciole { ~/essai }$ ls
un_fichier
bej@luciole { ~/essai }$ mv un_fichier " "
bej@luciole { ~/essai }$ ls

bej@luciole { ~/essai }$ ls -ail
total 8
524310 -rw-r--r--   1 bej bej    0 2005-11-10 09:49
524300 drwxr-xr-x   2 bej bej 4096 2005-11-10 09:53 .
507905 drwxr-xr-x  56 bej bej 4096 2005-11-10 09:48 ..
bej@luciole { ~/essai }$

Tu peux constater ci-dessus, quand je lance la commande ls, ca ne retourne rien du tout, par contre, ls -ail retourne le numéro d’inode du fichier, qui lui n’a pas changé:

Maintenant, j’ai la preuve que mon fichier existe toujours mais il est invisible, rendons le donc visible:

En bref, cette commande cherche un fichier par son numéro d’inode et le renomme en lui donnant un nom de fichier autre qu’un caractère invisible.
Pour plus de détails sur cette commande va voir le post:http://forum.debian-fr.org/viewtopic.php?t=1660

Essayes déjà ça et si ca fonctionne, si tu as 50000 fichier on verra pour faire un script qui renomme tes fichiers automatiquement … :wink:

Euh Jabba: sur une fat, il n’y a pas d’inode, si ?

Houlà… là tu m’as filé un sérieux doute, :open_mouth: j’ai vérifié et c’est un N° à 2 chifres j’ai fais un find -inum sur ce N° à 2 chiffre et ça m’a retourné le bon fichier, donc on peut en conclure qu’il y a aussi des inodes sur une FAT … :question:

A y réflechir, ca n’est pas étonnant: ca doit être une emulation d’inode, pour que les tools fonctionnent de manière transparente.
Mais c’est vrai que quand je t’ai entendu parler d’inode à propos d’une fat, moi aussi j’ai tiqué :laughing:

[quote=“MattOTop”]A y réflechir, ca n’est pas étonnant: ca doit être une emulation d’inode, pour que les tools fonctionnent de manière transparente.
Mais c’est vrai que quand je t’ai entendu parler d’inode à propos d’une fat, moi aussi j’ai tiqué :laughing:[/quote]
Ouaip, une émulation seulement car je ne vois pas comment faire un identifiant unique avec 2 chiffres…
Sinon, sous windows je suppose que chaque fichier a aussi un identifiant, ca marche comment ?

Que ce soit ls -l, ls -ail ou quoi que ce soit d’autre rien n’y fait ! :frowning:

En fait je ne sais pas du tout comment ça se fait que la clé soit endommagée comme ça, vu que c’était en montage dynamique il est possible que quelque chose se soit mal passé et qu’elle ait été retirée au mauvais moment…

Je commence à perdre espoir !!! En tout cas merci a tous ceux qui m’ont aidé !

[quote=“Tijee”]Que ce soit ls -l, ls -ail ou quoi que ce soit d’autre rien n’y fait ! :frowning:

En fait je ne sais pas du tout comment ça se fait que la clé soit endommagée comme ça, vu que c’était en montage dynamique il est possible que quelque chose se soit mal passé et qu’elle ait été retirée au mauvais moment…

Je commence à perdre espoir !!! En tout cas merci a tous ceux qui m’ont aidé ![/quote]
Eh ben merde alors … :cry: Là je ne vois plus du tout comment t’aider.
Comme l’à proposé Mattotop il faut maintenant te tourner vers un chirugien Windows spécialiste en autopsie de FAT …

Bon courage ! :wink:

[quote=“jabba”][quote=“MattOTop”]A y réflechir, ca n’est pas étonnant: ca doit être une emulation d’inode, pour que les tools fonctionnent de manière transparente.
Mais c’est vrai que quand je t’ai entendu parler d’inode à propos d’une fat, moi aussi j’ai tiqué :laughing:[/quote]
Ouaip, une émulation seulement car je ne vois pas comment faire un identifiant unique avec 2 chiffres…
Sinon, sous windows je suppose que chaque fichier a aussi un identifiant, ca marche comment ?[/quote]
oula ! c’est vraiment un gros b#[||~’ vraiment inefficace:
users.iafrica.com/c/cq/cquirke/fat.htm
en gros, tu as un boot record qui ne s’installe QUE sur les 3 (1 seulement pour fat16) premiers secteurs de la partition (déja pb s’ils sont cramés: ta partoche ne peut plus être en fat) et qui gère les caracs globales de la partoche et la position de trois zones de données:

  • la (ou typiquement les deux copies de la ) fat = table d’allocation: elle contient un tableau des clusters de ton disque, avec dans chaque case d’un cluster utilisé, l’adresse du cluster suivant, ou un token fin de fichier.
  • la racine du disque: de 1 secteur comme tous les répertoires (beurk) située OBLIGATOIREMENT au début du disque (encore non relogeable), elle contient les adresse des débuts de fichier ou de répertoire qu’elle contient. Si elle saute, ton disque parait vide, mais l’espace occupé reste le même…
  • la zone des données…
    comme en général, on crée le boot record, la (ou les) fat et la racine en même temps, elles sont le plus souvent disposées de la manière suivante:
    <boot record (1 secteur)><fat1 (1-3 secteur)><fat2 (1-3 secteur)><root directory (1 secteur)><données>

En me rememorant tout ca, il me vient à l’idée qu’en recopiant une eventuelle fat2 sur la fat1, on pourrait récupèrer le tout.
Petit exercice pour toi Jabba (parceque je n’ai pas les options en tête et que je vais manger): c’est quoi le dd qu’il faut faire sur usb.dd ?
PS: On ne dit pas merde, mais zut :laughing:

En effet sur un autre forum on m’a parlé de copier une fat dans l’autre… mais comment ?

Ca reste la grande question !!!

Je vous avoue que ça devient très technique pour mes pauvres compétences de bidouilleur linuxien, j’ai un peu buché l’administration unix et donc les systèmes de fichiers mais ça reste encore très flou pour moi !!!

Eh ben effectivement, quelle grosse merde … :cry:
J’espère qu’ils ca s’est amélioré avec NTFS …

[quote=“Tijee”]En effet sur un autre forum on m’a parlé de copier une fat dans l’autre… mais comment ?

Ca reste la grande question !!!

Je vous avoue que ça devient très technique pour mes pauvres compétences de bidouilleur linuxien, j’ai un peu buché l’administration unix et donc les systèmes de fichiers mais ça reste encore très flou pour moi !!![/quote]

Ecoutes, je suis admin. Unix et je connais surtout les filesystems de type Unix, donc je n’en ai pas la moindre idée… Désolé :confused:

A part le Dr. MattOtop qui a l’air d’en connaître un rayon concernant les filesystems Microchiotte, je ne vois personne d’autre sur ce forum qui serait susceptible de t’aider …
T’as pas trouvé plus d’aide sur des forums dédiés Windows ?
Allez, bon courage ! :wink:

déjà là, ca va être très compliqué d’aller plus loin …
car “copier une fat dans l’autre”, personnelement, ça veut rien dire :confused:

Bon, je croyais que c’etait devenu limpide…
Déjà, TeeJee, en relisant les posts, je m’apercois que tu aurais pu faire ca au moment ou il t’a demandé si tu voulais utiliser la fat1 ou la 2, tu aurais dû choisir la 2 (il te disait que la 1 était vérollée). Il faut esperer que la fat cramée n’a pas déjà été recopiée sur la bonne fat…
Ensuite, quand je dis limpide, j’espèrais que ca le soit au moins pour Jabba…
pour recopier la fat2 sur la 1, vu la structure en secteurs de 512 octets par secteurs, et qu’on est en fat32 (3 secteurs de fat, donc) les arguments de dd vont être :
if=usb.dd (on recopie une partie de usb.dd)
of=usb.dd (sur usb.dd)
bs=512 (les blocs font 512 octets)
skip=4 (on saute le boot record(1) et la première fat(3 en fat32) dans l’input)
count=3 (on en recopie 3 puisque c’est fat32)
seek=2 (on commence l’ecriture sur le deuxiême secteur).

donc, pour recopier la fat1 sur la fat2, si j’ai bien compris ce que je disais, ca sera:
dd if=usb.dd of=usb.dd bs=512 skip=4 count=3 seek=2

voili voilou…
Ensuite, si ca ne marche pas,reste à refaire une fat à la main ou recopier les fichiers un par un depuis la zone de données, en partant du principe que les photos ont été écrite sur une carte vierge, et qu’il n’y a donc defragmentation…

J’obtiens ça :

pc1:/home/thomas# dd if=usb.dd of=usb.dd bs=512 skip=4 count=3 seek=2
0+0 enregistrements lus.
0+0 enregistrements écrits.
0 bytes transferred in 0,004496 seconds (0 bytes/sec)
pc1:/home/thomas#

Et voici ce que j’obtiens lorsque j’essaie de monter usb.dd dans /tmpmnt :

pc1:/home/thomas# mount -t auto usb.dd /tmpmnt -o loop
ioctl: LOOP_CLR_FD: Périphérique ou ressource occupé
mount: you must specify the filesystem type
pc1:/home/thomas#

Kesako ?

[quote=“Tijee”]J’obtiens ça :
pc1:/home/thomas# dd if=usb.dd of=usb.dd bs=512 skip=4 count=3 seek=2
0+0 enregistrements lus.
0+0 enregistrements écrits.
0 bytes transferred in 0,004496 seconds (0 bytes/sec)[/quote]
bon, déjà, 0 enregistrements lus, alors que j’en voulais 3, c’est que je me suis planté dans mes arguments de dd.
Quelqu’un peut nous aider, PLZ !!!

[quote=“Tijee”]Et voici ce que j’obtiens lorsque j’essaie de monter usb.dd dans /tmpmnt :
pc1:/home/thomas# mount -t auto usb.dd /tmpmnt -o loop
ioctl: LOOP_CLR_FD: Périphérique ou ressource occupé
mount: you must specify the filesystem type
pc1:/home/thomas#

Kesako ?[/quote]
Comme tu n’as pas touché à usb.dd, ca doit être un pb de nettoyage des loopbacks…
tu as essayé, aprés redémarrage ?