NTFS-3G

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 14:10, 31 января 2019.
NTFS-3G
Ntfs-3g-logo.png
Разработчики: Tuxera Inc.
Постоянный выпуск: 2016.2.22 / 21 March 2016 года; 6 years ago (2016-03-21)
Написана на: C
Операционная система: Кросс-платформенное программное обеспечение
Тип ПО: драйвер файловой системы
Лицензия: GNU
Веб-сайт www.tuxera.com/community/open-source-ntfs-3g/

NTFS-3G — это свободный драйвер файловой системы NTFS. Проект стабилен при работе с любыми NTFS разделами (включая запись), имеет большое и активное сообщество разработчиков и лицензируется под GNU General Public License. Однако для Mac OS X драйвер не является свободным и требуется покупка лицензии.[Источник 1]

На данный момент заявлена работа в следующих ОС: Linux (32 и 63 бит), FreeBSD, NetBSD, Solaris, Mac OS X, BeOS, Haiku. Разработку начал Саболч Сакачич в июле 2006 года, первый релиз состоялся 21 февраля 2007 года. Основана на файловой системе FUSE.

Установка

Linux: большинство дистрибутивов имеют и используют NTFS-3G по умолчанию. Если необходимо установить NTFS-3G из исходного кода, убедитесь что вы уже установили базовые инструменты (gcc compiler, libc-dev libraries). Потом введите:

# ./configure
# make
# make install

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

1.Традиционный способ:

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

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

  • 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

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

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

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

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

NTFS-config

Программа ntfs-config может помочь вам в настройке параметров работы с разделами NTFS, если другие способы не сработали.

Изменение размера раздела 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.[3]

События

Релиз драйвера NTFS-3G 2013.1.13

NTFS-3G - FUSE-драйвер файловой системы NTFS от компании Tuxera, поддерживающий чтение и запись, для Linux, Android, Mac OS X, FreeBSD, NetBSD, OpenSolaris, QNX, Haiku и других операционных систем. Недавно проекты NTFS-3G и ntfsprogs объединились, поэтому релиз NTFS-3G также означает релиз ntfsprogs. NTFS-3G предоставляет возможность безопасной работы с файловой системой NTFS, созданной Windows 2000-8 и Windows Server 2003-2008. Кроме NTFS-3G компания Tuxera предлагает коммерческий продукт для встраиваемых систем и Mac OS X. А ещё существует Paragon NTFS&HFS в версиях Express, Personal, Professional и Embedded Solution.[Источник 2]

Изменения:

ntfs-3g:

  • Исправлен тип возвращаемой переменной файла в функции readdir();
  • Опция монтирования «ro» включается принудительно при монтировании устройств, доступных только для чтения;
  • Теперь при удалении файла его название остаётся на месте. Это сделано для облегчения восстановления удалённых файлов;
  • Разрешены многократные монтирования раздела только для чтения;
  • Улучшено наследование Windows-типа ACL, новые возможности по мере необходимости используются Windows 8;
  • Отменено выполнение необязательных обновлений списка задач, работающих при добавлении данных в файл;
  • Добавлено наследование флага set-group-id;
  • При активном режиме быстрой перезагрузки (fast reboot), используемом Windows 8, запрещено монтирование раздела;
  • Теперь для файлов с жёсткой ссылкой отклоняется получение или выставление DOS-имён;

ntfsclone:

  • Исправлено затирание пользовательских данных при создании метаданных изображений;
  • В ntfsclone и ntfslabel реализована ещё одна возможность добавления нового серийного номера;

ntfsfix:

  • Добавлена возможность исправлять резервную копию бутсектора;
  • Исправлена ошибка при очистке списка потерянных кластеров;

ntfsinfo:

  • Добавлена возможность размещения данных в сводку параметров раздела;
  • Добавлен вывод количества запуска и количества фрагментов файла;
  • Остальные компоненты:
  • В ntfswipe добавлена опция затирания концов файлов и удалённых данных;
  • В mkntfs в $UpCase вставлен поток $Info для совместимости с Windows 8;
  • Системные требования для OpenIndiana добавлены в драйвер и fuse-lite;

Объединение с с ntfsprogs

