samedi 16 novembre 2019

NTFS, Lecture / Ecriture sous macOS Catalina (10.15.x)

Ce tutoriel fait suite à celui sur la lecture/ecriture des disques NTFS sur MacOS 10.12,10.13,10.14 qui date d'il y a un an.
Les installations suivantes restent valable 

  • Installation Xcode tools: xcode-select --install
  • Installation Homebrew/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  • Installation Cask: brew install cask
  • Installation osxfusebrew cask install osxfuse 
  • Installation de ntfs-3g: brew install ntfs-3g
Avec Catalina, il n'est pas nécessaire de désactiver le SIP mais la sécurité est plus stricte que jamais. En effet, étant donné que macOS Catalina monte le système de fichier en mode lecteur seul, nous devons trouver le moyen de modifier le fichier mount_ntfs par défaut.

Après les installations précédentes, nous avons deux versions de mount_ntfs sur notre système. L'un se trouve à /usr/local/sbin/mount_ntfs, installer avec ntfs-3g et l'autre /sbin/mount_ntfs (livré avec l'OS).
Ce que nous allons faire, c'est de copier le contenu du premier (celui de ntfs-3g) dans le second (celui du système). Il convient tout de même d'en faire une copie.

Contrairement aux anciennes versions de macOS (<10.15), sous Catalina, la commande << sudo mv /sbin/mount_ntfs /sbin/mount_ntfs.original >> nous donne un message du genre:
 << mv: rename /sbin/mount_ntfs to /sbin/mount_ntfs.original: Read-only file system >>. Le fichier système est donc en lecture seule. Il faut donc modifier cette situation (temporairement
bien sur).
/!\ Les commandes seront annulées au redémarrage. Nous allons faire toutes nos modifications avant cela.
Les commandes suivantes nous y aides:

  • monter le fs en mode edition: sudo mount -uw /
  • renommer le fichier originale: sudo mv /sbin/mount_ntfs /sbin/mount_ntfs.original
  • créer un nouveau fichier: sudo touch /sbin/mount_ntfs
  • changer les droits sur le fichier (uw): sudo chmod 0755 /sbin/mount_ntfs
  • changer le propriétaire du fichier: sudo chown 0:0 /sbin/mount_ntfs 
  • ouvrir le fichier en mode édition avec nano: sudo nano /sbin/mount_ntfs

Ouvrons un autre terminal et tapons les commandes suivantes:

  • déterminons notre user ID, le miens c'est 501: id -u
  • déterminons notre Group ID, le mien c'est 20: id -g
  • ouvrons le mount_ntfs de ntfs-3g: nano /usr/local/sbin/mount_ntfs
  • sélectionnons le contenu puis clic-droit pour le copier.

Le contenu du fichier /usr/local/sbin/mount_ntfs ressemble à ceci:


#!/bin/bash

VOLUME_NAME="${@:$#}"
VOLUME_NAME=${VOLUME_NAME#/Volumes/}
USER_ID=501   
GROUP_ID=20. 

if [ `/usr/bin/stat -f %u /dev/console` -ne 0 ]; then
USER_ID=`/usr/bin/stat -f %u /dev/console`
GROUP_ID=`/usr/bin/stat -f %g /dev/console`
fi


/usr/local/opt/ntfs-3g/bin/ntfs-3g \
-o volname="${VOLUME_NAME}" \
-o local \
-o negative_vncache \
-o auto_xattr \
-o auto_cache \
-o noatime \
-o windows_names \
-o user_xattr \
-o inherit \
-o uid=$USER_ID \
-o gid=$GROUP_ID \
-o allow_other \
"$@" >> /var/log/mount-ntfs-3g.log 2>&1

exit $?;



Coller le contenu ci-dessus copié dans l'autre terminal (celui où l'on a ouvert /sbin/mount_ntfs), en prenant soin de remplacer le User_ID et le GROUP_ID par les vôtres.
Enregistrer ensuite le fichier en tapant sur les touches "Ctrl+X" et "Y". Il faut ensuite fermer toutes les fenêtres ét redémarrer notre ordinateur.

Nous sommes parés à utiliser nos disques durs externes en mode lecture et écriture.
Bye.






Aucun commentaire:

Enregistrer un commentaire