Symbol

Es kann ja mal vorkommen, dass wir OS X Nutzer doch mal schreibend auf einen NTFS-Datenträger zugreifen sollen. Die Boardmittel von OS X lassen nur einen lesenden Zugriff zu.

Mithilfe dieser Anleitung ist es dann auch möglich, schreibend auf eine NTFS-Partition zuzugreifen.

Voraussetzung ...

... mit MacPorts

  • NTFS-3G installieren sudo port install ntfs-3g

... ohne MacPorts

  • OSX Fuse installieren
  • NTFS-3G installieren



anschließend ...

  • macOS Sierra im Wiederherstellungsmodus starten. Dazu beim hochstarten folgendes drücken

    Cmd + R

  • Über das Menü Dienstprogramme das Terminal starten und die System Integrity Protection (SIP) deaktivieren.
    
    bash$ csrutil status
    System Integrity Protection status: enabled.
    
    bash$ csrutil disable Successfully disabled System Integrity Protection. Please restart machine for the changes to take effect.
    bash$ csrutil status System Integrity Protection status: disabled (Apple Internal).

    Achtung: Nach getaner Arbeit nicht vergessen die SIP mit csrustil enable wieder zu aktivieren

  • macOS Sierra normal neustarten

Anleitung

  • Das Script im Anhang unter /opt/local/bin/mount_ntfs.sh abspeichern
  • Im Terminal den originalen Apple Treiber deaktivieren und das eben erstellte Script verlinken.
    
    $ cd /sbin
    $ sudo mv mount_ntfs mount_ntfs.orig
    $ sudo ln -s /opt/local/bin/mount_ntfs.sh mount_ntfs
    

    Achtung: Der Befehl sudo mit anschließender Passworteingabe ermöglicht dir Zugriff auf Dateien, die ansonsten geschützt sind. Bitte beachte, dass Du die Befehle exakt eingibst. Ansonsten wird Dein System mitunter unbrauchbar oder wichtige Daten werden gelöscht. Ich Übernehme dafür keine Haftung.

  • NTFS Formatierten Datenträger anschließen und testen ob wie gewünscht schreib-/lesbar eingehängt wird.
  • Wenn's geklappt hat nicht vergessen die System Integrity Protection wieder zu aktivieren (Wiederherstellungskonsole)
    
    bash$: csrutil enable
    Successfully anabled System Integrity Protection. Please restart machine for the changes to take effect. 
    
    bash$ csrutil status System Integrity Protection status: enabled.

Anhänge

ntfs_mnt.sh

Gib den Befehl sudo nano /opt/local/bin/mount_ntfs.sh im Terminal ein. Kopiere dann das Script in den Editor und speichere mit Ctrl + X ab. Anschließend musst du noch den Besitzer und die Rechte der Datei setzen.

nano

$ sudo nano /opt/local/bin/mount_ntfs.sh

█ GNU nano 2.0.6 ██████████████████████ File: /opt/local/bin/mount_ntfs.sh █
















███████████████████████████████ [ New File ] ███████████████████████████████ ^G Get Help ^O WriteOut ^R Read File ^Y Prev Page ^K Cut Text ^C Cur Pos ^X Exit ^J Justify ^W Where Is ^V Next Page ^U UnCut Text ^T To Spell



Script von MacPorts:

#!/bin/bash
VOLUME_NAME="${@:$#}"
VOLUME_NAME=${VOLUME_NAME#/Volumes/}
USER_ID=501
GROUP_ID=20
TIMEOUT=20
if [ `/usr/bin/stat -f "%u" /dev/console` -eq 0 ]; then
        USERNAME=`/usr/bin/defaults read /Library/Preferences/com.apple.loginwindow | /usr/bin/grep autoLoginUser | /usr/bin/awk '{ print $3 }' | /usr/bin/sed 's/;//'`
        if [ "$USERNAME" = "" ]; then
                until [ `stat -f "%u" /dev/console` -ne 0 ] || [ $TIMEOUT -eq 0 ]; do
                        sleep 1
                        let TIMEOUT--
                done
                if [ $TIMEOUT -ne 0 ]; then
                        USER_ID=`/usr/bin/stat -f "%u" /dev/console`
                        GROUP_ID=`/usr/bin/stat -f "%g" /dev/console`
                fi
        else
                USER_ID=`/usr/bin/id -u $USERNAME`
                GROUP_ID=`/usr/bin/id -g $USERNAME`
        fi
else
        USER_ID=`/usr/bin/stat -f "%u" /dev/console`
        GROUP_ID=`/usr/bin/stat -f "%g" /dev/console`
fi

/opt/local/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/ntfsmnt.log

exit $?;




Rechte und Besitzer ändern:


$ sudo chown root:admin mount_ntfs.sh

$ sudo chmod +x mount_ntfs.sh

ntfs_mnt.log

Sollte es Problem beim einhängen geben kannst du mit der Konsole das Protokoll ntfs_mnt.log ansehen.

Konsole


michael18.11.2016