Библиотека сайта rus-linux.net
Как правильно монтировать и прописывать в /etc/fstab разделы c NTFS.
Алексей Дмитриев, 26 октября 2010
Чтобы примонтировать раздел Windows c файловой системой NTFS, нужно установить драйвер ntfs-3g. Большинство дистрибутивов давно имеют его в своих репозитариях. Но вот листая Интернет, на какие только дикие советы не нарвешься порой.
А ведь использование этого драйвера крайне просто. Недаром это драйвер третьего поколения. Все опции, необходимые для его функционирования, входят в его настройки по умолчанию (default).
Поэтому достаточно прописать в /etc/fstab последней строкой :
/dev/sda1 /mnt/windows ntfs-3g defaults 0 0
Примечание: Такой опции у этого драйвера нет, но, если оставить поле пустым, то монтироваться ничего не будет ≈ проверено на практике. Если же вы добавляете хоть одну опцию из числа существующих (смотрим man ntfs-3g по-русски), то и defaults вписывать незачем.
После этого все NTFS разделы будут автоматически монтироваться на чтение/запись, все директории и файлы будут принадлежать инициатору монтирования, и все пользователи будут иметь все права на их содержимое.
Если вы хотите, чтобы монтировать и отмонтировать NTFS разделы мог рядовой пользователь, то установите на драйвер setuid бит. Это делается так:
Найдите исполняемый файл драйвера:
# updatedb (обновим базу данных, если драйвер только что установлен)
# locate ntfs-3g | grep bin /sbin/mount.ntfs-3g /usr/bin/ntfs-3g /usr/bin/ntfs-3g.probe
Установите setuid бит:
# chmod u+s /usr/bin/ntfs-3g
Вот и все.
Если в вашей Linux системе неправильно установлена локаль и вместо русских букв вы видите кракозябры, то вам поможет опция:
/dev/sda1 /mnt/windows ntfs-3g locale=ru_RU.utf8 0 0
Обратите внимание, что следует указывать кодировку Linux системы.
Если вы не желаете, чтобы другие имели доступ к вашим Windows разделам, то примените опцию
/dev/sda1 /mnt/windows ntfs-3g umask=022,locale=ru_RU.utf8 0 0
Это даст доступ к файлам только тому, кто монтировал, а остальные смогут только читать. Если вы хотите, чтобы этим пользователем были вы, то добавьте свой uid в численной форме:
/dev/sda1 /mnt/windows ntfs-3g uid=1000,umask=022,locale=ru_RU.utf8 0 0
Ну, а теперь самое интересное.
NTFS раздел будет монтироваться автоматически в процессе загрузки, и вы сразу можете работать с файлами Windows. Но вот если вы захотите отмонтировать этот раздел (бывают же такие случаи), то вам придется делать это с правами суперпользователя и вручную, при помощи команды
# umount /mnt/windows
Все же штатные интерфейсы работы с разделами (типа "Компьютер" или "System" или "Places" и так далее) не позволят вам сделать это под самыми смехотворными предлогами. И это вполне объяснимо. Ведь примонтировался раздел еще на стадии загрузки, от имени root'а, а теперь вы хотите отмонтировать как рядовой пользователь.
Я уже собирался заканчивать эту статью, когда наскочил на этот феномен. Я боролся с ним целый день, выискивая образцы заполнения файла /etc/fstab в различных дистрибутивах, проверяяя их, выбрасывая по одной опции и перезагружаясь после каждой попытки. Это была работа! Но в результате я методом исключения нашел простейший вариант:
/dev/sda1 /mnt/windows ntfs-3g users 0 0
У меня в Debian Lenny это автоматически монтирует NTFS раздел при загрузке, и дает возможность рядовому пользователю отмонтировать его простым кликом мыши на значке в директории system:/media/. При желании можно смонтировать его обратно, тем же простым щелчком.
Я не могу этого объяснить. Никакой опции users драйвер ntfs-3g не поддерживает; более того, если написать user, то ничего работать не будет.
Кто понимает, в чем тут дело, тот пусть напишет комментарий к этой статье.
Приложение
Предлагаемый вашему вниманию ман хорош тем, что позволяет легко понять, в чем дело, если раздел NTFS не монтируется. Коды завершения скажут все.Мануал NTFS-3G.PROBE
Название
ntfs-3g.probe ≈ Проверяет возможность монтирования тома с файловой системой NTFS.Синтаксис
ntfs-3g.probe <--readonly|--readwrite> том (раздел или диск или что-там у вас)Описание
Утилита ntfs-3g.probe проверяет возможность монтировать раздел с NTFS только для чтения или на чтение/запись. Выводит соответствующий код завершения. Том может быть блочным устройством или файлом образа.Опции
Ниже перечислены опции, которые понимает команда.-r, --readonly
Проверить, можно ли примонтировать том только для чтения.-w, --readwrite
Проверить, можно ли примонтировать том на чтение/запись.-h, --help
Вывести помощь.Пример
Проверить возможность монтирования /dev/sda1 на чтение/запись:ntfs-3g.probe --readwrite /dev/sda1
Коды завершения
0 Монтирование возможно11 Синтаксическая ошибка, шелл не смог прочесть команду.
12 Том не содержит адекватной файловой системы NTFS.
13 Неполноценный NTFS, ошибка "железа" или драйвера, либо не установлено нужное оборудование для SoftRAID/FakeRAID.
14 NTFS раздел находится в состоянии гибернации. В этом случае можно применить опцию 'remove_hiberfile' команды ntfs-3g, что удалит гиберфайл и позволит примонтировать раздел на чтение/запись. Сохраненная сессия Windows будет уничтожена.
15 NTFS раздел был неправильно отмонтирован. Поможет опция 'force' команды ntfs-3g, которая очистит журнал NTFS.
16 Том уже открыт и используется драйвером ядра или программными методами.
17 Оборудование для SoftRAID/FakeRAID не подключено, либо отсутствует, либо не имеет питания.
18 Причина не ясна.
19 Нет необходимых прав для монтирования.
20 Не хватает памяти
21 Неизвестная ошибка FUSE
22 Угроза безопасности. Выполнение запрещено из-за возможности несанкционированного использования.
Известные проблемы
Пожалуйста, читайте http://ntfs-3g.org/support.html. Там описаны обычные вопросы и известные проблемы. Если вы найдете новые проблемы в последнем релизе программы, пожалуйста, отправьте подробное сообщение. Контактный адрес разработчиков: ntfs-3g-devel@lists.sf.netАвторы
ntfs-3g.probe написана Szabolcs Szakacsits (szaka@ntfs-3g.org).Благодарности
Alon Bar-Lev интегрировал утилиту в проект NTFS-3G и проверил ее перед публичным релизом совместно с Erik Larsson.Смотрите дополнительно
man ntfs-3g(8) по-русски здесь