Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Драйвер и библиотека FUSE общаются между собой с помощью файлового дескриптора, получаемого при открытии /dev/fuse. Этот файл может быть открыт несколько раз. При этом для каждой монтируемой ФС генерируется свой дескриптор.
Сегодня вы узнаете, как можно монтировать разделы NTFS в режиме read+write.
Как работает Captive?
Существует два FUSE-драйвера для NTFS: ntfsmount и сaptive. Первый из них использует тот же код, что и kernel-драйвер. По сути это один и тот же драйвер, который выполняется по-разному. Этот драйвер написан с нуля. В ходе его разработки проводилась большая работа по реверс-инжинирингу. Этот драйвер пока ещё не очень стабилен и предназначен в основном для чтения данных. Записывать он тоже может, но единственное, что можно сделать с помощью этого драйвера – это изменить содержимое существующего файла, оставляя прежним его размер. Это может быть полезно, если вы хотите использовать некий файл-контейнер, лежащий на NTFS, например, PGP-диск или виртуальный винчестер для VMWare. Но в этом случае лучше использовать вариант драйвера, выполняемый в режиме ядра, так как он работает гораздо быстрее.
Captive NTFS использует другой подход. Наподобие того, как это делается в Wine, captive подгружает в адресное пространство позаимствованный из Windows драйвер ntfs.sys и использует его код для записи в NTFS. Это дает достаточно высокую гарантию сохранности данных. Ну так давайте же скорее установим его!
Установка и использование
Для начала вам понадобится FUSE. Если вы приверженец FreeBSD, то вам повезло: fuse4freebsd уже есть в портах. Достаточно установить пакеты sysutils/fusefs-kmod и sysutils/fusefs-libs.
Я пользуюсь Gentoo Linux и поэтому все, что будет сказано дальше в основном относится к этому дистрибутиву и ядру Linux. Итак, в Gentoo установка проходит так:
emerge -av sys-fs/fuse
modules-update
modprobe fuse
chmod 666 /dev/fusе
Для удобства можно добавить FUSE в автозагрузку:
echo "fuse" >> /etc/modules.autoload.d/kernel-2.6
Неудобство этого подхода в том, что каждый раз, когда вы пересобираете ядро, вам необходимо будет пересобирать и sys-fs/fuse. Если вы используете ядро 2.6.14 или старше, то вы можете просто включить поддержку FUSE прямо в ядре.
Symbol: FUSE_FS [=m]
Prompt: Filesystem in Userspace support
Defined at fs/Kconfig:465
Location: