NTFS-3G (Русский)

From ArchWiki
Состояние перевода: На этой странице представлен перевод статьи NTFS-3G. Дата последней синхронизации: 2023-03-27. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

NTFS-3G — свободная реализация файловой системы NTFS с поддержкой записи и чтения данных. Для упрощения разработки и обеспечения лучшей переносимости NTFS-3G использует драйвер файловой системы FUSE.

Установка

Установите пакет ntfs-3g.

Ручное монтирование

Вручную примонтировать раздел с NTFS можно двумя способами. Традиционный:

# mount /dev/раздел-с-NTFS /точка/монтирования

При этом тип файловой системы (в данном случае ntfs-3g) явно сообщать необязательно. По умолчанию команда mount будет использовать программу /usr/bin/mount.ntfs, которая является символической ссылкой на /usr/bin/ntfs-3g и появляется после установки пакета ntfs-3g.

Второй способ — напрямую вызвать ntfs-3g:

# ntfs-3g /dev/раздел-с-NTFS /точка/монтирования

Список доступных опций описан в ntfs-3g(8).

Форматирование

Важно: Дважды перепроверьте правильность пути устройства.
# mkfs.ntfs -Q -L меткаДиска /dev/sdXY
Примечание: Опция -Q ускоряет форматирование, пропуская этапы перезаписи содержимого раздела нулями и проверки поверхности диска.

Настройка

Можно настроить автоматическое монтирование разделов NTFS, или заранее указать параметры монтирования и делать это вручную в удобное для вас время. Настройки задаются в файле fstab или с помощью правил udev.

Стандартные настройки

При использовании стандартных настроек разделы с NTFS будут монтироваться при загрузке системы. При использовании этого метода если родительская папка, в которую монтируется раздел, имеет соответствующие права доступа (например, /run/media/<пользователь>/), то пользователь или группа смогут выполнять чтение и запись в этом разделе.

/etc/fstab
# <file system>		<dir>		<type>	<options>	<dump>	<pass>
/dev/NTFS-part		/mnt/windows	ntfs-3g	defaults	0	0

Linux-совместимые права доступа

Как правило, права доступа в Linux устанавливаются как 755 для директорий и 644 для файлов. Если вы часто используете NTFS-раздел, рекомендуется использовать эти права доступа и на нём. Следующий пример показывает, как можно присвоить такие права разделу для работы с ним из-под непривилегированного пользователя:

# Монтировать системный раздел Windows с Linux-совместимыми правами доступа, т. е. 755 для директорий (dmask=022) и 644 для файлов (fmask=133)
/dev/NTFS-раздел  /mnt/windows  ntfs-3g uid=userid,gid=groupid,dmask=022,fmask=133 0 0

Если права доступа Windows тоже имеют значение для вас, можно использовать команду ntfsusermap(8) для сопоставления пользователей Windows с пользователями Linux. ntfs-3g обработает перевод этих разрешений.

Разрешение доступа пользователю/группе

Через файл /etc/fstab можно передать драйверу ntfs-3g и другие параметры монтирования, например разрешить доступ на чтение данных определённому пользователю или группе. Чтобы дать доступ к разделу пользователям, входящим в группу groupid, можно использовать следующие параметры:

/dev/NTFS-раздел  /mnt/windows  ntfs-3g   gid=groupid,umask=0022    0       0

В этом случае запись данных на раздел будет возможна только для пользователя root. Чтобы разрешить запись от имени непривилегированных пользователей, нужно указать, кому из них следует дать такой доступ. Для этого используйте параметр uid с именем пользователя:

/dev/NTFS-раздел  /mnt/windows  ntfs-3g   uid=userid,gid=groupid,umask=0022    0       0

Если у вас однопользовательская система, для большего удобства можно дать себе полный доступ к разделу:

/dev/NTFS-раздел  /mnt/windows  ntfs-3g   uid=userid,gid=groupid    0       0

Основные параметры NTFS-3G

В большей части случаев для работы должно хватить параметров, описанных выше. Далее описываются параметры, общие для многих файловых систем Linux. Полный список параметров конфигурации ntfs-3g можно посмотреть в ntfs-3g(8) § OPTIONS.

umask
umask — команда командного интерпретатора, позволяющая автоматически присваивать нужные права доступа при создании новых файлов. Стандартные значения umask в Arch Linux для root и обычных пользователей — 0022. При этом новые директории получают права 755, а новые файлы — 644. Дополнительную информацию о umask можно найти здесь.
fmask и dmask
Похожи на umask, но задают права доступа к файлам и директориям отдельно.
noauto
Если установлен параметр noauto, соответствующий раздел не будет монтироваться автоматически при загрузке системы.
uid
Идентификационный номер пользователя. Позволяет дать полный доступ к разделу определённому пользователю. Идентификатор пользователя можно определить с помощью команды id.

