Учимся читать 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