Работа с NTFS с помощью утилит из пакета ntfsprogs

()

Многие пользователи, использующие на своих компьютерах одновременно Windows и Linux, сталкиваются с проблемой доступа к разделам NTFS из Linux. Сейчас для решения этой проблемы обычно используют популярный драйвер ntfs3g, работающий в пространстве пользователя через fuse. Однако есть ещё утилита ntfsmount из пакета ntfsprogs, разработанного в рамках проекта linux-ntfs.

Основным преимуществом ntfsmount перед ntfs3g является поддержка чтения зашифрованных и сжатых файлов. В остальном эти два драйвера очень схожи. Но в пакете ntfsprogs кроме собственно ntfsmount есть ещё ряд полезных утилит, таких как ntfsresize, ntfsundelete, ntfslabel, ntfsfix и других.

Рассмотрим установку и использование пакета ntfsprogs на примере дистрибутива Gentoo.

Итак. Если вы используете стабильную ветку Gentoo то вам нужно размаскировать версию ntfsprogs из нестабильной ветки. Для этого добавьте строчку:

sys-fs/ntfsprogs ~x86

В файл /etc/portage/package.keywords. Кроме того, независимо от используемой ветки, нужно явно указать необходимость сборки ntfsprogs с поддержкой fuse. Для этого нужно дописать в файл /etc/portage/package.use строчку:

sys-fs/ntfsprogs fuse

Устанавливаем пакет:

emerge --ask sys-fs/ntfsprogs

Проверяем загружен ли модуль fuse:

lsmod | grep fuse

Если нет - загружаем и настраиваем его автоматическую загрузку:

echo fuse >> /etc/modules.autoload.d/kernel-2.6
modprobe fuse

Всё. Теперь мы можем легко подмонтировать ntfs раздел:

ntfsmount /dev/sda1 /mnt/windows

Если мы хотим чтобы раздел автоматически монтировался при загрузке, то нужно дописать в /etc/fstab строку:

/dev/hda1 /mnt/windows ntfs-fuse umask=0,rw,force 0 0

Для получения метки раздела нужно ввести команду:

ntfslabel /dev/sda1

Для смены метки используется команда:

ntfslabel /dev/sda1 Windows

Нужно помнить что ntfslabel работает только с отмонтированными разделами. Если у вас появились какие-то ошибки на файловой системе, то раздел можно проверить с помощью команды ntfsfix:

ntfsfix /dev/sda1

Если вы ошибочно удалили какой-то файл, то расстраиваться не надо. Положение может спасти команда ntfsundelete. Для получения списка доступных для восстановления файлов воспользуйтесь командой:

ntfsundelete -f /dev/sda1

Она выведет примерно вот такой список:

WARNING: Dirty volume mount was forced by the 'force' mount option.
Inode    Flags  %age  Date           Size  Filename
---------------------------------------------------------------
16       F..!     0%  1970-01-01         0  <none>
17       F..!     0%  1970-01-01         0  <none>
18       F..!     0%  1970-01-01         0  <none>
19       F..!     0%  1970-01-01         0  <none>
20       F..!     0%  1970-01-01         0  <none>
21       F..!     0%  1970-01-01         0  <none>
22       F..!     0%  1970-01-01         0  <none>
23       F..!     0%  1970-01-01         0  <none>
12249    FR..   100%  2007-11-19         9  <none>
15741    FN..   100%  2007-03-19   1056768  tmp.edb
16208    FN..   100%  2007-03-19   1048576  edb.log
16210    FN..   100%  2007-03-19   1048576  res2.log
16211    FN..   100%  2007-03-19   1048576  res1.log
16213    FN..   100%  2007-03-19      8192  edb.chk
16305    FR..   100%  2007-03-19       512  ~DFEDD9.tmp
16307    FR..   100%  2007-03-19       166  h2r21.tmp
16327    FN..   100%  2007-03-19      5253  h2r22.tmp
16328    FR..   100%  2007-03-19         0  ms2159.tmp
16329    F..!     0%  1970-01-01         0  <none>
16330    F..!     0%  1970-01-01         0  <none>
16331    F..!     0%  1970-01-01         0  <none>
16332    F..!     0%  1970-01-01         0  <none>
16333    F..!     0%  1970-01-01         0  <none>
16334    F..!     0%  1970-01-01         0  <none>
16335    F..!     0%  1970-01-01         0  <none>

Далее находим в первом столбике Inode нужного файла (например если нам нужен файл edb.log то это 16208) и выполняем команду:

ntfsundelete -f -u -i 16208 /dev/sda1

Всё. Файл восстановлен.

Более подробно узнать об утилитах из пакета ntfsprogs можно на официальном сайте проекта linux-ntfs

Ключевые слова: ntfs, ntfsprogs, ntfs-3g, fuse, ntfsmount.

Комментарии:

Никита 2007-11-19 18:03:38 (#)

на сайте ntfs-progs написано что ntfsfix всего лишь добавляет метку "проверить при загрузке" к разделу.

sungreen 2007-11-19 18:45:06 (#)

... никто не гарантирует, что ваши данные не будут потеряны ...
... imho, лучше воздержаться от использования ntfs ...

MooSE 2007-11-19 19:27:42 (#)

Никита, хм... Похоже ты прав.. Значит я невнимательно читал...

2007-11-20 08:28:19 (#)

хм.. а как насчет русских букв? он их по умолчанию понимает или надо что-то дописывать?

MooSE 2007-11-20 09:10:38 (#)

ladm, как говорится - "искаропки" :)

2007-11-20 13:58:11 (#)

Хм.. прикольно:)

ivanzoid 2007-11-20 15:25:30 (#)

Немного смутила опция 'force' в строке в /etc/fstab, ну и соответствующее предпреждение (от ntfsundelete): WARNING: Dirty volume mount was forced by the 'force' mount option.

В этом действительно есть необходимость?

Никита 2007-11-20 15:46:44 (#)

в этом есть необходимость если раздел не проверен виндовым chkdsk

Shlomo 2007-11-21 23:33:58 (#)

Супер! Правда еще не решил, что с эим делать)))

Alex 2007-11-26 17:40:02 (#)

Попользовал несколько дней. Разницы с NTFS-3G не заметил. Недостатки (по крайней мере у меня) теже: уменьшение скорости при копировании больших файлов, большая загрузка проца и каждый раз появляется сообщение, что невозможно изменить права доступа

MooSE 2007-11-27 10:13:50 (#)

С руганью на права доступа проблема решается опцией quiet при монтировании:)

Alex 2007-11-28 16:03:50 (#)

не решается
по крайней NTFS-3G на эту опцию не реагировало

Добавлено позже:
Для ntfsprogs
localhost alex # mount /mnt/NTFS/
fuse: unknown option `quiet'

Кусок мана:
silent, nosilent
silent option makes ntfsmount to do not return "Operation is not supported" error on chmod and chown operations (this option is on by default)

Всё равно не работает. Даже при явном указании silent в /etc/fstab

Anonymous 2012-01-01 17:38:45 (#)

спасибо!!!! у меня слетел раздел под виндой, и я уже пару дней пытаюсь восстановить. а тут под live cd linuxmint 11 загрузился и
sudo ntfsmount /dev/sda2 /media/data
все! диск примонтировался! файлы целые!
спасибо за статью!
и с новым годом вас!
и я пошел праздновать... :)
Новый комментарий



© 2006-2016 Вадим Калинников aka MooSE