it-консалтинг и аутсорсинг
что мы делаем контакты блог

Поддержка NTFS в Mac OS X 10.6

Наташа Персиянова 14.04.2011

Как-то на посиделках с коллегами мы дискутировали про разные способы поддержки NTFS на Mac OS X – про то нужно или не нужно использовать дополнительное ПО, коль Mac OS X неофициально поддерживает запись на NTFS диски, обсуждали проблемы связанные с коммерческими драйверами NTFS и кто-то предложил сравнить скорость работы используя разные способы поддержки NTFS.
Из-за лени пары коллег заняться этим пришлось мне.
a beautiful mind [explore]

Итак:

С NTFS дисками мы сталкиваемся, работая в Windows окружении (перенести файлы с компьютера на компьютер, прочитать наружный диск, принесенный коллегой; FAT нам не помощник, так как не поддерживаются большие файлы, отсюда поддержка exFAT в Windows 7 и Mac OS X 10.6.5 и выше) или когда нам нужно работать с BootCamp ( Windows Vista и Windows 7 больше не поддерживают FAT для загрузочного тома).

Mac OS X, начиная с 10.5, прекрасно читает NTFS диски, но не пишет на них.

В свое время Apple заказала (насколько я помню, товарищам из NTFS-3g) разработку драйвера NTFS для Mac OS X. Какие-то беты Mac OS X 10.6 Snow Leopard выходили с поддержкой записи, но в релизе она не появилась. В сети тут же появились рецепты, как вернуть Mac OS X 10.6 возможность писать на NTFS диски.
Будем считать, что это нестабильная фича и Apple отключила ее неспроста (а не для того, чтобы дать заработать third-party компаниями). Я с проблемами не сталкивалась, но считайте, что вы предупреждены.

Для того, чтобы включить запись на NTFS диски достаточно

A) смонтировать этот диск вот так

mount_ntfs -o rw /dev/disk1s1 /Volumes/Maggotbox

Для упрощения жизни пользователи прибегают к замене /sbin/mount_ntfs скриптом, вызывающим mount_ntfs -o rw

B) или отредактировать fstab, чтобы диск всегда монтировался в режиме для записи.

Например, для моего диска достаточно поместить в /etc/fstab запись

LABEL=Maggotbox none ntfs rw

Минус этого метода в том, что такую запись придется делать для каждого тома NTFS, указывая Label или UUID диска (узнать можно с помощью Disk Utility, System Profiles, system_profiler, diskutil).
Именно поэтому, появилась парочка подручных утилит.
Например NTFS Mounter и SL-NTFS.
Первая программка (видимо) использует метод A, вторая (наглядно) – метод B.

Диски должны быть корректно отмонтированы в царстве зла (используя “безопасное отключении” в трее). Иначе, диски смонтируются в режиме “только для чтения” и вы увидите в kernel.log

Apr 14 13:49:12 95-31-19-157 kernel[0]: NTFS-fs error (device /dev/disk1s1, pid 74380): ntfs_system_inodes_get(): $LogFile is not clean.  Mounting read-only.  Mount in Windows.
или
Apr 14 15:48:29 95-31-19-157 kernel[0]: NTFS-fs warning (device /dev/disk1s1, pid 427): ntfs_system_inodes_get(): NTFS volume is dirty.  You should unmount it and run chkdsk.
bash-3.2# 

Всегда можно использовать force (так поступает и NTFS-Mounter); считайте, что вы предупреждены во второй раз.

А теперь к тестам, фанаты IXBT.
Я использую Lacie Rugged, в котором заменили диск на какой-то Hitachi, подключенный по USB.

1 Используем только системные средства:

34MB чтение, 30MB запись.

2 Ставим NTFS-3g и перезагружаемся.

Ого, NTFS-3g не работает!
Это потому, что ядро на моем новом ноутбуке работает в 64-разрядном режиме, а NTFS-3g пока только в 32-разрядном (коммерческий вариант Tuxera NTFS в 64-разрядном). Возможно, я бы могла скомпилировать 64-битную версию NTFS-3g, не смотрела.
Перезагружаемся, удерживая нажатыми клавиши 3 и 2.

27MB чтение, 9MB запись.

3 Включаем кэширование в NTFS-3G.

26MB чтение, 13MB запись.
Ого, это все равно явно ниже, чем система.

4 Ставим коммерческий вариант – Tuxera NTFS (15-дневная trial версия). Перезагружаемся.

32MB чтение, 30MB запись.

5 Попробуем-ка Paragon NTFS , поддержим отечественного производителя (10-дневная trial версия). Ради этого еще раз перезагружаемся.
33MB чтение, 30MB запись.

Ну что ж, лично я перезагрузилась в последний раз и продолжила использовать NTFS Mounter

Внимание: я не планирую проверять RAID массив, подключаемый по FibreChannel или ставить полноразмерный SATA диск, отформатированный в NTFS, в свой Mac Pro.
Скорее всего, эти тесты показали бы для Tuxera и Paragon самые лучшие результаты.
Я просто проверила бытовую работу с портативными дисками, отформатированными в NTFS, подключаемыми к Маку по USB, то что достаточно для “обычного пользователя”. И у меня никогда не возникало проблем с поддержкой ACL или необходимости сжимать файлы на лету (еще одна из сотен фич New Technology File System).

  • Одно измерение? Отсутствие контроля?
    Ваша, Наташа, выборка нерепрезентативна!

  • Рестарт после установки.
    Ну и я не с barefeats.com

  • Desperant

    Я уже 100 лет работаю с внешним диском на NTFS и всё пишится и читается, как на маке так и на винде. Странные у вас проблемы…

  • А у меня первым способом (SL-NTFS) вообще вот так получилось

    HFS конечно проигрывает, но тоже ничего

    Попутно обнаружился баг Speed Disk, если он видит 2 диска с одинаковыми именами.

    Пора переходить на Blackmagic Disk Speed Test 1.0 или AJA System Test

  • *HFS’у проигрывает

  • kir3d

    > Mac OS X, начиная с 10.5, прекрасно читает NTFS диски, но не пишет на них.
    Mac OS X и в 10.4 NTFS читала.

    Paragon NTFS пишет-то пишет, не знаю как сейчас, но раньше возникала неприятная ошибка при копировании большого кол-ва файлов – в произвольный момент могла выскочить ошибка, что такой файл уже существует и система предлагала прервать копирование.

    В итоге вообще отказался от NTFS, хотя иногда приходится иметь дело с NTFS USB дисками, но пишу на 120Gb FAT32, проблему файлов больше 4Гб решаю так:
    Резать в Mac OS X Terminal: split -b 4000m filename.ext
    Собрать в Mac OS X Terminal: cat filename.ext.* > filename.ext
    Собрать в Windows CMD.EXE: copy /b filename.ext.aa+filename.ext.ab+filename.ext.ac filename.ext

  • Андрей

    И еще кто-то смеет утверждать, что на WINDOWS нужно устраивать танцы с бубном? А комметарий Андрей Раньков с резкой файлов вообще убил. последний раз я резал mp3 файл в 10 классе школы лет 12 назад, чтобы записать его на дискету.