NTFS
NTFS (New Technology File System) — пропиетарная дисковая файловая система от Microsoft для операционных систем, основанных на Windows.
Существует два способа включения поддержки NTFS при использовании Linux. Начиная с версии 5.15, ядро Linux предоставляет новый драйвер NTFSv3 с полной поддержкой файловой системы NTFS, включая возможности сжатия. Также есть FUSE-драйвер файловой системы под названием NTFS-3G — медленное, но более стабильное и проверенное временем решение.
Установка
Ядро
До версии 5.15 в ядре Linux сопровождался старый драйвер NTFS, имевший крайне ограниченную поддержку NTFS. Информация в ядре описывала эту поддержку «частичной, но безопасной». Старый драйвер мог только перезаписывать существующие файлы, но не мог создавать файлы и каталоги, удалять или переименовывать их. Начиная с Linux 5.15, старый код NTFS был заменен на новый драйвер ядра от Paragon под названием «NTFSv3». Этот драйвер обладает большей функциональностью и полностью поддерживает чтение/запись и возможности сжатия.
На системах с ядрами до версии 5.15 большинство пользователей NTFS захотят включить реализацию NTFS-3G, основанную на FUSE.
Поддержка в ядре
В Linux 5.15 и позднее необходимо указать следующие параметры ядра для включения драйвера NTFSv3:
File systems --->
DOS/FAT/NT Filesystems --->
<*> NTFS Read-Write file system support
<*> activate support of external compressions lzx/xpress
NTFS-3G (реализация FUSE)
В Linux до 5.15 для включения поддержки чтения/записи NTFS через FUSE необходимо указать следующие параметры:
File systems --->
<*> FUSE (Filesystem in Userspace) support
Также понадобится пакет sys-fs/ntfs3g (см. раздел Установка ниже).
Установка
NTFS-3G
Этот пакет необходим только при использовании NTFS-3G. Он не нужен при использовании драйвера ядра!
Так как NTFS-3G является файловой системой на основе FUSE, для него требуются пользовательские утилиты. На данный момент только одна FUSE-реализация доступна в репозитории Gentoo. Проверьте, что USE-флаг suid
включен, иначе можете получить ошибку «read only filesystem».
USE flags for sys-fs/ntfs3g Open source read-write NTFS driver that runs under FUSE
+fuse
|
Enable ntfs-3g FUSE driver |
+mount-ntfs
|
Install mount.ntfs symlink |
+ntfsprogs
|
Enable ntfsprogs |
acl
|
Add support for Access Control Lists |
debug
|
Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces |
ntfsdecrypt
|
Build and install the ntfsdecrypt application. |
static-libs
|
Build static versions of dynamic libraries as well |
suid
|
Enable setuid root program(s) |
xattr
|
Add support for extended attributes (filesystem-stored metadata) |
После установки USE-флагов и внесения необходимых изменений установить пользовательские утилиты FUSE, благодаря чему станет возможным работа в файловыми системами NTFS:
root #
emerge --ask sys-fs/ntfs3g
Использование
Создание
Команда mkfs.ntfs необратимо уничтожит любое содержимое на разделе, который вы укажете для форматирования. Убедитесь что выбрали правильный раздел!
Команда создания файловой системы NTFS в разделе /dev/sda1 (необходим включённый USE-флаг ntfsprogs
):
root #
mkfs.ntfs /dev/sdyX
Замените /dev/sdyX на раздел, который хотите отформатировать.
Монтирование
Есть несколько способов смонтировать файловую систему NTFS:
- mount — команда для монтирования файловых систем.
- /etc/fstab — автоматическое монтирование во время загрузки.
- removable media — монтирование по запросу.
- AutoFS — автоматическое монтирование при запросе.
Драйвер ядра
При использовании нового драйвера NTFS3 (ядро 5.15):
root #
mount -t ntfs3 /dev/device /path/to/mountpoint
Выполнение mount /dev/device /path/to/mountpoint может привести к ошибке, даже если драйвер
ntfs3
загружен, убедитесь, что выполняете команду с параметром -t ntfs3
.FUSE (NTFS-3G)
При использовании драйвера из пакета ntfs3g:
root #
mount -t ntfs-3g /dev/device /path/to/mountpoint
Устранение проблем
NTFS-3G
Принудительное монтирование раздела NTFS после гибернации Windows
Файловая система NTFS под управлением Windows может быть введена в состояние гибернации вместо корректного выключения для экономии времени при последующей загрузке системы. В этом случае невозможно смонтировать раздел NTFS, пока файл hiberfil.sys не будет удалён. Для принудительного монтирования раздела в гибернации, можно использовать следующую команду, которая удалит файл гибернации; при этом вся информация в нём будет утеряна. Windows выполнит полный старт системы, чтобы возобновить свою работу:
root #
mount -t ntfs-3g -o remove_hiberfile /path/to/device /path/to/mountpoint
В Windows, чтобы предотвратить гибернацию раздела, можно выполнить команду powercfg /h off от имени администратора системы. Эта команда отключит гибернацию, что скорее всего увеличит время загрузки Windows, но при этом раздел будет отмонтирован корректно.
Если для отключения гибернации невозможно получить права администратора в Windows, попробуйте следующее решение:
- Загрузите Windows до экрана входа в Windows.
- Нажмите на кнопку питания (в нижнем правом углу экрана), а затем, удерживая клавишу shift, нажмите на Перезагрузку.
- Выберите раздел «Дополнительно», а после перезагрузитесь в настройки прошивки UEFI.
- Оказавшись в меню прошивки UEFI, выберите загрузочную запись Linux.
ntfsfix
Иногда в Linux необходимо выполнить исправление файловой системы NTFS. Для этого можно использовать утилиту ntfsfix:
root #
ntfsfix /dev/nvme0n1p3
Mounting volume... $MFTMirr does not match $MFT (record 3). FAILED Attempting to correct errors... Processing $MFT and $MFTMirr... Reading $MFT... OK Reading $MFTMirr... OK Comparing $MFTMirr to $MFT... FAILED Correcting differences in $MFTMirr record 3...OK Processing of $MFT and $MFTMirr completed successfully. Setting required flags on partition... OK Going to empty the journal ($LogFile)... OK Checking the alternate boot sector... OK NTFS volume version is 3.1. NTFS partition /dev/nvme0n1p3 was processed successfully.
Смотрите также
- FAT — файловая система, использовавшаяся в MS-DOS (и последующих версиях Microsoft Windows до NT).
- Dislocker — FUSE-based filesystem driver capable of reading NTFS BitLocker encrypted partitions.
- UEFI Dual boot with Windows 7/8 — describes how to dual boot Microsoft Windows on a UEFI computer.
Внешние ресурсы
- NTFS на сайте Microsoft TechNet
- Linux kernel NTFS filesystem documentation
- Linux kernel NTFS3 filesystem documentation