Mac Os X est un puissant système d'exploitation, malheureusement, ce système souffre de grosses lacunes pour un linuxien et notamment concernant le support des systèmes de fichiers, en effet, cet OS ne reconnaît que ses propres formats HFS, HFS+, HFSX, les formats de Microsoft FAT32 et NTFS ainsi que UFS (source Wikipédia), oubliez donc l'ext3 d'origine sous Mac Os...sauf...
2 projets m'ont sauvés la vie (oui, rien que ça) en rendant mes disques extX visibles et lisibles sous MacOs :
- MacFuse, les linuxiens auront reconnus à son nom son utilité, pour les autres, c'est un outils qui vous permet de monter un système de fichiers en espace utilisateur
- Et fuse-ext2 qui est un « pilote » extX générique fonctionnant entre autres sur MacOs
Rien à dire concernant l'installation de ces 2 programmes, des images disques au format dmg sont disponibles.
Une fois ces 2 programmes installés, c'est magique, vos disques extX seront montés automatiquement sans le moindre effort de votre part comme vous pouvez le voir sur la capture d'écran ci-dessous :
Concernant le montage des disques externes, le montage n'est pas automatisé et requiert donc quelques actions de votre part.
Pour commencer, il faut d'abord connaître le nom du device externe (/dev/diskXsX), s'il n'apparait pas dans le finder (entouré de rouge dans la capture ci-dessus), branchez votre disque externe formaté en extX puis ouvrez l'utilitaire de disques, vous devriez voir votre disque apparaitre sous cette forme :
Sur l'exemple ci-dessus, le nom du device est « disk2s1 », maintenant que nous savons oû se trouve le device, nous pouvons le monter tranquillement de la manière suivante, ouvrez un terminal (j'ai coloré les informations renvoyées par fuse-ext2 en jaune) :
mac:~ hugo$ cd /tmp
mac:tmp hugo$ mkdir DD
mac:tmp hugo$ fuse-ext2 /dev/disk2s1 DD
fuse-ext2: enter [do_probe (../../fuse-ext2/do_probe.c:30)]
fuse-ext2: leave [do_probe (../../fuse-ext2/do_probe.c:53)]
Mounting /dev/disk2s1 Read-Only.
Use 'force' or 'rw+' options to enable Read-Write mode
fuse-ext2: opts.device: /dev/disk2s1 [main (../../fuse-ext2/fuse-ext2.c:348)]
fuse-ext2: opts.mnt_point: DD [main (../../fuse-ext2/fuse-ext2.c:349)]
fuse-ext2: opts.volname: [main (../../fuse-ext2/fuse-ext2.c:350)]
fuse-ext2: opts.options: (null) [main (../../fuse-ext2/fuse-ext2.c:351)]
fuse-ext2: parsed_options: allow_other,local,ro,fsname=/dev/disk2s1,[...]
fuse-ext2: mounting read-only [main (../../fuse-ext2/fuse-ext2.c:368)]
mac:tmp hugo$
Inutile d'être en root pour lancer cette commande, c'est justement l'intérêt de fuse...
Et voilà le travail, un disque usb externe ext4 :
J'ai écrit un petit script qui automatise un tout petit peu plus le processus de montage du périphérique, pour le montage :
mac:~ hugo$ ./mountext -d disk2s1
Mounting « /dev/disk2s1 » device in « /tmp/disk2s1 »
Device « /dev/disk2s1 » mounted in « /tmp/disk2s1 »
mac:~ hugo$
Pour le démontage :
mac:~ hugo$ ./mountext -u disk2s1
Umounting « /tmp/disk2s1 »
Ok
mac:~ hugo$
Voilà, le script se trouve en annexe de ce billet.