Запись в NTFS средствами Mac OS X
Как оказалось, использование этого небезопасно, используйте только если нет другого выхода.
Как известно пользователям «маков», Mac OS X умеет монтировать диски с файловой системой NTFS только на чтение. Обычно, чтобы писать скачивают сторонний драйвер NTFS — либо бесплатный NTFS-3G, либо какие-то платные драйвера (Tuxera или Парагон).
Ночью я случайно наткнулся на рецепт, позволяющий задействовать для записи на NTFS внутренний драйвер Mac OS X (рецепты немного различаются для «Снежного барса» и «Льва».
В сегодняшей утренней пробке я сделал программу, которая этот рецепт автоматизирует, листинг ниже, скачать можно с «Гитхаба» (запускать — через bash).
Плюсы следующие.
Во-первых, это высокая скорость записи (30МБ/сек). Во-вторых, с этим решением файл удаляется в корзину. В-третьих, никаких сторонних драйверов. Но надо быть аккурантым — диск обязательно нужно отмонтировать от «Винды» до отключения, иначе Mac OS смонтирует его в режиме только для чтения.
Добавлено позднее: Сергей Васильев предостерегает от использования родного драйвера для работы с NTFS: говорит, что можно разрушить файловую систему.
#!/bin/bash
ARCH=`uname -r | cut -d. -f1`
NMOUNT=/sbin/mount_ntfs
NLIBRA=/System/Library/Extensions/ntfs.kext/Contents/MacOS/ntfs
function usage {
cat <<USAGE
NTFS writing enabler (//bolknote.ru Nov 2011)
usage: $0 <action>
<action> - "enable" for enable NTFS write, "disable" otherwise.
USAGE
exit
}
function ntfsdisable {
if [ -e "${NMOUNT}_orig" ] && [[ -e "${NLIBRA}_orig" || $ARCH -eq 10 ]]; then
sudo /bin/mv "${NMOUNT}_orig" "$NMOUNT"
[ $ARCH -eq 11 ] && sudo mv "${NLIBRA}_orig" "$NLIBRA"
echo Disabled
else
echo "Error: cannot disable NTFS. Already disabled?"
fi
}
function ntfsenable {
ntfsenable$ARCH
echo Enabled
}
function ntfsenable10 {
echo -n 'Please enter your administrator password. '
sudo /bin/mv "$NMOUNT" "${NMOUNT}_orig"
/bin/cat << MNT | sudo /usr/bin/tee "$NMOUNT" >/dev/null
#!/bin/sh
/sbin/mount_ntfs_orig -o rw "\$@"
MNT
sudo /usr/sbin/chown root:wheel "$NMOUNT"
sudo /bin/chmod 755 "$NMOUNT"
}
function ntfsenable11 {
TEMP=`mktemp -d /tmp/ntfs$$.XXXXXX` || (
echo 'Cannot create temporary directory.'
exit
)
trap "/bin/rm -rf $TEMP" EXIT
echo -n 'Please wait. Downloading...'
curl -o "$TEMP/arch.zip" 'http://dl.dropbox.com/u/9349175/datahost-macdaily/NTFS_Enabler.zip' 2>&- 1>&- ||
curl -o "$TEMP/arch.zip" 'http://ntfs_enabler.chat.ru/NTFS_Enabler.zip' 2>&- 1>&- || (
echo 'Cannot download NTFS enabler bundle.'
exit
)
echo ' done'
unzip "$TEMP/arch.zip" -d "$TEMP" 2>&- 1>&-
[ `md5 "$TEMP/NTFS_Enabler/ntfs"` == a88031b3257379257086af017891f229 ] || (
echo "Error: invalid checksum NTFS enabler bundle"
exit
)
ntfsenable10
sudo /bin/mv "$NLIBRA" "${NLIBRA}_orig"
sudo /bin/mv "$TEMP/NTFS_Enabler/ntfs" "$NLIBRA"
sudo /usr/sbin/chown root:wheel "$NLIBRA"
sudo /bin/chmod 755 "$NLIBRA"
}
if [[ $ARCH -lt 10 || $ARCH -gt 11 ]]; then
echo 'Unknown Mac OS version (Snow Leopard or Lion required).'
exit
fi
[ "$1" == "" ] && usage
case "$1" in
enable)
ntfsenable
;;
disable)
ntfsdisable
;;
esac
у меня кто-то из знакомых пробовал. жалуются, что не очень стабильно, бывает и файлы портит
Комментарий для jimidini.ya.ru:
Это на «Барсе» было или на «Льве» тоже?
Спасибо за ссылку на рецепт, надо проверить, а то ntfs-3g очень медленный, а Paragon достал своим кернел-паником, когда опустошаешь корзину.
Комментарий для profiles.google.com/jankkhvej/:
Я немного потестировал, пока всё хорошо. Конечно это не говорит о том, что хорошо будет и в будущем :)
Запустить можно, например, так:
curl https://raw.github.com/bolknote/shellgames/master/mac_ntfs_write_enabler.sh
bash mac_ntfs_write_enabler.sh enable
Сергей Васильев, чьи выводы указаны в качестве плюсов/минусов на MacDaily, в дальнейшем предостерегает от использования родного драйвера. Есть вероятность столкнуться с испорченной файловой системой.
http://blog.nolar.info/ntfs-3g-in-mac-os-x-lion-10-7-with-read-write-support/
Комментарий для artemp.pip.verisignlabs.com:
Ого, спасибо! Сейчас добавлю в пост.
Буквально вчера дошли-таки руки решить для себя эту проблему записи на NTFS из под OSX Lion, помогла статья на хабре «NTFS-3G в OS X Lion»
http://habrahabr.ru/blogs/macosx/127200/
Не ожидал я, что с приобретением мака меня будут ждать такие приключения.
Комментарий для http://viju.tvercity.net/ru/weblog:
Я подумываю приобрести что-нибудь коммерческое.
Комментарий для Евгения Степанищева:
Всё плохое, глюки есть во всех коммерческих. Paragon гарантированно падает при очистке корзины. Tuxera, хоть и как-то общая с ntfs-3g, падает вообще просто когда захочет, в самые неожиданные моменты, чаще всего при подключении флешки. Валит же ж целиком ядро, серый экран смерти.
Так что уж лучше бесплатное и медленное, или нативное с хаком. А разрушение ФС может произойти только в случае использования разделов со сжатием или расширенными фичами. Простые флешки-диски не ломаются.
А ещё можно для надёжности отказаться от NTFS хотя бы на своих дисках-флешках — ExFAT или HFS+ понимает 99% устройств типа плееров, и любой Windows от XP и выше понимает ExFAT.
А чего вы хотели? NTFS — проприетарная файловая система. Все немикрософтовские решения — это реверс-инжениринг. Конечно, они работают нестабильно. Держать важные данные в ntfs, если у тебя не винда, нельзя ни в коем случае.
Комментарий для somee:
Не все.
Будет ли такая возможность на Mountain Lion?
Комментарий для Михаил:
Да это же небезопасное решение. Лучше купите драйвер какой-нибудь. Например: http://www.tuxera.com/products/tuxera-ntfs-for-mac/tuxera-ntfs-for-mac-2012-russian/
Комментарий для Евгения Степанищева:
Спасибо. Не настолько часто пользуюсь, чтобы покупать, но всё же иногда пользовался вашим скриптом, очень удобно было.
Комментарий для Михаил:
Вот, есть инструмент, который делает то же самое, только с красивым инсталлятором: http://macdaily.me/news/ntfs-tools-for-mac-os-x-v2-1/