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

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Состояние перевода: На этой странице представлен перевод статьи NTFS-3G. Дата последней синхронизации: 3 сентября 2014. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

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

Установка

Установите пакет ntfs-3g, доступный в официальных репозиториях.

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

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

# mount -t ntfs-3g /dev/раздел-с-NTFS /{mnt,...}/директория

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

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

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

Настройка

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

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

При использовании стандартных настроек разделы с NTFS будут монтироваться при загрузке системы, если директория, родительская по отношению к той, куда происходит монтирование, имеет соответствующие права доступа.

Добавьте эти строки в файл /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)
UUID=01CD2ABB65E17DE0 /run/media/user1/Windows ntfs-3g uid=user1,gid=users,dmask=022,fmask=133 0 0

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

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

/dev/NTFS-partition  /mnt/windows  ntfs-3g   gid=users,umask=0022    0       0

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

/dev/NTFS-partition  /mnt/windows  ntfs-3g   uid=имя_пользователя,gid=users,umask=0022    0       0

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

/dev/NTFS-partition  /mnt/windows  ntfs-3g   uid=имя_пользователя,gid=users    0       0

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

В большей части случаев для работы должно хватить параметров, описанных выше. Далее описываются параметры, общие для многих файловых систем Linux. Полный список параметров конфигурации ntfs-3g можно посмотреть здесь[устаревшая ссылка 2021-05-17]

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

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

По умолчанию, ntfs-3g требует права суперпользователя для монтирования разделов, даже если добавить параметр "uid" в /etc/fstab (со причинами можно ознакомиться здесь). Чтобы иметь возможность монтировать раздел от имени обычного пользователя, выполните следующие шаги:

Если опция uid отсутствует в /etc/fstab, добавьте её:

/dev/NTFS-partition  /mnt/windows  ntfs-3g   uid=имя_пользователя,gid=users    0       0

Убедитесь, что пользователю разрешена работа с соответствующим устройством. Проще всего сделать это, добавив пользователя в группу disk с помощью следующей команды:

# gpasswd -a username disk
Примечание: Для применения изменённых настроек может понадобиться перезагрузка

Далее, необходимо обеспечить пользователю доступ к директории, в которую монтируется раздел. Если вы собираетесь монтировать раздел от имени обычного пользователя, есть смысл поставить его владельцем точки монтирования:

# chown user /mnt/точка_монтирования

Кроме того, необходимо использовать драйвер ntfs-3g со встроенной поддержкой FUSE. Пакет ntfs-3g из официальных репозиториев не имеет его поддержки, поэтому можно установить пакет ntfs-3g-fuseAUR[ссылка недействительна: package not found] из AUR.

При выполнении этих условий у вас должна появиться возможность монтировать разделы NTFS без прав суперпользователя.

Примечание: Для демонтирования разделов могут понадобиться права суперпользователя. От имени обычного пользователя можно попробовать команду fusermount -u /mnt/точка_монтирования. Если вместо параметра uid в /etc/fstab вы используете параметр users, как монтирование, так и демонтирование разделов должно работать от имени обычного пользователя с помощью команд mount и umount.

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

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

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

1) Воспользоваться встроенным в Windows средством управления разделами. Для его запуска нажмите Win+R, введите в появившееся окно diskmgmt.msc и нажмите Enter. Кликните по разделу, размер которого нужно уменьшить, правой кнопкой мыши, и выберите в меню пункт Сжать том. Укажите количество места, которое нужно освободить, и нажмите OK. После завершения операции за изменённым разделом появится свободное место, в котором можно будет создать необходимые разделы в процессе установки системы.

2) Воспользоваться сторонним LiveCD. Для этого скачайте ISO-образ любого диструбитива, в состав которого входят ntfs-3g и gparted (например, Ubuntu), либо образ специализированной системы для работы с разделами (например, GParted, Parted Magic или SystemRescueCD), и запишите его на компакт-диск или USB-накопитель с помощью программы UNetbootin или Rufus, после чего загрузитесь с подготовленного носителя. Дальнейшие инструкции можно получить в документации к используемому дистрибутиву.

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

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

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

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

Для коррекции файловой системы NTFS без использования Windows установите пакет ntfs-3g, доступный в официальных репозиториях.

Для исправления файловой системы 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

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

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

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

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

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

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

Важно: Всегда внимательно проверяйте правильность имени устройства.
# mkfs.ntfs -L myCoolDiskName /dev/sdc1

На современных устройствах большого объема такой способ может занять много времени. Для быстрого форматирования используйте команду:

# mkfs.ntfs -Q -L myCoolDiskName /dev/sdc1
Примечание: При использовании такого способа форматирования этапы перезаписи содержимого раздела нулями и проверки поверхности диска будут пропущены.

Не учитывается umask при создании файлов

Если в /etc/fstab указана опция монтирования permissions, разделы NTFS-3G смогут имитировать работу с привычной системой прав доступа Linux. Однако, при создании файлов вплоть до версии 2014.2.15-1 не учитывается umask пользователя.

Как решение, используйте ABS для пересборки NTFS-3G без поддержки ACL (--enable-posix-acls):

PKGBUILD
build() {
	cd "${srcdir}/${_pkgname}-${pkgver}"
	./configure \
		--prefix=/usr \
		--sbin=/usr/bin \
		--mandir=/usr/share/man \
		--disable-ldconfig \
		--disable-static \
		--with-fuse=external \
		--enable-extras \

	make
}

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