Следующая опция специфична для ntfs-3g:

windows_names
запрещает создание файлов, каталогов и расширенных атрибутов с именами, которые запрещены в windows.

Монтирование разделов от имени обычного пользователя

По умолчанию, ntfs-3g требует права суперпользователя для монтирования файловой системы, если он является блочным устройством, даже если добавить параметр user в /etc/fstab (с причинами можно ознакомиться в ntfs-3g-faq).

Примечание:
  • Пакет ntfs-3g не имеет встроенной поддержки FUSE. Пересоберите пакет с помощью ABS для включения поддержки FUSE.
    • Полное объяснение заключается в том, что "user" и "users" работают через монтирование setuid, не сбрасывая привилегии setuid, чтобы блочное устройство можно было использовать без root. Однако в ntfs-3g есть жёстко закодированное ограничение, которое не позволяет использовать setuid, если используется внешняя libfuse.
    • Нет никаких веских технических причин не разрешать setuid для внешнего FUSE, кроме недоверия к библиотеке. Этот патч устраняет указанное ограничение.
  • Похоже, есть проблема с правами на размонтирование, поэтому вам всё равно понадобятся права root для размонтирования. Вы также можете использовать fusermount -u /точка/монтирования для размонтирования файловой системы без прав root. Кроме того, если вы используете опцию users (множественное число) в /etc/fstab вместо опции user, вы сможете монтировать и размонтировать файловую систему с помощью команд mount и umount.

Для неблочных файлов, таких как обычные образы дисков, ntfs-3g в командной строке должен работать из коробки с правами обычного пользователя, поскольку базовые вызовы FUSE перенаправляются на setuid-root fusermount, когда прямое взаимодействие с ядром недоступно.

Изменение размера раздела NTFS

Примечание: Перед редактированием разделов обязательно делайте резервную копию важных данных!

Некоторые пользователи с установленной системой Windows хотели бы оставить её при установке Arch Linux. Часто для того, чтобы освободить место на диске под установку Arch Linux, возникает необходимость изменить размер системного раздела, на котором установлена Windows. Эту задачу можно выполнить одним из двух способов:

  1. Воспользоваться встроенным в Windows средством управления разделами. Для его запуска нажмите Win+R, введите в появившееся окно diskmgmt.msc и нажмите Enter. Кликните по разделу, размер которого нужно уменьшить, правой кнопкой мыши, и выберите в меню пункт Сжать том. Укажите количество места, которое нужно освободить, и нажмите OK. После завершения операции за изменённым разделом появится свободное место, в котором можно будет создать необходимые разделы в процессе установки системы.
  2. Воспользоваться сторонним LiveCD. Для этого скачайте ISO-образ любого диструбитива, в состав которого входят ntfs-3g и gparted, запишите его на компакт-диск (например, с помощью InfraRecorder) или USB-накопитель (смотрите статью Установочный образ на USB-накопителе), после чего загрузитесь с подготовленного носителя.

Есть много образов, подходящих для этой задачи. Этот список не является исчерпывающим, но с него можно начать:

  • GParted — Небольшой загрузочный дистрибутив GNU/Linux для компьютеров на базе x86. Он позволяет вам использовать все функции последних версий приложения GParted. Не включает дополнительные пакеты, которые может включать System Rescue CD, и схемы шифрования диска могут не поддерживаться.
http://gparted.sourceforge.net/ || gparted
  • Parted Magic — Очень хорошее комплексное решение для управления жёсткими дисками. С помощью редактора разделов вы можете изменять размер, копировать и перемещать разделы. Вы можете увеличить или уменьшить размер диска C:. Можно освободить место для новых операционных систем. Можно попытаться восстановить данные с потерянных разделов.
https://partedmagic.com/ ||

Обратите внимание, что важными программами для изменения размера разделов NTFS являются ntfs-3g и утилиты типа (G)parted или fdisk, входящие в состав пакета util-linux. Если вы не являетесь «продвинутым» пользователем, рекомендуется использовать такой инструмент вроде GParted для выполнения любых операций по изменению размера разделов, чтобы минимизировать вероятность потери данных из-за ошибки пользователя.

Для изменения размера NTFS-раздела из существующей системы Arch Linux установите пакеты ntfs-3g и gparted и запустите программу gparted. Если в системе отсутствует графический пользовательский интерфейс, можно использовать программу parted, входящую в состав пакета parted.

Решение проблем

Сжатые файлы

При монтировании файловой системы NTFS в Windows 10 и чтении файлов или каталогов вы можете

  1. увидеть неработающие символические ссылки на 'unsupported reparse point' или
  2. увидеть сообщение об ошибке cannot access какой-то-файл: Input/output error (в этом случае вы увидите сообщение Could not load plugin /usr/lib64/ntfs-3g/ntfs-plugin-80000017.so: Success в журнале).

Причиной этого являются NTFS reparse points и то, что NTFS-3G не поддерживает некоторые их типы по умолчанию. Можно использовать плагины NTFS-3G для обеспечения совместимости с частью функций, определенных следующими точками разбора:

  • Сжатие системы
  • Дедупликация файлов
  • Файлы OneDrive

Дополнительные сведения есть на этой странице.

Сжатие системы (Compact OS) сжимает определённые файлы. Существует два возможных обходных пути.

Вы можете установить плагин ntfs-3g-system-compressionAUR. В настоящее время этот плагин поддерживает только чтение, но не запись, то есть создание или обновление файлов не поддерживается.

В качестве альтернативы можно отключить функцию сжатия в Windows 10:

C:\WINDOWS\system32> compact.exe /CompactOS:never

Повреждённая файловая система NTFS

Если в файловой системе NTFS есть ошибки, ntfs-3g смонтирует её в режиме "только чтение". Для штатного исправления файловой системы NTFS загрузите Windows и запустите chkdsk (chkdsk /F).

Можно использовать команду ntfsfix, идущую в составе пакета ntfs-3g, однако она умеет исправлять только некоторые виды ошибок. Там, где она не справляется, chkdsk обычно отрабатывает успешно.

Для исправления файловой системы NTFS раздел должен быть отмонтирован. Пример ремонта NTFS-раздела /dev/sda2:

# umount /dev/sda2
# ntfsfix /dev/sda2
Mounting volume... OK
Processing of $MFT and $MFTMirr completed successfully.
NTFS volume version is 3.1.
NTFS partition /dev/sda2 was processed successfully.
# mount /dev/sda2

Если всё прошло без ошибок, раздел будет доступен для записи.

Искажаются китайские имена файлов на Windows-разделе

Смотрите Localization/Simplified Chinese#Garbled Chinese file name under Windows partition.

Metadata kept in Windows cache, refused to mount

Если вместе с Arch Linux на компьютере используется Windows 8 или новее, при монтировании системного раздела может возникнуть следующая ошибка:

The disk contains an unclean file system (0, 0).
Metadata kept in Windows cache, refused to mount.
Failed to mount '/dev/sdc1': Operation not permitted
The NTFS partition is in an unsafe state. Please resume and shutdown
Windows fully (no hibernation or fast restarting), or mount the volume
read-only with the 'ro' mount option.

Проблема вызвана новой функцией Windows 8 под названием "быстрый запуск". Когда эта функция включена, часть метаданных файловых систем всех используемых разделов при загрузке восстанавливается к тому состоянию, в котором они находились при завершении работы Windows. В результате изменения содержимого разделов, совершённые из Linux, могут быть утеряны. Это может произойти с любым разделом жёсткого диска, когда работа Windows завершается выбором пункта "Выключить" или "Гибернация". Однако, завершение работы Windows с помощью пункта "Перезагрузка" не должно вызывать таких проблем.

Чтобы получить возможность беспроблемно записывать данные на раздел из других операционных систем, убедитесь, что функция "быстрый запуск" отключена. Для этого загрузите Windows и выполните следующую команду в командной строке, запущенной от имени администратора:

powercfg /h off

Чтобы проверить текущее значение параметра, зайдите в Панель управления -> Оборудование и звук -> Электропитание -> Действия кнопок питания. Флажок Включить быстрый запуск должен быть снят либо отсутствовать.

Удаление метаданных спящего режима Windows

В качестве альтернативы вышеописанному методу чистого выключения существует способ полного уничтожения метаданных NTFS, сохранённых после спящего режима. Этот способ применим только в том случае, если вы не можете или не хотите загрузиться в Windows и полностью выключить ее. Для этого нужно запустить ntfsfix, входящий в состав ntfs-3g.

# ntfsfix /dev/раздел_NTFS
Важно: Имейте в виду, что этот метод означает, что сохранённый сеанс Windows будет полностью потерян. Используйте этот вариант под свою ответственность.

Отказ в монтировании

Если, даже следуя этому руководству, вам не удаётся примонтировать раздел NTFS, попробуйте отредактировать файл /etc/fstab, указав UUID вместо имён устройств для всех разделов NTFS. С примером можно ознакомиться здесь.

Отказ в монтировании в Windows

Windows не распознает раздел NTFS, для которого не задан соответствующий тип раздела. Частая ошибка при создании раздела NTFS для работы с Windows — забыть установить тип раздела как NTFS. Используйте fdisk или один из инструментов разметки, чтобы исправить тип раздела на правильный.

Смотрите также