Jump to content

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

4 languages

- Deutsch
- English
- 日本語
- 中文（简体）

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

Ссылки по теме

- Файловые системы
- NTFS (Русский)

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 обработает перевод этих разрешений.

Совет: Вы можете захотеть сопоставить несколько NTFS SID с одним и тем же Linux UID, например, при наличии Syncthing `SyncthingServiceAcct`. Это тривиально при переходе с Windows на Linux, но при переходе с Linux на Windows вы наверняка захотите, чтобы файлы, созданные через вашего Linux-пользователя, принадлежали вашему Windows-пользователю, а не какой-нибудь служебной учётной записи.

Для начала вам нужно знать SID нужного Windows-пользователя. Вы можете определить его либо с помощью мастера `ntfsusermap`, либо выполнив `wmic useraccount get` в Windows, чтобы получить точный список пользователей. Затем пересортируйте файл `UserMapping` таким образом, чтобы SID нужного Windows-пользователя находился над SID служебной учётной записи.

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

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

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

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

    /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(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, и схемы шифрования диска могут не поддерживаться.

  https://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. Собственно изменение размера файловой системы выполняется программой ntfsresize(8).

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

### Unsupported reparse point

При монтировании файловой системы 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, которые Microsoft использует для расширения файловой системы. NTFS-3G не поддерживает некоторые их типы по умолчанию. Можно использовать плагины NTFS-3G для обеспечения совместимости с некоторыми reparse points:

- Сжатие системы (также известное как «Compact OS»): обеспечивает более сильное, оптимизированное для исполняемых файлов преобразование, чем старый LZ77 в NTFS. Плагин ntfs-3g-system-compression-gitAUR обеспечивает возможность только чтения, а если нужна запись, то отключите сжатие через Windows командой `compact.exe /CompactOS:never`.
- Дедупликация файлов: это функция Windows Server 2012, обеспечивающая оффлайн-дедупликацию на уровне блоков. Ещё нет пакета в AUR.
- Файлы OneDrive: Файлы OneDrive хранятся в Windows в виде специального тома. Плагин ntfs-3g-onedrive-binAUR предоставляет доступ на чтение и запись только для файлов, помеченных как «доступные локально».

Дополнительные сведения есть на этой странице, а ссылки на скачивание доступны в archive.org.

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

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

Можно использовать команду 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-разделе

Смотрите Кодировка#Неправильная кодировка при монтировании.

### 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 под названием «быстрый запуск» («fast startup»). Когда эта функция включена, часть метаданных файловых систем всех используемых разделов при загрузке восстанавливается к тому состоянию, в котором они находились при завершении работы Windows. В результате изменения содержимого разделов, совершённые из Linux, могут быть утеряны. Это может произойти с любым разделом жёсткого диска, когда работа Windows завершается выбором пункта «Завершение работы» или «Гибернация». Однако завершение работы Windows с помощью пункта «Перезагрузка» не должно вызывать таких проблем.

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

    powercfg /h off

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

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

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

    # ntfsfix /dev/раздел_NTFS

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

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

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

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

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

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

- ntfs-3g(8)

Category:

- FUSE (Русский)