Le problème des cartes SD de 4 Go

C’est un peu une coïncidence, mais comme j’ai eu un tas de cartes mémoire, je tombe un peu dans la nostalgie de mon (très) vieux site, et je parle pas mal de cartes mémoire. Après la Thin SD et la MMC de 256 Mo, parlons d’une carte SD de 4 Go.

Si vous avez déjà dû utiliser des cartes SD, vous avez peut-être remarqué qu’il y a différentes versions de la norme. Les cartes SD jusqu’à 2 Go, les cartes SDHC de 4 à 32 Go, les SDXC de 32 Go à 2 To et les cartes SDUC au-delà. Mais il existe quelques exemples de cartes qui ne sont pas exactement dans la norme, comme les cartes SD (sans le HC) de 4 Go. Et j’ai trouvé une carte de 4 Go Transcend.

Une SD (sans HC) de 4 Go

C’est quoi le problème avec les cartes SD de 4 Go ? Techniquement, ça doit fonctionner: l’adressage est sur 32 bits, soit une limite de 4 Go. Mais dans la norme d’origine, les cartes contiennent une petite zone qui indique la capacité sous la forme de deux valeurs. Il y a le nombre de clusters, et ensuite le nombre de blocs par cluster. La première valeur peut atteindre 4 096, la seconde 512. Et il y a une troisième valeur qui est implicite : le nombre d’octets par bloc, qui est de 512. Dans la norme originale, on a donc une capacité maximale de 1 Go (4096 x 512 x 512). Il y a eu assez rapidement une mise à jour de la norme (1.01) qui amène la possibilité d’indiquer 1 024 ou 2 048 octets par bloc (donc 2 ou 4 Go au maximum) mais – car il y a un mais – la capacité maximale, en suivant strictement la norme, est réduite à 2 Go.

Pourquoi 2 Go ? Pour des raisons pratiques. Dans la norme d’origine, le système de fichiers officiel est FAT16, qui a une capacité maximale de 2 Go. Techniquement, là aussi, on peut aller au-delà (j’en parle plus bas) mais pour éviter les problèmes, la limite des cartes SD a été calée sur cette valeur de 2 Go. Et si un appareil a une lecture très stricte de la norme, les cartes SD de 4 Go n’existent pas. Il faut en effet passer sur le standard SDHC pour cette capacité. En SDHC, la capacité varie de 4 Go à 32 Go, avec un formatage en FAT32. Pour la norme suivante (SDXC), le système de fichiers imposé est l’exFAT (même si en pratique on peut faire du FAT32 jusqu’à 2 To).

Le second problème est logique et vient du système de fichiers, donc. Pour gérer une capacité de 4 Go, il faut dans la majorité des cas passer en FAT32 (un système de fichiers apparu avec Windows 95 dans une mise à jour), alors que pas mal de vieux appareils (même entre 1995 et 2000) ne prennent en charge que la classique FAT16. Plus exactement, il est possible de formater un volume de 4 Go en FAT16, mais la compatibilité est assez faible. Cette possibilité est apparue avec Windows NT, mais les OS de la famille 9x (et une bonne partie des périphériques limités à FAT16) ne prennent pas en charge cette possibilité. Techniquement, la majorité des vieux systèmes acceptent de formater une carte avec des clusters de 32 ko, soit 2 Go au total (65 535 clusters de 32 ko), mais Windows NT (et quelques appareils) acceptent de travailler avec des clusters de 64 ko (ce qui permet d’atteindre le double). Le seul défaut, plus visible sur un disque dur qu’une carte mémoire, c’est que chaque fichier nécessite au moins un cluster, donc 64 ko. Même s’il ne contient qu’un octet. Là aussi, ça va dépendre de la façon d’interpréter la norme : formater en FAT16 avec des clusters de 64 ko, ce n’est pas totalement dans la norme, donc parfois ça ne passe pas et parfois… ça passe.

Question OS, j’ai essayé de formater manuellement en FAT16 avec macOS, il n’a pas accepté. Ni Windows XP en ligne de commande. Mais Windows 2000 (via l’interface) a accepté. macOS, une fois la carte formatée, l’accepte sans soucis.

Windows XP ne veut pas formater en FAT16


Windows 2000 accepte


C’est bon


macOS accepte

Petit test

Les cartes SD de 4 Go, donc, permettent de stocker 4 Go avec des appareils qui n’acceptent pas les cartes SDHC. A une époque, c’était un choix intéressant pour des appareils photo, mais la compatibilité était assez aléatoire. Comme expliqué plus haut, deux problèmes se posent. D’abord, il faut que l’appareil accepte les cartes de 4 Go dans l’absolu. Ensuite, il faut qu’il accepte un système de fichiers qui permet d’atteindre 4 Go. Il y a deux possibilités classiques : FAT32 ou FAT16. La première solution est la plus simple, et pas mal d’appareils acceptent ce choix. La seconde va dépendre de l’implémentation du système de fichiers.

J’ai d’abord essayé avec trois lecteurs de cartes SD, sans soucis particuliers. Deux trucs noname bas de gamme, un lecteur de cartes Transcend USB 3.0 assez rapide. La carte est lue, pas de soucis.

Sur des appareils photo un peu ancien, c’est différent. J’en ai pas mal à cause d’un récent dossier de Canard PC Hardware, d’ailleurs. Sur trois modèles, ça passe directement, que la carte soit formatée en FAT16 ou en FAT32. Il s’agit d’un truc noname Silvecrest, d’un vieux Samsung S750 et d’un Sony HX60 (assez récent par rapport aux autres). Dans un vieux Panasonic (FS-42) la carte passe en FAT32 mais pas en FAT16 : il indique une erreur. Et dans un vieux Kodak (Z740), le comportement varie. Quand elle est formatée en FAT32, il ne bronche pas mais ne permet pas l’écriture (il y a des – – – – rouge). Quand elle est formatée en FAT16, il propose de formater. Et attention, plus l’appareil sera vieux, plus les chances d’avoir une erreur sont élevées…



En réalité, si vous êtes certains que l’appareil est compatible, ça permet d’utiliser une carte de 4 Go dans un appareil limité à 2 Go officiellement s’il ne prend pas en compte la norme SDHC. Et dans certains cas (rares), c’est intéressant. Au passage, les cartes se trouvent assez facilement sur eBay pour pas trop cher.