Depuis que je suis sous OSX, j’ai formatté la moitié de mes clef USB et disque dur externe vers le format ExFAT. La raison est plutot simple. Windows ne prend pas en charge le systeme de fichier Ext (n’importe quelle version) et OSX ne prend pas en charge le NTFS en écriture. Merci à Yosemite qui permet tout de même la lecture.

En effet, j’était dans une impasse. Il fallait que je trouve un systeme de fichiers qui sois utilisable à la fois sur OSX, Windows mais aussi Linux. Je sais qu’il existe des solutions pour lire le format Ext sous Windows, comme Paragon ExtFS ou du NTFS sous OSX.

J’ai donc découvert le systeme de fichiers ExFAT. Le support est native sous Windows 7 et OSX depuis Maverick. Sous linux, n’importe quelle bonne distribution supporte le ExFAT avec un simple paquet.

Seulement voila il y a un petit hic. Si par malheurs vous n’avez pas retirez votre périphérique en toutes sécurité sous Windows ou encore pas démonté le disque sous Linux, alors le disque n’est plus montable sous OSX ! Il n’apparait tout simplement pas dans le Finder. Si vous essayez de réparer le disque avec DiskUtility.app on obtient ce petit message d’erreur:

Underlying error: 1: POSIX reports: Operation not permitted

La solution ce trouve en ligne de commande. Ouvrez iTerm2, récuperez le chemin vers votre partition avec diskutil list (ex: /dev/disk2s1) et tapez la commande magique:

$ diskutil unmount force /dev/disk2s1
Volume YADOMI-WD on disk2s1 force-unmounted
$ diskutil mount /dev/disk2s1
Volume YADOMI-WD on /dev/disk2s1 mounted

En faite, il semblerais que lorsqu’on retire mal un périphérique ExFAT, il reste monté et OSX considère qu’il n’a pas à monté un device deja monté…

Il suffit de force un peu le démontage puis de le remonté par la suite et hop, le tour et joué :)

Update 11/03/2016: Il semblerais que le problème ne soit pas directement liée à ExFat mais plutôt de la gestion des disques dur sous OSX. En effet, la commande cité plus haut ne suffit pour débloquer le disque dur. Alors j’ai continué à chercher et j’ai trouvé une autre commande qui peux faire votre bonneur: hdutil.

$ sudo hdiutil detach /dev/disk2
"disk2" unmounted.
"disk2" ejected.
$ diskutil mount /dev/disk2

Et la, notre disque et de nouveau monté et opérationnel

Update 28/08/2016: Après moult tentative de resoudre en vain ce problème, il semblerais que fsck en soit la cause. En effet, lorsque l’on branche un disque dur sous Mac, le systeme lance fsck pour vérifer l’intégrité des données. Le problème c’est que fsck plante. Alors, si toute les commandes cité plus haut n’ont pas fonctionné, essaye la technique suivante pour kill le process fsck_exfat:

$ PID=$(ps aux | grep 'fsck_exfat' | tail -1 | awk '{print $2}')
$ sudo kill -9 $PID