Дружба навек. Прикручиваем ntfs к FreeBSD
Рубрика: Заметки на полях, Новости, Работа с ПО | Дата: 23 Апр 2009
Т.к. до перехода на 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
24 апреля 2009 в 10:58
А почему на UFS не перейти? Конечно если коллекция большая, и нет промежуточного винта, то сложности есть…
Впрочем как иллюстрация к работе с NTFS…
Я правда просто mount_smbfs юзал для подобной задачи, там правда сетевой диск был с windows машины. Надо будет попробовать локально к FreeBSD подключить винт с NTFS.
25 апреля 2009 в 5:28
Как-то страхово переводить 2Тб фильмов в UFS
Хотя со временем мб и перейду
17 мая 2009 в 0:29
А в чем приемущество fuse? Посмотрел, у меня во фряхе есть команда mount_ntfs.
29 мая 2009 в 3:25
2Ad1ce:
fuse ntfs-3g позволяет монтировать тома для чтения/записи, системный драйвер – только для чтения
Чтобы решить проблемы с автомонтированием через /etc/fstab читаем внимательно /usr/local/share/doc/ntfs-3g/README.FreeBSD
==============================================================================
3. Mounting at startup with /etc/fstab
==============================================================================
тут приводить всё не буду, но фишка в том, то надо добавить опцию “late”
2 августа 2009 в 8:19
Почитаю, спасибо:) Но насколько я понял по отзывам, комбиная ntfs+utf-8 плохо срабатывает через fstab
14 ноября 2009 в 11:12
почему, при попытке монтирования говорит:
fuse: failed to open fuse device: Device not configured
что ему еще надо конфигурировать?
15 ноября 2009 в 4:44
проверьте, загружен ли модуль fuse, и проверьте, тот ли раздел вы монтируете
16 ноября 2009 в 11:00
полностью:
# mount_ntfs-3g /dev/ad3s1 /mnt/arc1/
fuse: failed to open fuse device: Device not configured
# uname -r
7.2-STABLE
# kldstat
Id Refs Address Size Name
…
5 1 0xc24d9000 23000 linux.ko
6 1 0xc2525000 e000 fuse.ko
# fdisk /dev/ad3
******* Working on device /dev/ad3 *******
parameters extracted from in-core disklabel are:
cylinders=484521 heads=16 sectors/track=63 (1008 blks/cyl)
Figures below won’t work with BIOS for partitions not in cyl 1
parameters to be used for BIOS calculations are:
cylinders=484521 heads=16 sectors/track=63 (1008 blks/cyl)
Media sector size is 512
Warning: BIOS sector numbering starts with sector 1
Information from DOS bootblock is:
The data for partition 1 is:
sysid 7 (0×07),(OS/2 HPFS, NTFS, QNX-2 (16 bit) or Advanced UNIX)
start 63, size 488392002 (238472 Meg), flag 80 (active)
beg: cyl 0/ head 1/ sector 1;
end: cyl 1023/ head 254/ sector 63
The data for partition 2 is:
The data for partition 3 is:
The data for partition 4 is:
# fdisk /dev/ad3s1
******* Working on device /dev/ad3s1 *******
parameters extracted from in-core disklabel are:
cylinders=484515 heads=16 sectors/track=63 (1008 blks/cyl)
Figures below won’t work with BIOS for partitions not in cyl 1
parameters to be used for BIOS calculations are:
cylinders=484515 heads=16 sectors/track=63 (1008 blks/cyl)
Media sector size is 512
Warning: BIOS sector numbering starts with sector 1
Information from DOS bootblock is:
The data for partition 1 is:
sysid 114 (0×72),(unknown)
start 218129509, size 1701990410 (831050 Meg), flag 63
beg: cyl 368/ head 111/ sector 45;
end: cyl 371/ head 101/ sector 51
The data for partition 2 is:
sysid 116 (0×74),(unknown)
start 729050177, size 543974724 (265612 Meg), flag 73
beg: cyl 67/ head 115/ sector 32;
end: cyl 299/ head 114/ sector 44
The data for partition 3 is:
sysid 101 (0×65),(Novell Netware/386 3.xx)
start 168653938, size 0 (0 Meg), flag 74
beg: cyl 114/ head 111/ sector 32;
end: cyl 353/ head 115/ sector 52
The data for partition 4 is:
sysid 0 (0000),(unused)
start 2692939776, size 51635 (25 Meg), flag 0
beg: cyl 0/ head 0/ sector 0;
end: cyl 0/ head 0/ sector 0
16 ноября 2009 в 11:48
Попробуйте монтировать командой ntfs-3g -o rw,locale=ru_RU.UTF-8
16 ноября 2009 в 14:36
результат тот-же
# ntfs-3g -o rw,locale=ru_RU.UTF-8 /dev/ad3s1 /mnt/arc1/
fuse: failed to open fuse device: Device not configured
17 ноября 2009 в 16:16
К сожалению, не могу проверить работу fuse, т.к. в системе нет ни одного ntfs-винта. Могу посоветовать обновить fuse. И кстати, в какой ОС создавался раздел?
18 ноября 2009 в 0:48
был медиа-архив на Вынь2003
с радостью перевел-бы на UFS, но некуда 200 гиг слить для переформатрирования винта
Port: fusefs-ntfs-2009.4.4
B-deps: fusefs-libs-2.7.4 libiconv-1.13.1 libtool-2.2.6a_1 libublio-20070103 pkg-config-0.23_1
R-deps: fusefs-kmod-0.3.9.p1.20080208_6 fusefs-libs-2.7.4 libiconv-1.13.1 libublio-20070103 pkg-config-0.23_1
22 января 2010 в 14:50
Чуваку с проблемой fuse: failed to open fuse device: Device not configured
Решается просто. У тебя несовпадают версии порта и ABI мира. тебе надо обновить порты, обновить исходники мира с ядром, пересобраьт мир и ядро, поставить их и пересобрать порт- и все. проблема получается при обновлении исходных кодов и последующей пересбюорке и использовании нового ядра без пересборки мира, там часть файлов древа исходников используется для сборки порта и возникает десинхронизация
27 мая 2010 в 14:38
нет, надо просто добавить в /etc/rc.conf fusefs_enable=”YES” и запустить /usr/local/etc/rc.d/fusefs start