18 Апрель 2007 г.

Чтение-запись NTFS с использованием драйвера ntfs-3g в Debian.

NTFS-3g - это свободный драйвер для работы в режиме чтения и записи с файловой системой NTFS. Это еще одно детище файловой системы в пространстве пользователя - FUSE. По умолчанию (без этого драйвера) в большинстве дистрибутивов Linux поддерживается только чтение, для разделов NTFS и чтение/запись, для разделов FAT. Поэтому, если у вас помимо Linux на компьютере установлена Windows, работающая на NTFS, вам понадобится установка дополнительного драйвера, лучшим из которых является NTFS-3g.

Установка в Debian Sarge, Debian Sid и Ubuntu.

Здесь никаких проблем нет, так как данный драйвер входит в репозитории дистрибутивов.

$ sudo apt-get install ntfs-3g

FUSE и пару дополнительных библиотек установятся, как нужные для работы драйвера.

Установка в Debian Etch.

По причинам безопасности NTFS-3g не был вкючен в Debian Etch (выглядит странно, так как уже вышла стабильная версия драйвера 1.0). О том, чем заменить этот драйвер, я так ничего и не нашел. Поэтому решил ставить из backports.

Добавляем backports в список доступных репозиториев:

$ sudo vi /etc/apt/source.list

и вставляем

deb http://www.backports.org/debian sarge-backports main

(в edgy-backports драйвера пока нет)

Загружаем и добавляем ключи:

$sudo wget -O - http://backports.org/debian/archive.key | sudo apt-key add -

(можно и не добавлять, но в таком случае все время при обновлении списка репозиториев будет выскакивать предупреждение)

Обновляем список репозиториев и устанавливаем NTFS-3g:

$ sudo apt-get update
$ sudo apt-get install ntfs-3g
Альтернативный способ:
$ wget ftp://ftp.ru.debian.org/debian/pool/main/n/ntfs-3g/libntfs-3g0_1.328-2_i386.deb
$ wget ftp://ftp.ru.debian.org/debian/pool/main/n/ntfs-3g/ntfs-3g_1.328-2_i386.deb
$ sudo apt-get install fuse-utils libfuse2
$ sudo dpkg -i libntfs-3g0_1.328-2_i386.deb
$ sudo dpkg -i ntfs-3g_1.328-2_i386.deb

Монтирование.

Создаем точку монтирования:

$ sudo mkdir /mnt/win

Монтируем:

$ sudo mount -t ntfs-3g /dev/sda1 /mnt/win -o umask=0

Вместо /dev/sda1 запишите windows раздел вашего диска (обычно это /dev/hda1). Если у вас локаль отличная от UTF8, выставьте ее значение с помощью опции nls (например nls=koi8-r)

Отмонтировать можно командой:

$ sudo umount /mnt/win

Убедившись в том, что все работает правильно, запись можно добавить в файл /etc/fstab:

$sudo vi /etc/fstab

добавляем:

/dev/sda1 /mnt/win ntfs-3g umask=0,nls=ваша_локаль 0 0

(в случае, если у вас несколько разделов - таким же образом добавьте их все)

Монтируем:

$ sudo mount /mnt/win

После монтирования можно зайти в папку /mnt/win и проверить содержимое. Скорость работы с файловой системой должна быть такой же как и с Linux разделами. Также не должно быть никаких проблем с отображением русских имен файлов.

P.S. Будьте осторожны при удалении файлов из папки windows :).

16 комментария(ев):

virens комментирует...

Спасибо за пост!
Теперь всё нужное по ntfs-3g на одной странице. Обязательно воспользуюсь, когда буду его ставить.

serhiy cherevko комментирует...

Пожалуйста. Может и пригодится (если виндовс есть)

GQ комментирует...

В etch можно использовать ntfsprogs
он тоже фузёвую фс предоставляет. только с записью на ntfs у него не так хорошо - иногда говорит, что не может записать, но фс не портит.

serhiy cherevko комментирует...

Ну хорошо хоть не портит фс:).

Анонимный комментирует...

Спасибо сам проверил работает

Максим комментирует...

Чтобы автоматически монтировалось с поддержкой русских имен файлов/каталогов нужно дописать в fstab после defaults ещё и locale=ru_RU.UTF-8

serhiy комментирует...

nls=ваша_локаль
Но я так понял эта опция включена по умолчанию как utf8. Поэтому ее можно и не вносить. У меня русские имена читаются и без нее.

Анонимный комментирует...

Использовал ntfs-3g - как это было:
От действий ntfs-3g не в восторге chkdsk Винды - матерится громко на какие-то мелочи (кажись что свободный кластер помечен как занятый).
Самое кино было когда chkdsk восстановил файл, удаленный ntfs-3g как "потерянный файл" в тот же каталог и под тем же именем, под которым его и удалили.
Короче это не та вещь, которую можно считать stable'ом.

Анонимный комментирует...

При запуске Виндовс чекал диски и не обнаруживал файлы, записанные ntfs-3g :( Правда дистрибутив другой - Федора 6

serhiy комментирует...

ntfs-3g наверное не идеален, но альтернативы я не вижу. Конечно, можно форматнуть раздел с виндой в ext3. Все проблемы враз пропадуть :).

Lutojar комментирует...

Всё поставил, примонтировал, но с нтфсных разделов могу только удалять файлы, записывать на них не могу - пишет Общая ошибка, кстати пришлосе переставлять makedev, но всё равно не работает

serhiy комментирует...

Даже не знаю что сказать. Странно как-то, удалять можно, а записывать нельзя. Напишите подробней о вашей системе, Debian Etch? В свободное время попытаюсь поискать в интернете по этому поводу. И еще, попробуйте скопировать в консоли, что оно выдаст?

Dmitry Kibin комментирует...

/etc/apt/source.list
наверное, всё-таки, sources.list

Подправь, пожалуйста, а то копировать не удобно. Уже три раза обламывался :)

Рыбак комментирует...

нужно разобраться!еще ни до конца понимаю

Олеся комментирует...

Все замечательно получилось и даже смонтировалось корректно отображая русские названия файлов и каталогов (дописывала locale=ru_RU.UTF-8 в fstab). Спасибо!

volockovleha комментирует...

Спасибо за интересную статью.