Компания Tuxera объединяет вместе два проекта: драйвер для работы с NTFS из Linux, Android, Mac OS X и других операционных систем NTFS-3G и набор открытых инструментов ntfsprogs, также работающий с файловой системой Microsoft. ntfsprogs считаются необходимым дополнением к NTFS-3G, поэтому обычно два этих продукта поставляются вместе во многих дистрибутивах Linux.

Tuxera сообщает, что отныне добавляет весь набор инструментов к NTFS-3G для исключения дублирования усилий при работе над двумя аналогичными проектами и поддержке объемной кодовой базы, поэтому теперь разработчики смогут работать продуктивнее.

ntfsprogs содержит инструменты для создания, копирования, восстановления, изменения размера и сравнения NTFS разделов. При слиянии двух проектов разработчики из Tuxera обратили особое внимание на исправление ошибок как в драйвере NTFS-3G, так и в некоторых утилитах ntfsprogs.

Tuxera NTFS для Mac 2018 с поддержкой High Sierra

Как и в предыдущих версиях, Tuxera NTFS for Mac 2018 обеспечивает полную совместимость чтения и записи с дисками, отформатированными в Windows NTFS. Последняя версия поддерживает macOS High Sierra и Sierra, OS X El Capitan и все предыдущие версии OS X от 10.4 (Tiger) и далее. Независимо от версии операционной системы,рекомендуется обновить Tuxera NTFS для Mac для всех последних функций и улучшений. Для пользователей являющимися постоянными клиентами, обновления всегда бесплатны, поэтому им не нужно будет покупать новую лицензию на версию 2018.

Если используется High Sierra,то появляется необходимость обновления Tuxera NTFS до последней версии для Mac.С запуском High Sierra, Apple ввела требование, что пользователи должны вручную утвердить любое программное обеспечение, которое загружает новые расширения ядра. NTFS для Mac 2018 установки теперь легко проведет пользователей через этот процесс.

Если пользователь только перешел с Windows на Mac, у него могут быть проблемы с копированием, редактирование или удаление файлов, хранящихся на USB-накопителе или внешнем жестком диске. Все происходит из-за того, что операционная система Apple, macOS, только позволяет читать файлы, хранящиеся на дисках, отформатированных с NTFS, файловой системы, используемой с ПК с Windows. С NTFS для Mac 2018, пользователь может получить доступ, редактировать, хранить и передавать файлы между ПК и Mac без проблем.

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

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

Если в файловой системе NTFS есть ошибки, ntfs-3g смонтирует её в режиме "только чтение". Для штатного исправления файловой системы NTFS загрузите Windows и запустите 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

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

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

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

# mkfs.ntfs -Q -L myCoolDiskName /dev/sdc1

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

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

Как решение, используйте Arch Build System для пересборки NTFS-3G без поддержки ACL :

 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
}

Производительность

Тесты показывают, что NTFS-3G ещё не оптимизирован на производительность. Главная цель разработчиков — обеспечить надёжность работы и задействовать для работы все функциональные возможности POSIX.

Ссылки

  1. Github
  2. http://www.tuxera.com/community/open-source-ntfs-3g/

Примечания

  1. Для применения изменённых настроек может понадобиться перезагрузка
  2. Для демонтирования разделов могут понадобиться права суперпользователя. От имени обычного пользователя можно попробовать команду fusermount -u /mnt/точка_монтирования. Если вместо параметра uid в /etc/fstab вы используете параметр users, как монтирование, так и демонтирование разделов должно работать от имени обычного пользователя с помощью команд mount и umount.
  3. Перед редактированием разделов обязательно делайте резервную копию важных данных!
  4. При использовании такого способа форматирования этапы перезаписи содержимого раздела нулями и проверки поверхности диска будут пропущены.

Источники

  1. Release History // Open Source. [2019]. Дата обновления: 2017-05-10. URL: https://www.tuxera.com/community/open-source-ntfs-3g (дата обращения: 10.01.2019).
  2. Стабильный релиз драйвера NTFS-3G 2013.1.13. // LINUX.ORG. [2019] Дата обновления: 2016-10-25 URL: https://www.linux.org.ru/news/opensource/8786435 (дата обращения: 10.01.2019).