![]() |
HOWTO mount NTFS with full read/write access
Вложений: 1
Не раз встречал на форуме вопросы "а как мне подмонтировать ntfs-раздел и что-нибудь записать на него" с ответами типа "подмонтировать легко, а вот писать не стоит" (да и сам такие давал 8) ). И вот, после личного тестирования в течение некоторого времени и решения возникавших багов, предлагаю краткое howto на тему "использование captive-ntfs для монтирования ntfs-разделов с полным доступом на чтение-запись" (lol, прям тема для реферата 8)) ).
Сразу предупреждаю - я работаю в Gentoo, посему все вопросы будут освещены именно с позиций этого дистриба. Обладателям других дистрибутивов найти у себя аналоги предлагается самостоятельно 8) Итак, для начала: что это такое и зачем оно нужно. Известно, что последние версии ядра позволяют писать на ntfs-разделы, но в очень ограниченном виде (только в имеющиеся файлы, без изменения их размера, без создания/удаления). В таком виде данная запись практически ни для чего непригодна. Проект captive-ntfs реализует другой подход - он использует родные бинарники windows (в частности, ntfs.sys и ntoskrnl.exe), эмулируя их окружение в линуксе на базе кода ReactOS или собственного. В результате решается проблема закрытости спецификации NTFS - вместо реверсинга самой файловой системы, мы используем для работы с ней ее родные драйвера, которые это умеют делать лучше всех 8) Никаких репортов о порушенных при использовании captive-ntfs разделах в инете я не встретил, сам в процессе тестирования также фатальных проблем не заметил, так что заверениям на странице проекта о том, что это безопасный метод записи, думаю, можно верить. Полагаю, для вступления этого достаточно, с подробностями можно ознакомиться на сайте. Что нам понадобится для установки: 1. Собственно линукс-система и знание того, какие разделы мы хотим смонтировать. 2. Пакет captive-ntfs. Живет на данной странице, компилируется и устанавливается из исходников обычным образом (./configure && make && make install) либо ищется готовый пакет в своем дистрибутиве (в Gentoo он есть, поэтому в ней достаточно сказать emerge captive). 2a. Ессно, должны быть установлены все требуемые зависимости. В частности, нужны gnome-vfs и fuse. На всякий случай, полный список зависимостей из гентовского ебилда: Цитата:
1. Монтируем обычным образом ntfs-раздел с установленной на нем Windows и запускаем утилиту captive-install-acquire. Она произведет поиск по смонтированным разделам и скопирует все файлы, которые сможет найти. У меня по неизвестной причине не был найден ntoskrnl.exe, посему переходим к пункту 2. 2. Если какие-то файлы не могут быть найдены, но они точно есть - просто копируем их с ntfs-раздела в /var/lib/captive. 3. И последний случай - если нет установленной windows, то captive-install-acquire скачает с сайта MS пакет XP SP1 и возьмет из него требуемые файлы. После того, как все файлы на месте - мы готовы к монтированию. Отключаем старые ntfs-разделы и заново монтируем их следующим образом: Код:
mount -t captive-ntfs /dev/hda1 /mnt/win/cЕсли на ntfs-разделе имеются файлы с русскими именами, а кодировка в линуксе - не UTF8, то они наверняка будут показаны как попало (т.е. нечитабельно). Для этого патчим файл /src/client/lufs/captivefs-vfs.c, изменяя в нем строку setlocale(LC_ALL, "") на setlocale(LC_ALL, "ru_RU.cp1251") (или на свою кодировку, если она не cp1251). Патч для cp1215 для версии captive-1.1.5 прилагается. При этом все равно сохраняется проблема кодировки при использовании для монтирования /etc/fstab (или даже init-скрипта). В качестве обходного пути я написать init-скрипт, подключающий мои разделы, и когда нужно прочитать на них русские буквы - просто вызываю его из консоли с параметров restart, одна команда - и все разделы с корректной кодировкой. Нужно мне это редко и русских файлов у меня мало, посему данная проблема меня мало заботит. Если кто-то найдет окончательное решение - с удовольствием воспользуюсь. И последнее - минусы (ну а как же без них 8) ): 1. Первый и самой основной - очень низкая скорость записи, порядка 300-500 kb/sec. Но это лучше, чем вообще не иметь такой возможности. 2. Иногда наблюдаются проблемы при удалении большого количества файлов - captive долго думает и ворочается, потом оказывается, что все файлы на месте. Но, в любом случае, ни к каким крешам это не ведет и такая ситуация лично у меня возникает редко. Предложение, пожелания, дополнения - приветствуются. PS: при написании данного HOWTO использовались материалы соответствующей статьи из gentoo-wiki и статья на сайте Simon Litt Software Запись NTFS в Linux. |
Saruman
Хм, ну есть впринципе способ проще. А точнее скачать драйвер для нтфс. Хотя он платный и это будет варез. Но скорость будет больше. Интересно? :) |
GuRman
интересно, озвучивай - попробуем 8) |
Ну это называется Paragon NTFS правда полную я что-то не смог сейчас найти. У меня есть а одном винте вроде, нужно порыться, если найду, то выложу вечерком
|
Спасибо за наводку, дистриб я уже нашел. Теперь вопрос только в том, насколько это надежно. Captive-NTFS работает через родные виндовые драйверы, посему там все проще и прозрачнее. Paragon же, как я понял, реализовали свои драйверы (реверсинг NTFS? хм %-\ ), надежность которых у меня вызывает сомнение.
Личный опыт использования данного драйвера у кого-либо имеется? |
Ну если кому-то нужен дистр, а не демо который писать не разрешает то в ПМ или асю :)
Saruman Да, они реализовали собственный драйвер, т.к. исходных кодов NTFS как понимаешь нет. Я им пользуюсь уже прилично. Единственный трабл, который у меня иногда возникал, то что некоторые фаилы без рута никак не удалить, хоть и ставил разрешение на обычного пользования. Но потерь данных никаких не возникало. Еще вопросы есть? ЗЫ да и скорость там побольше :rolleyes: Протестирую и напиши отзывы |
а где я могу найти gthread-2.0, gmodule-2.0 (обе >=2.0.0); l libxml-2.0(>=2.8.8)
под дебиан сардж |
Нашёл и бросил в варез
http://www.imho.ws/showthread.php?t=62499 - Paragon NTFS for Linux. Пишет, что типа для ядер 2.2, 2.4, 2.6. У меня SuSe 9.3. Эта штука не компилится;( Застряёт на системных хидерах с с объявлениями external irq функций. А хотелось бы ей помочь |
Доброго времени суток.
Скачал. (Мои благодарности Он-Сам-Знает-Кому.) В архиве: install.sh Судя по докам из него должно собрать маке файл.... (или я чего то не понял) У меня он заявляет на ./install.sh - permission denied. Хотя а под rootом. ОС: FreeBSD 5.2.1 - STABLE. Что я неправильно делаю ? Как эту штуку ставить ? З.Ы. Пробовал на сайте парагона по докам шарить - бесполезно. Инструкций не нашол... Только то что в дистрибютиве прилагается и ФАК на !5! вопросов... |
А Linux-Base на FreeBSD стоит? И ещё, фря 5+ точно сама не умеет писать на NTFS? Что-то я на 5.2.1 делал и помню, что на запись есть траблы с кириллицей, а так работало
|
Гм. у меня она только читает.
в fstab стоит /dev/... /mnt/... ntfs rw 0 0. Linux-Base поставил. |
man смотри - там, кажись, не rw, а W или похожее должно быть
|
ок. сейчас почитаю.
|
--------
Почитал. Ключ -W отвечает за кодировку |
народ, вы чего, откуда нативная поддержка полноценной записи на NTFS в ядре? Read + limited write
|
ага. поэтому и хотелось бы установить драйвера от Paragon.
Подскажите как ? (Вопрос в #9) |
у меня в сарже такая же фиговина, говорит, что не имею права на инсталляцию, хотя права взял заранее :rolleyes:
|
Походу: если файл разрешит на исполнение ;) и запустить как скрипт (по расширению .sh об этом можно догадатся)
, то он все равно не хочет собиратся... :( |
Он использует хидеры из исходников ядра Linux. А где такое добро во фре? И Linux-base каким ядром отзывается? там в скрипте есть строчки, пуляющие всю диагностику компиляции в дев/нул - можешь грохнуть их и увидеть, на чём оно застряло.
|
| Часовой пояс GMT +4, время: 23:29. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.