Записываем на NTFS во FreeBSD

По умолчанию разделы с NTFS во FreeBSD доступны только для чтения, но при наличии винчестеров с этой файловой системой требуется иметь возможность записывать. Итак, организуем запись на NTFS из-под FreeBSD.
Все действия выполняем с правами root’a. Ставим fusefs-ntfs:
cd /usr/ports/sysutils/fusefs-ntfs
make install clean

Попутно появлялись опции для:
Options for fusefs-ntfs 2009.4.4
[X] LOCK Lock the device when mounting (avoids access)
[X] UBLIO Enable user space cache for improved speed[/cc]
[cc lang="bash"]Options for fusefs-kmod 0.3.9.p1.20080208_6
[ ] AUTOSETUP Automatic global config file setup[/cc]
[cc lang="bash"]Options for ruby 1.8.7.248_1,1
[ ] ONIGURUMA Build with oniguruma regular expressions lib
[X] RDOC Build and install Rdoc indexes
[ ] DEBUG Compile-in debug info

Установилось:
===============================================

NTFS-3G has been installed, for information, known issues and how to report
bugs see the FreeBSD README:

/usr/local/share/doc/ntfs-3g/README.FreeBSD

Also see the official README (but has some Linux specific parts).

===============================================

===> Compressing manual pages for fusefs-ntfs-2009.4.4
===> Running ldconfig
/sbin/ldconfig -m /usr/local/lib
===> Registering installation for fusefs-ntfs-2009.4.4
===> Cleaning for fusefs-libs-2.7.4
===> Cleaning for libublio-20070103
===> Cleaning for fusefs-kmod-0.3.9.p1.20080208_6
===> Cleaning for ruby18-deplate-0.8.5
===> Cleaning for ruby-1.8.7.248_1,1
===> Cleaning for unzip-6.0
===> Cleaning for automake-1.10.1
===> Cleaning for automake-wrapper-20071109
===> Cleaning for fusefs-ntfs-2009.4.4

Теперь ставим ntfsprogs:
cd /usr/ports/sysutils/ntfsprogs
make install clean

Опции для ntfsprogs:
Options for ntfsprogs 2.0.0
[ ] GNOMEVFS2 Install GnomeVFS 2.0 libntfs interface
[X] LOCK Lock the device when mounting (avoids access)
[X] UBLIO Enable user space cache for improved speed
[ ] UUID Generate DCE compliant UUIDs

Установилось:
===============================================

Linux-NTFS has been installed, for information, known issues and how to report
bugs see the FreeBSD README (describes FUSE and UBLIO options):

/usr/local/share/doc/ntfsprogs/README.FreeBSD

Also see the official README (platform independent).

===============================================

===> Compressing manual pages for ntfsprogs-2.0.0
===> Running ldconfig
/sbin/ldconfig -m /usr/local/lib
===> Registering installation for ntfsprogs-2.0.0
===> Cleaning for ntfsprogs-2.0.0

rehash

в /etc/rc.conf пишем:
fusefs_enable=”YES”

в /etc/sysctl.conf вписываем:
sysctl vfs.usermount=1

Запускаем fusefs:
/usr/local/etc/rc.d/fusefs start

Далее в /dev/ смотрим и узнаём наши разделы с ntfs.
В примере ниже у меня с этой файловой системой разделы: ad1s1, ad1s3, ad1s5, ad4s1.
Для каждого из них создаём в /mnt папки для монтирования:
mkdir /mnt/ad1s1
mkdir /mnt/ad1s3
mkdir /mnt/ad1s5
mkdir /mnt/ad4s1

и пробуем примонтировать:
ntfs-3g /dev/ad1s1 /mnt/ad1s1

Смотрим в /mnt/ad1s1:
ls /mnt/ad1s1
если узнаём родные файлики, значит всё прошло успешно.
Скорее всего будет проблема с кодировками русских названий файлов в консоли, но в gnome2 через, к примеру, nautilus и в расшаренном через samba ресурсе, названия отображаются нормально (проверял).
Далее надо настроить автомонтирование разделов с ntfs, причём таким образом, чтобы это происходило без необходимости залогинится в систему.
Способ этот написал я. Для «гуру» FreeBSD он, возможно, покажется смешным, тем не менее это работает.

Пришлось написать 3-и коротких скриптика.
1-ый создаём и редактируем (он одинаковый для всех):
ee /usr/local/etc/rc.d/scr.sh

содержимое:
#!/bin/sh
echo -n 'mntntfs'

case "$1" in
start)
/usr/local/etc/rc.d/mntntfs.sh
;;
stop)
/usr/local/etc/rc.d/umntntfs.sh
;;
*)
echo "Usage: `basename $0` {start|stop}" >&2
exit 64
;;
esac

exit 0

2-ый создаём и редактируем (названия ваших разделов с NTFS (у меня это — ad1s1, ad1s3, ad1s5, ad4s1) может отличатся, поэтому внимательно исправьте на свои):
ee /usr/local/etc/rc.d/mntntfs.sh

содержимое:
#!/bin/sh

mount_ntfs-3g /dev/ad1s1 /mnt/ad1s1
mount_ntfs-3g /dev/ad1s3 /mnt/ad1s3
mount_ntfs-3g /dev/ad1s5 /mnt/ad1s5
mount_ntfs-3g /dev/ad4s1 /mnt/ad4s1

3-ий — последний скриптик (названия ваших разделов с NTFS (у меня это — ad1s1, ad1s3, ad1s5, ad4s1) может отличатся, поэтому внимательно исправьте на свои):
ee /usr/local/etc/rc.d/umntntfs.sh

содержимое:
#!/bin/sh

umount()
{
if
ps ax | kldstat -n fuse
then
umount /mnt/ad1s1
umount /mnt/ad1s3
umount /mnt/ad1s5
umount /mnt/ad4s1
fi
}

Теперь делаем файлы исполняемыми:
chmod +x /usr/local/etc/rc.d/scr.sh
chmod +x /usr/local/etc/rc.d/mntntfs.sh
chmod +x /usr/local/etc/rc.d/umntntfs.sh

в /etc/rc.conf добавляем строчку:
scr_enable="YES"

Перезагружаемся и разделы NTFS примонтируются автоматически с возможностью записи на них.

Примечание:
1) Не пытайтесь сделать автомонтирование посредством внесения соответствующих записей в /etc/fstab, Fuse грузится позднее /etc/fstab , а значит и монтирование не произойдёт. Так же в /usr/local/share/doc/ntfs-3g/README.FreeBSD в пункте №3 указано использовать слово late в fstab, но проверка показала, что это не работает.
2) Если на винчестерах, которые вы монтируете вам ценна информация, команду newfs не используйте.

Добавить комментарий