Учимся читать ntfs
Т.к. до перехода на FreeBSD на машине стояла Win2003 то соответственна вся немалая коллекция фильмов хранилась на ntfs-томах. Переводить все это дело под ufs не было никакого желания.
Для нормальной (чтение и запись) поддержки ntfs существует пакет ntfs-3g. Ставим из портов:
snake-hostel5# cd /usr/ports/
snake-hostel5# make search name='ntfs'
Port: fusefs-ntfs-1.1004
Path: /usr/ports/sysutils/fusefs-ntfs
Info: Mount NTFS partitions (read/write) and disk images
Maint: alepulver@FreeBSD.org
B-deps: fusefs-libs-2.7.0_1 libtool-1.5.24 libublio-20070103 pkg-config-0.22_1
R-deps: fusefs-kmod-0.3.9.p1_2 fusefs-libs-2.7.0_1 libublio-20070103 pkg-config-0.22_1
WWW: http://www.ntfs-3g.org/Port: ntfsprogs-1.13.1_3
Path: /usr/ports/sysutils/ntfsprogs
Info: Utilities and library to manipulate NTFS partitions
Maint: farrokhi@FreeBSD.org
B-deps: libublio-20070103
R-deps: libublio-20070103
WWW: http://www.linux-ntfs.org/
snake-hostel5#
Нам нужен пакет от fuse. После установки прописываем его в автозагрузку:
snake-hostel5#echo 'fusefs_enable="YES"' >> /etc/rc.conf
и запускаем:
snake-hostel5# /usr/local/etc/rc.d/fusefs start
Монтируем том:
snake-hostel5#ntfs-3g -o rw,locale=ru_RU.KOI8-R /dev/ad0s1 /media
Наступаем на первые грабли – ntfs для именования использует utf-кодировку. А пакет ntfs-3g тоже работает только с utf-8.
Значит, монтируем с utf:
snake-hostel5#ntfs-3g -o rw,locale=ru_RU.UTF-8 /dev/ad0s1 /media
В системной консоли по прежнему кракозябры 🙂 Но т.к. 95% всего времени мы работаем по ssh или samba, то делаем следующее:
$ ee ~/.login_conf
Добавляем/редактируем:
me:snake:
:charset=UTF-8:
:lang=ru_RU.UTF-8:
Сохраняемся, выходим. В параметрах PuTTY или другого ssh клиента выставляем кодировку по умолчанию: UTF-8.
Коннектимся. Получаем нормально отображаемые русские буквы. (не забудьте при необходимости пересобрать mc с поддержкой utf-8).
Некоторые советуют пересобрать ядро со следующими опциями:
options LIBICONV
options NTFS
options NTFS_ICONV
Но как по мне, что с ними, что без них было одинаково приятно. На моей машине скорость записи на ntfs-том была примерно 20Мбайт/с, чтение – около 50Мбайт. Не ахти конечно, но пойдет 🙂
С добавлением в fstab так же есть небольшие проблемы, потому fuse стартует позже, чем проверяется fstab. Я вышел из положения, добавив в rc.local необходимые команды (синтаксис тот же, что и при монтировании в консоли):
#!/bin/sh
ntfs-3g -o rw,locale=ru_RU.UTF-8 /dev/ad4s1/ /mnt/media0
ntfs-3g -o rw,locale=ru_RU.UTF-8 /dev/ad1s5/ /mnt/media1
ntfs-3g -o rw,locale=ru_RU.UTF-8 /dev/ad0s1/ /mnt/media2
ntfs-3g -o rw,locale=ru_RU.UTF-8 /dev/ad3s5/ /mnt/media3