IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Пингвинятник (ОС *NIX) (https://www.imho.ws/forumdisplay.php?f=76)
-   -   HOWTO mount NTFS with full read/write access (https://www.imho.ws/showthread.php?t=90435)

Saruman 04.08.2005 20:19

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. На всякий случай, полный список зависимостей из гентовского ебилда:
Цитата:

RDEPEND="sys-libs/readline
>=gnome-base/orbit-2.8.2
gnome-base/gnome-vfs
dev-libs/popt
dev-libs/glib
>=dev-libs/openssl-0.9.7c
>=dev-libs/libxml2-2.4.29
>=sys-fs/lufis-0.3
>=sys-fs/fuse-2.2"

DEPEND="${RDEPEND}
sys-fs/ntfsprogs"
После успешной компиляции необходимо предоставить требуемые бинарники из Windows. Путей несколько:
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
Ессно, заменяем имя раздел и точку монтирования на необходимые. Voila, если все прошло успешно - то можно начинать удалять файлы, создавать файлы и вообще всячески писать на свежепримонтированный раздел.

Если на 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.

GuRman 11.08.2005 10:04

Saruman
Хм, ну есть впринципе способ проще. А точнее скачать драйвер для нтфс. Хотя он платный и это будет варез. Но скорость будет больше. Интересно? :)

Saruman 11.08.2005 15:54

GuRman
интересно, озвучивай - попробуем 8)

GuRman 11.08.2005 16:14

Ну это называется Paragon NTFS правда полную я что-то не смог сейчас найти. У меня есть а одном винте вроде, нужно порыться, если найду, то выложу вечерком

Saruman 11.08.2005 17:18

Спасибо за наводку, дистриб я уже нашел. Теперь вопрос только в том, насколько это надежно. Captive-NTFS работает через родные виндовые драйверы, посему там все проще и прозрачнее. Paragon же, как я понял, реализовали свои драйверы (реверсинг NTFS? хм %-\ ), надежность которых у меня вызывает сомнение.
Личный опыт использования данного драйвера у кого-либо имеется?

GuRman 11.08.2005 17:30

Ну если кому-то нужен дистр, а не демо который писать не разрешает то в ПМ или асю :)

Saruman
Да, они реализовали собственный драйвер, т.к. исходных кодов NTFS как понимаешь нет. Я им пользуюсь уже прилично. Единственный трабл, который у меня иногда возникал, то что некоторые фаилы без рута никак не удалить, хоть и ставил разрешение на обычного пользования. Но потерь данных никаких не возникало. Еще вопросы есть? ЗЫ да и скорость там побольше :rolleyes: Протестирую и напиши отзывы

tiranozaurus 22.08.2005 20:02

а где я могу найти gthread-2.0, gmodule-2.0 (обе >=2.0.0); l libxml-2.0(>=2.8.8)
под дебиан сардж

sensor_ua 30.08.2005 11:06

Нашёл и бросил в варез
http://www.imho.ws/showthread.php?t=62499
- Paragon NTFS for Linux.
Пишет, что типа для ядер 2.2, 2.4, 2.6.
У меня SuSe 9.3. Эта штука не компилится;( Застряёт на системных хидерах с с объявлениями external irq функций. А хотелось бы ей помочь

Raven B. 03.09.2005 14:54

Доброго времени суток.

Скачал. (Мои благодарности Он-Сам-Знает-Кому.)
В архиве:
install.sh
Судя по докам из него должно собрать маке файл.... (или я чего то не понял)
У меня он заявляет на ./install.sh - permission denied. Хотя а под rootом.
ОС: FreeBSD 5.2.1 - STABLE.

Что я неправильно делаю ?
Как эту штуку ставить ?

З.Ы. Пробовал на сайте парагона по докам шарить - бесполезно. Инструкций не нашол... Только то что в дистрибютиве прилагается и ФАК на !5! вопросов...

sensor_ua 03.09.2005 15:12

А Linux-Base на FreeBSD стоит? И ещё, фря 5+ точно сама не умеет писать на NTFS? Что-то я на 5.2.1 делал и помню, что на запись есть траблы с кириллицей, а так работало

Raven B. 03.09.2005 16:20

Гм. у меня она только читает.
в fstab стоит
/dev/... /mnt/... ntfs rw 0 0.
Linux-Base поставил.

sensor_ua 03.09.2005 16:32

man смотри - там, кажись, не rw, а W или похожее должно быть

Raven B. 03.09.2005 16:36

ок. сейчас почитаю.

Raven B. 03.09.2005 20:31

--------
Почитал. Ключ -W отвечает за кодировку

Saruman 03.09.2005 20:41

народ, вы чего, откуда нативная поддержка полноценной записи на NTFS в ядре? Read + limited write

Raven B. 03.09.2005 20:46

ага. поэтому и хотелось бы установить драйвера от Paragon.
Подскажите как ? (Вопрос в #9)

tiranozaurus 10.09.2005 18:45

у меня в сарже такая же фиговина, говорит, что не имею права на инсталляцию, хотя права взял заранее :rolleyes:

Raven B. 10.09.2005 19:26

Походу: если файл разрешит на исполнение ;) и запустить как скрипт (по расширению .sh об этом можно догадатся)
, то он все равно не хочет собиратся... :(

sensor_ua 12.09.2005 10:07

Он использует хидеры из исходников ядра Linux. А где такое добро во фре? И Linux-base каким ядром отзывается? там в скрипте есть строчки, пуляющие всю диагностику компиляции в дев/нул - можешь грохнуть их и увидеть, на чём оно застряло.


Часовой пояс GMT +4, время: 23:29.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.