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.
Réponses
Trop de publicités?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"
Des applications comme Info disque fournit également le format (activez "show file system" dans les paramètres).