Монтируем диски 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
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 32

      +3
      С этим решением две проблемы: работает медленно, и в случае каких-то ошибок в файловой системе происходит быстрая деградация с возможными потерями данных. Я для себя решил, что Tuxera все же сильно лучше и стоит своих денег.
        0
        Как я понял, Tuxera — это коммерческий вариант ntfs-3g, то есть по-сути тоже самое, только с графической оболочкой, так как они предлагают opensource ntfs-3g www.tuxera.com/community/ntfs-3g-download/
          0
          Не совсем. В коммерческой версии сделана масса оптимизаций.
          +6
          Странно, потому что в линуксе этот пакет уже лет 5 идет стандартно и проблем с ним нет вообще никаких.
            +2
            Советую еще Paragon NTFS, раз мы о платных решениях.
              0
              Да, я упоминал о нем выше, я хотел использовать бесплатное решение
          • UFO just landed and posted this here
              0
              Пробовал прописывать в fstab — это первое что я сделал. Не понравилось тем, что «не появляется ярлычок на рабочем столе» (да, я придираюсь)) и тем, что надо отмонтировать диск вручную. Да и как-то вроде не совсем стабильно оно — windows потом на этом диске запускала проверку фаловой системы
              • UFO just landed and posted this here
                  0
                  Кроме ручного метода с fstab существует доступный ещё с 10.6 SL-NTFS
                +1
                А почему бы не использовать ExFAT?
                  0
                  ExFAT менее надежная ОС в сравнении с NTFS плюс, насколько мне известно, плохо поддерживается Linux
                    –1
                    Поддерживается нормально, только, да, не «изкаропки».
                      0
                      В линуксе работает отлично, только пакеты приходится из левых источников ставить (в моем случае — Ubuntu).
                      Но есть еще один нюанс — флешки, отформатированные в ExFAT из-под мака, не открываются потом в венде. Она вообще там раздела не видит. Возможно, дело в том, что по умолчанию макось форматирует в GUID, но это надо уточнить. В любом случае, если форматировать из венды — все три оси будут работать с ФС нормально.
                        0
                        При разбивке через Дисковую утилиту всегда есть выбор схемы разделов, наверняка для больших накопителей по умолчанию используется GUID, но и винда их точно поддерживает (мы же не про XP, да?). Разбивал не раз, проблем на других платформ не имел. Но вот разметку разок потерял (возможно, как раз при работе с XP, у которой поддержка exFat идёт специальным апдейтом), восстановить разметку и данные не удалось (testdisk, R-studio).
                    +1
                    Простите но раз вы купили Mac, то намного проще купить Paragon NTFS за 10-20 у.е. и пользоваться нормально NTFS. Без всяких граблерешений… Я думаю Mac любят за простоту и стабильность :)
                      +3
                      Я относительно недавно баловался хакинтошем, из любопытства. Меня удивило то, что в макоси не оказалось из коробки того, что давно есть забесплатно в линуксе, и прекрасно в нём (в линуксе) работает. При том, что у меня разделы винчестера по-умолчанию не то, что в режиме записи не подхватил макось, он еще даже в режиме чтения не все разделы смог монтировать. Это для меня совсем дикостью оказалось.
                        +3
                        Плюс Макоси в том, что можно и так, и эдак. :) Есть дни, когда хочется тыкать мышкой и ни о чём не думать, а есть – когда хочется консоли, исходников с мейкфайлами, конфигов в Виме и т.д.
                        • UFO just landed and posted this here
                          0
                          А подмена кекста уже не работает в 10.9?
                            0
                            А что это за метод, не в курсе про него
                              0
                              Статья старая, но там есть ссылки на версии до 10.9: macdaily.me/news/how-to-read-and-write-ntfs-in-mac-os-x-10-7-lion/
                              Я таким способом пользовался все время. Все работало очень хорошо и без сбоев.
                            +1
                            По-поводу ntfs-3g: последнее время (несколько месяцев) оно у меня тупит: при подключении внешнего диска с NTFS-разделом выдаёт какую-то ошибку, что не может его смонтировать и всё-такое, но при этом диск нормально монтируется и можно его использовать.
                              +1
                              Для обладателей HDD Seagate есть халявный вариант www.seagate.com/support/downloads/item/ntfs-driver-for-mac-os-master-dl/
                                0
                                Купил в свое время драйвер от Paragon.
                                Не в качестве рекламы — проблем с ним не было.
                                  0
                                  На чистой системе его нет — следовательно его необходимо установить

                                  Лучше не откапывать стюардессу, а установить на чистую систему homebrew.
                                    +1
                                    И в чем у homebrew преимущество перед MacPorts?
                                      0
                                      Ну если коротко, то во всём.
                                        0
                                        Спасибо.
                                    0
                                    С Yosemite не работает.
                                      0
                                      У меня работает, надо только указать верный путь к ntfs-3g. В моем случае он ставился при помощи brew и ледал тут: /usr/local/Cellar/ntfs-3g/2014.2.15/bin/

                                      MacOS 10.10.1
                                      0
                                      Известную проблему про остающиеся папки /Volumes/[label]/.Trashes исправили в osxfuse 3.x, ставить отсюда — github.com/osxfuse/osxfuse/releases

                                      Only users with full accounts can post comments. Log in, please.