7 votes

Comment puis-je trouver le type de système de fichiers d'une carte USB ou SD connectée ?

Comment puis-je trouver le type de système de fichiers d'une clé USB sans utiliser d'ordinateur ? Le disque est relié à un téléphone Android et je peux voir les fichiers qu'il contient. Je veux savoir si c'est extFAT etc.

8voto

Irfan Latif Points 16863

Question connexe : Comment détecter le type de système de fichiers d'une partition non montée ?

Juste pour compléter certaines pièces manquantes :

Habituellement, nous utilisons mount pour voir les systèmes de fichiers montés, il fonctionne sans Root, par exemple à partir d'un émulateur de terminal ou d'un logiciel de gestion de l'information. adb shell :

~$ mount
...
/dev/block/sda1 on /mnt/media_rw/C8BA-D0E2 type sdfat ...
/dev/block/sda2 on /mnt/media_rw/C78E-434F type vfat ...
/dev/block/sda3 on /mnt/media_rw/C81D-4E8D type vfat ...

Il montre les systèmes de fichiers montés sur le lecteur USB externe pour être sdfat et vfat que son pas de systèmes de fichiers réels mais des pilotes de systèmes de fichiers . Un pilote peut prendre en charge plusieurs systèmes de fichiers et un système de fichiers peut être monté à l'aide de différents pilotes. sdfat peut être exFAT, FAT32 ou FAT16. vfat peut être l'un des deux derniers. De même, les types de systèmes de fichiers sdcardfs , fuse ou fusectl ne sont pas des systèmes de fichiers réels mais virtuels (FUSE peut être utilisé pour monter n'importe quel système de fichiers en théorie). Ainsi, la sortie de mount ou des applications comme DiskInfo peut être insuffisante ou trompeuse.

Un moyen plus sûr est de lire la magie du système de fichiers ( file et blkid le font). Mais le problème est que les périphériques de stockage sont énumérés comme des blocs de périphériques par le noyau Linux/Android et que les nœuds de périphériques sont créés par Android. init / vold avec des permissions restreintes afin que seuls les processus Root puissent y accéder (voir Comment lire un système de fichiers ext4 sans le monter sur un périphérique non rooté ? ). Il n'est donc pas possible de lire directement les partitions qui contiennent des systèmes de fichiers.

Avec un accès Root :

~# blkid
/dev/block/sda1: ... TYPE="exfat"

~# file -s /dev/block/sda*
/dev/block/sda2: DOS/MBR boot sector ... FAT (32 bit)
/dev/block/sda3: DOS/MBR boot sector ... FAT (16 bit)

* La fonction intégrée d'Android blkid a des valeurs magiques de système de fichiers mais toybox file que l'applet n'a pas. Utilisez par exemple file sur Termux qui cherche une grande base de données magique.

~# hexdump -C -n100 /dev/block/sda1 | grep -o '[EX]*FAT[0-9]*'
EXFAT

* hexdump est une applet busybox.

La magie exFAT se trouve à l'offset 3 FAT32 à 82 et FAT12/FAT16 à 54 . Ainsi pour exFAT hexdump -e '"%_p"' -n5 -s3 /dev/block/sda1 renvoie à EXFAT .

De même pour EXT4 hexdump -e '"%X"' -n2 -s1080 devrait retourner EF53 et pour F2FS hexdump -e '"%X"' -n4 -s1024 devrait retourner F2F52010 .

Sans accès à la racine :

Une autre option consiste à vérifier logcat peu après le démarrage ou l'insertion d'un lecteur USB ou d'une carte SD. vold utilise blkid à l'arrière pour détecter le système de fichiers avant le montage qui apparaît dans le journal :

~$ adb logcat -v brief -s vold:V | grep TYPE=                                                                                                 
V/vold    (  752): /dev/block/vold/public:8,1: LABEL="disk" UUID="C8BA-D0E2" TYPE="exfat"

5voto

beeshyams Points 37355

Des applications comme Info disque fournit également le format (activez "show file system" dans les paramètres).

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X