Ноя 13 2008

FreeBSD + NTFS

Драйвер NTFS в ядре FreeBSD может монтировать разделы, только в режиме чтения, но в портах есть поддержка ntfs через fusefs, которая и позволяет монтировать разделы в режиме записи.
Устанавливаем:

cd /usr/ports/sysutils/fusefs-ntfs
make install clean


Установке предшествует конфигурационный диалог:
1. Lock the device when mounting (avoids access) — блокирует доступ к устройству, пока производится монтирование
2. Enable user space cache for improved speed — позволяет использовать кеш для увеличения скорости доступа

Ставим галочки на обоих пунктах.
После того как сборка и инсталяция окончена, необходимо разрешить запуск fuse, добавим в /etc/rc.conf, такую строку:

fusefs_enable="YES"

Запустим FUSE (на самом деле осуществялется загрузка модуля ядра):

/usr/local/etc/rc.d/fusefs start

Теперь можно попытаться примонтировать раздел. Для начала с помощью sysinstall выясним какой же раздел у нас ntfs. В моем случае это ad10s1. Монтируем его:

mount_ntfs-3g /dev/ad10s1 /mnt

Проверяем, запустив команду mount:

mount
/dev/ad4s1a on / (ufs, local)
devfs on /dev (devfs, local)
/dev/ad4s1e on /usr (ufs, local, soft-updates)
/dev/ad4s1d on /var (ufs, local, soft-updates)
devfs on /var/named/dev (devfs, local)
/dev/fuse0 on /mnt (fusefs, local, synchronous)

Последняя строка и есть наш примонтированный раздел.
Для того, что бы упростить монтирование, можно прописать строку для монтирования в fstab, к сожелению, сделать автоматическим монтирование нельзя, модуль fuse.ko загружается уже после автомонтирования из /etc/fstab, поэтому раздел придется пометить noauto.
Для FreeBSD 6.X в файл /etc/fstab надо внести такую строку:

/dev/ad10s1              /mnt            ntfs-3g rw,noauto         0       0

Для FreeBSD 7.0 все становится несколько сложнее, поскольку список поддерживаемы файловых систем вкомпилен в код mount. Можно изменить исходник mount, а можно просто подменить mount_ntfs на mount_ntfs-3g.
Так и сделаем:

#Переименуем mount_ntfs в mount_ntfs-kern
mv /sbin/mount_ntfs /sbin/mount_ntfs-kern
#Ставим симлинк
ln -s /usr/sbin/mount_ntfs-3g /usr/sbin/mount_ntfs

Теперь, поправим /etc/fstab:

/dev/ad10s1             /mnt            ntfs rw,noauto         0       0

После этих настроек монтировать раздел можно так:

mount /mnt

На этом настройка закончена.

Добавить в закладки:

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru
  • By Александр, 13.02.2009 @ 18:22

    В примере допиши, что перед тем как выполнить mount_ntfs-3g /dev/ad10s1 /mnt, нужно модуль подгрузить fuse

  • By hilik, 14.02.2009 @ 23:44

    Спасибо Александр, исправил.

  • By mak_v_, 07.04.2009 @ 00:21

    Огромное спасибо, статья оч.помогла

  • By Lera, 18.04.2009 @ 15:11

    Еще бы продолжение по поводу монтирования с локалями, что бы видеть русские буки на НТФС разделе!?

  • By hilik, 19.04.2009 @ 12:25

    Нет у меня сейчас диска с NTFS, что бы разобраться с русскими буквами. Появится, обязательно разберусь.

  • By iam_numlock, 22.04.2009 @ 15:11

    по поводу монтирования NTFS с локалями
    ntfs-3g /dev/ad10s5 /mnt/e -o locale=ru_RU.UTF-8

  • By фосса, 16.05.2009 @ 13:18

    Кстати, автомонтирование тоже можно замечательно сделать.

    Копируем fuse.ko (он лежит в /usr/local/modules) в /boot/modules, добавляем fuse_load=»YES» в /boot/loader.conf, перезагружаемся и всё будет мжвячно }=

  • By orbital, 26.04.2010 @ 14:42

    сделал всё как написано, но
    [root@inter /usr/local/etc/rc.d]# mount_ntfs-3g /dev/da0s1 /mnt
    ntfs_attr_pread_i: ntfs_pread failed: No such file or directory
    Failed to read $AttrDef, unexpected length (-1 != 2560).
    Failed to mount ‘/dev/da0s1’: Input/output error
    NTFS is either inconsistent, or there is a hardware fault, or it’s a
    SoftRAID/FakeRAID hardware. In the first case run chkdsk /f on Windows
    then reboot into Windows twice. The usage of the /f parameter is very
    important! If the device is a SoftRAID/FakeRAID then first activate
    it and mount a different device under the /dev/mapper/ directory, (e.g.
    /dev/mapper/nvidia_eahaabcc1). Please see the ‘dmraid’ documentation
    for more details.
    [root@inter /usr/local/etc/rc.d]#

Other Links to this Post


Украинская Баннерная Сеть