Partitions Atari ?

Par chance, les partitions Atari sont très proches des partitions MS-DOS, puisqu'il s'agit du système de fichiers FAT16. Il existe deux types de partitions FAT16 sur Atari : GEM et BGM. Les partitions GEM sont limitées à 32 Mo tandis que les partitions BGM sont théoriquement limitées à 2 Go. Cependant, cette taille maximale dépend de la version du TOS. Les versions 1.0 et 1.2 sont limitées à 32 Mo, les versions 1.4 à 3.x sont limitées à 512 Mo et le TOS du Falcon est limité à 1 Go (il est possible de créer des partitions de 2 Go sur cette machine mais ce n'est pas recommandé).

Par pure curiosité, comment réagit Linux lorsque l'on insère des cartes SD formatées sur Atari ?

En premier lieu, j'insère ma carte SD de 512 Mo dans le lecteur de mon PC. Elle possède une partition hybride TOS/DOS de 512 Mo. Gnome ne veut rien savoir et ne monte aucun lecteur.

Dans un second temps, je crée deux partitions d'environ 512 Mo sur une carte SD de 1 Go depuis le Mega STE. J'utilise HDDriver et je lui demande de créer des partitions TOS. Sous Linux, Gnome refuse de monter quoi que ce soit.

Voici ce que me crache syslog :

May 12 21:16:33 ubuntu kernel: [  897.307851] sd 7:0:0:2: [sdg] 1935360 512-byte hardware sectors: (990 MB/945 MiB)
May 12 21:16:33 ubuntu kernel: [  897.309722] sd 7:0:0:2: [sdg] Write Protect is off
May 12 21:16:33 ubuntu kernel: [  897.309724] sd 7:0:0:2: [sdg] Mode Sense: 02 00 00 00
May 12 21:16:33 ubuntu kernel: [  897.309725] sd 7:0:0:2: [sdg] Assuming drive cache: write through
May 12 21:16:33 ubuntu kernel: [  897.311721] sd 7:0:0:2: [sdg] 1935360 512-byte hardware sectors: (990 MB/945 MiB)
May 12 21:16:33 ubuntu kernel: [  897.313721] sd 7:0:0:2: [sdg] Write Protect is off
May 12 21:16:33 ubuntu kernel: [  897.313723] sd 7:0:0:2: [sdg] Mode Sense: 02 00 00 00
May 12 21:16:33 ubuntu kernel: [  897.313725] sd 7:0:0:2: [sdg] Assuming drive cache: write through
May 12 21:16:33 ubuntu kernel: [  897.313728]  sdg: AHDI sdg1 sdg2
May 12 21:16:33 ubuntu kernel: [  897.590980] FAT: bogus logical sector size 8192
May 12 21:16:33 ubuntu kernel: [  897.590984] VFS: Can't find a valid FAT filesystem on dev sdg2.

Utilisation de mtools

Alors comment lire ces satanés partitions ? Certes, je pourrais recompiler le noyau de Linux, mais d'une part je n'ai pas vraiment le temps pour ça et d'autre part je ne suis pas sûr que cela fonctionne avec tous les types de partitions Atari. Suivant les conseils de Simon Sunnyboy sur Atari-Forum, je me suis tourné vers mtools. Il s'agit d'un ensemble d'utilitaires dont le but est d'accéder à des lecteurs MS-DOS et compatibles, sans toucher aux points de montage ou au noyau Linux.

Je vous encourage à lire la doc car elle est complète et relativement bien faite. Le fichier de paramétrage doit se trouver soit dans /etc soit dans le répertoire home de l'utilisateur. Pour ma part j'ai choisi d'éditer /etc/mtools.conf :

# Debian default mtools.conf file.
# "info mtools" or "man mtools.conf" for more detail.

# # Linux floppy drives
drive a: file="/dev/fd0" exclusive
#drive b: file="/dev/fd1" exclusive

# # SatanDisk drive
drive s: file="/dev/sdg1"
drive t: file="/dev/sdg2"
drive u: file="/dev/sdg3"

# # dosemu hdimage.
#drive m: file="/var/lib/dosemu/hdimage.first" partition=1 offset=128

# # dosemu floppy image
#drive n: file="/var/lib/dosemu/fdimage"

# # SCSI zip disk
# drive z: file="/dev/sda4"

# # uncomment the following line to display all file names in lower
# # case by default
# mtools_lower_case=1

MTOOLS_SKIP_CHECK=1
MTOOLS_NO_VFAT=1

D'abord, il faut connaître le nom du périphérique qui correspond au lecteur de cartes SD. Sur ma machine il s'agit de /dev/sdg, si j'en crois les logs de syslog. Dans le fichier de configuration, j'ajoute les noms des différentes partitions que je mappe sur des lecteurs MS-DOS virtuels, appelés S:, T: et U:.

Ensuite, très important : il faut ajouter la ligne "MTOOLS_SKIP_CHECK=1" sinon les partitions Atari ne seront pas reconnues par mtools. La ligne "MTOOLS_NO_VFAT=1" n'est pas obligatoire mais, pour ma part, je n'ai pas envie de voir des noms longs tronqués sur mes cartes SD, certaines applis Atari n'apprécient pas trop la plaisanterie.

Pour vérifier si mtools fonctionne et reconnaît les partitions, il suffit de lister le contenu d'une des partitions :

root@ubuntu:/home/steph# mdir t:
 Volume in drive T has no label
 Volume Serial Number is 3AAD-AF04
Directory for T:/

ZIKDISKS     <DIR>     2009-03-01  18:04 
WORK         <DIR>     2009-03-01  18:01 
MJJ_PROD     <DIR>     2009-03-01  17:45 
INTROS       <DIR>     2009-03-01  17:43 
DISKMAGS     <DIR>     2009-03-01  17:43 
DEMOS        <DIR>     2009-03-01  17:42 
        6 files                   0 bytes
                        129 040 384 bytes free

Des lignes de commande c'est bien, un mode graphique c'est mieux !

Pour cela il existe MToolsFM qui, comme son nom l'indique, est un gestionnaire de fichiers MS-DOS. L'interface utilisateur est spartiate mais c'est bien plus pratique que de taper des lignes de commande.

J'ai récupéré MToolsFM-1.9-5.i386.rpm sur le site officiel puis j'ai installé le package de cette manière :

alien -d MToolsFM-1.9-5.i386.rpm

Il existe un fichier de configuration : /etc/mtoolsfm.conf. Son principal intérêt est de pouvoir définir tous les lecteurs MS-DOS virtuels déclarés dans le fichier de configuration de mtools. Voici le mien :

DRIVES="astu"
LEFTDRIVE="s"

mtoolsfm.png

Partitions hybrides ou natives ?

Maintenant qu'il est possible d'accéder en lecture et en écriture, comment partitionner sa carte SD ?

Avec HDDriver, il est possible de créer une partition unique, appelée "TOS/DOS combiné". Cette partition hybride permet de partager facilement des fichiers entre l'Atari et un PC sous Windows. La seule contrainte est qu'il ne peut y avoir qu'une seule partition sur la carte SD. Ce qui est dommage avec une carte de 1 Go puisqu'au moins la moitié sera inutilisable.

Sous Linux, aucun souci pour accéder à plusieurs partitions. Alors pourquoi s'en priver ? L'avantage d'avoir plusieurs partitions est que cela permet de mieux classer ses fichiers et ses programmes. Je recommande de créer une petite partition de boot, puis des partitions plus grandes pour les programmes et les données.

De plus, en cas de plantage d'une partition, les autres ne seront pas affectées. Mais vu les bons taux de transferts, je conseille de faire des sauvegardes régulières des cartes SD sur le PC.

Le mieux est de formater directement sur l'Atari. Ca sera plus rapide (en tous cas plus rapide qu'avec gparted sous Linux) et, surtout, il sera possible de créer plus de 4 partitions. En effet, sur PC, un outil graphique comme gparted ne peut pas créer plus de 4 partitions primaires sur un périphérique. Sûrement une vieille limitation technique héritée des premiers PC. J'avoue ne pas avoir essayé de partitionner avec mtools. Sur Atari, on peut faire entre 14 et une vingtaine de partitions, suivant le système d'exploitation. Sous TOS, c'est 14, de C: à P:. MagiC et MiNT permettent d'en avoir une bonne dizaine en plus. Par exemple, j'ai créé 10 partitions de 96 Mo sur une carte SD de 1 Go : mon Mega STE et mon PC sous Linux n'ont eu aucun mal à toutes les reconnaître.

Vivement que l'UltraSatan arrive, il me tarde d'avoir un lecteur plus rapide et plus complet que le SatanDisk, qui est déjà un bon produit. Voilà de quoi alimenter nos ST en jeux, en démos et en programmes de toute sorte et, vu le prix des cartes SD, il serait dommage de s'en passer !