Монтуємо диски NTFS для запису в MacOS X 10.9 Mavericks

    Знадобилося мені днями зробити бекап (близько 75 гігабайт різних файлів) на зовнішній жорсткий диск, та ось невдача — відформатований він у файлову систему NTFS — начебто інші операційні системи давно пишуть на неї без проблем, а в MacOS довелося використовувати «своє рішення».
 
І так, вивчивши, то що мені пропонує google, з'ясувалося що треба купити або Paragon NTFS, або Tuxera NTFS, або використовувати безкоштовне рішення.
 
Після ряду експериментів, з'ясувалося, що найбільш простий спосіб — це поставити пакет ntfs-3g з MacPorts і підмінити / sbin / mount_ntfs
 
Система портів MacPorts була у мене давно встановлений (я ставив з нього mc, wget та інші корисні утиліти, до яких звик в ОС Linux, такі як pwgen, наприклад).
 
На чистій системі його немає — отже його необхідно встановити згідно з інструкціями на www.macports.org — завантажити і запустити скрипт установки.
 
Далі, встановимо osxfuse і ntfs-3g
 
 
sudo port install osxfuse ntfs-3g

 
І щоб була повна автоматизація, тобто автоматично монтувався носій (а не вручну) підміняємо mount_ntfs
 
 
sudo mv /sbin/mount_ntfs /sbin/mount_ntfs.orig

 
sudo vi /sbin/mount_ntfs

 
 
#!/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 $?;


 
 
sudo chmod +x /sbin/mount_ntfs

 
Відомі проблеми:
 - Залишається / Volumes / [label] /. Trashes і другий раз монтує в [label 2] і доводиться видаляти папки вручну, відкрив баг на osxfuse github.com/osxfuse/osxfuse/issues/139
 
Джерело скрипта: fernandofig.wordpress.com/2011/08/08/ntfs-write-support-on-osx-lion-with-ntfs-3g-f /
    
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.