Как в linux в ntfs

Обновлено: 01.07.2024

Linux-NTFS поставляется с рядом программ пользовательского пространства, известных как ntfsprogs. К ним относятся mkntfs, полнофункциональная утилита форматирования файловой системы ntfs, ntfsundelete, используемая для восстановления файлов, которые были непреднамеренно удалены из тома NTFS, и ntfsresize, используемая для изменения размера раздела NTFS. Дополнительную информацию см. на веб-сайте.

Чтобы смонтировать том NTFS 1.2/3.x (Windows NT4/2000/XP/2003), используйте тип файловой системы «ntfs». В настоящее время драйвер поддерживает режим только для чтения (без отказоустойчивости, шифрования и ведения журнала) и очень ограниченную, но безопасную поддержку записи.

Для обеспечения отказоустойчивости и поддержки рейдов (т. е. наборов томов и полос) можно использовать программный драйвер RAID / MD ядра. Подробнее см. в разделе «Использование программного RAID с NTFS».

Веб-сайт¶

На веб-сайте есть много дополнительной информации, такой как исчерпывающий FAQ, документация по формату NTFS на диске, информация об утилитах пользовательского пространства Linux-NTFS и т. д.

Функции¶

Это полностью переписанный драйвер NTFS, который использовался в ядре 2.4 и более ранних версиях. Этот новый драйвер реализует поддержку чтения NTFS и функционально эквивалентен старому драйверу ntfs, а также реализует ограниченную поддержку записи. Самое большое ограничение в настоящее время заключается в том, что файлы/каталоги нельзя создавать или удалять. См. ниже список поддерживаемых функций записи. Другое ограничение заключается в том, что запись в сжатые файлы вообще не реализована. Кроме того, пока не реализован доступ ни на чтение, ни на запись к зашифрованным файлам.

Новый драйвер полностью поддерживает разреженные файлы на томах NTFS 3.x, что не устраивает старый драйвер.

Новый драйвер поддерживает выполнение двоичных файлов благодаря поддержке mmap().

Новый драйвер поддерживает петлевое монтирование файлов в NTFS, которое используется некоторыми дистрибутивами Linux, чтобы позволить пользователю запускать Linux из раздела NTFS путем создания большого файла в Windows, а затем кольцевого монтирования файла в Linux и создания файловая система Linux на нем, которая используется для установки на него Linux.

Сравнение двух драйверов с использованием:

прогон три раза подряд с каждым драйвером (после перезагрузки) на 1,4-гигабайтном разделе NTFS показал, что новый драйвер работает на 20 % быстрее по общему истекшему времени (с 9:43 минут в среднем до 7:53). . Время, проведенное в пользовательском пространстве, не изменилось, но время, проведенное в ядре, уменьшилось в 2,5 раза (с 85 секунд процессора до 33).

Драйвер вообще не поддерживает короткие имена файлов. Для обратной совместимости мы реализуем доступ к файлам, используя их короткие имена файлов, если они существуют. Однако драйвер не будет создавать короткие имена файлов, а при переименовании любое существующее короткое имя файла будет удалено.

Новый драйвер поддерживает экспорт смонтированных томов NTFS через NFS.

Новый драйвер поддерживает асинхронный ввод-вывод (aio).

Новый драйвер поддерживает fsync(2), fdatasync(2) и msync(2).

Новый драйвер поддерживает readv(2) и writev(2).

Новый драйвер поддерживает обновления времени доступа (включая mtime и ctime).

Новый драйвер поддерживает truncate(2) и open(2) с O_TRUNC. Но в настоящее время включена лишь очень ограниченная поддержка сильно фрагментированных файлов, т. е. файлов, атрибут данных которых разделен на несколько экстентов. Еще одно ограничение заключается в том, что в настоящее время truncate(2) никогда не будет создавать разреженные файлы, поскольку для того, чтобы пометить файл как разреженный, нам нужно изменить запись каталога для файла, а мы еще не реализуем изменения каталога.

Новый драйвер поддерживает функцию записи (2), которая может как перезаписывать существующие данные, так и увеличивать размер файла, чтобы вы могли выполнять запись за пределами существующих данных. Кроме того, поддерживается запись в разреженные области, а дыры заполняются кластерами. Но в настоящее время включена лишь ограниченная поддержка сильно фрагментированных файлов, т. е. файлов, атрибут данных которых разделен на несколько экстентов. Еще одно ограничение заключается в том, что write(2) никогда не будет создавать разреженные файлы, так как для того, чтобы пометить файл как разреженный, нам нужно изменить запись каталога для файла, а мы еще не реализуем изменения каталога.

Поддерживаемые параметры монтирования¶

В дополнение к общим параметрам монтирования, описанным на странице руководства для команды mount (man 8 mount, см. также man 5 fstab), драйвер NTFS поддерживает следующие параметры монтирования:

Устаревший параметр. По-прежнему поддерживается, но в будущем используйте nls=name. См. описание для nls=name.

Набор символов для использования при возврате имен файлов. В отличие от VFAT, NTFS подавляет имена, содержащие непреобразуемые символы. Обратите внимание, что большинство наборов символов содержат недостаточно символов для представления всех возможных символов Unicode, которые могут существовать в NTFS. Чтобы убедиться, что вы не пропустите ни одного файла, рекомендуется использовать nls=utf8, способный представлять все символы Юникода.

Опция больше не поддерживается.В настоящее время сопоставлен с nls=utf8, но, пожалуйста, используйте nls=utf8 в будущем и убедитесь, что utf8 скомпилирован либо как модуль, либо в ядро. См. описание для nls=name.

Укажите владельца, группу и маску режима доступа по умолчанию. Эти опции работают так, как описано в mount(8). По умолчанию файлы/каталоги принадлежат пользователю root, и он/она имеет права на чтение и запись, а также разрешение на просмотр каталогов. Ни у кого больше нет прав доступа. т.е. режим для всех файлов по умолчанию rw——-, а для каталогов rwx——, что является следствием значений по умолчанию fmask=0177 и dmask=0077. Использование umask, равного нулю, предоставит все разрешения всем, т. е. все файлы и каталоги будут иметь режим rwxrwxrwx.

Вместо указания umask, которое применяется как к файлам, так и к каталогам, fmask применяется только к файлам, а dmask — только к каталогам.

Если указано sloppy, игнорировать неизвестные параметры монтирования. В противном случае монтирование по умолчанию прерывается при обнаружении каких-либо неизвестных параметров.

Если указано show_sys_files, показывать системные файлы в списках каталогов. В противном случае поведение по умолчанию — скрыть системные файлы. Обратите внимание, что даже если указано show_sys_files, «$MFT» не будет отображаться из-за ошибок/неправильных функций в glibc. Кроме того, обратите внимание, что независимо от show_sys_files все файлы доступны по имени, т. е. вы всегда можете выполнить команду «ls -l $UpCase», например, чтобы специально отобразить системный файл, содержащий таблицу верхнего регистра Unicode.

Если указан регистр_чувствительно, все имена файлов следует рассматривать как чувствительные к регистру и создавать имена файлов в пространстве имен POSIX. В противном случае по умолчанию имена файлов рассматриваются как нечувствительные к регистру и создаются имена файлов в пространстве имен WIN32/LONG. Обратите внимание, что драйвер Linux NTFS никогда не будет создавать короткие имена файлов и удалит их при переименовании/удалении соответствующего длинного имени файла. Обратите внимание, что файлы остаются доступными по их коротким именам файлов, если они существуют. Если регистр_чувствителен, вам нужно будет указать правильный регистр короткого имени файла.

Если указан параметр disable_sparse, создание разреженных областей, т. е. дыр, внутри файлов для тома отключено (только на время этого монтирования). По умолчанию создание разреженных регионов включено, что соответствует поведению традиционных файловых систем Unix.

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

continue

ПО УМОЛЧАНИЮ, постарайтесь очистить как можно больше, например. пометить поврежденный inode как плохой, чтобы к нему больше не обращались, а затем продолжить.

восстановить

В настоящее время поддерживается только восстановление загрузочного сектора из резервной копии. При монтировании только для чтения восстановление выполняется только в памяти и не записывается на диск.

Обратите внимание, что параметры являются аддитивными, т. е. указывают:

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

Установите множитель зоны MFT для тома (этот параметр не является постоянным для разных монтирований и может меняться от монтирования к монтированию, но не может быть изменен при повторном монтировании). Допускаются значения от 1 до 4, 1 — значение по умолчанию. Множитель зоны MFT определяет, сколько места зарезервировано для MFT на томе. Если все остальное пространство занято, то зона MFT будет динамически сжиматься, так что это не повлияет на количество свободного места. Однако это может повлиять на производительность из-за фрагментации MFT. В общем, используйте значение по умолчанию. Если у вас много маленьких файлов, используйте более высокое значение. Значения имеют следующее значение:

< td>

37,5%

Значение

Размер зоны MFT (% от размера тома)

1

12,5%

< p>2

25%

3

4

50%

< /td>

Обратите внимание, что этот параметр не имеет значения для монтирования только для чтения.

Известные ошибки и (неправильные) функции¶

Счетчик ссылок для каждой записи индексного дескриптора каталога установлен на 1 из-за того, что Linux не поддерживает жесткие ссылки на каталоги. Это может сбить с толку некоторые приложения пользовательского пространства, поскольку имена каталогов будут иметь одинаковые номера инодов. Это также значительно ускоряет ntfs_read_inode(). И пока мы не обнаружили никаких проблем с этим подходом. Если вы обнаружите проблему с этим, сообщите нам об этом.

Пожалуйста, присылайте отчеты об ошибках/комментарии/отзывы/нарушения в список разработчиков Linux-NTFS на сайте sourceforge: linux-ntfs-dev @lists . . сеть

Использование томов и чередующихся наборов NTFS¶

Для поддержки наборов томов и чередования можно использовать либо драйвер Device-Mapper ядра, либо программный драйвер RAID/MD ядра. Первый рекомендуется использовать для линейного рейда. Но последний требуется для уровня рейда 5. Для чередования и зеркалирования любой драйвер должен работать нормально.

Драйвер Device-Mapper¶

Вам нужно будет создать таблицу компонентов набора томов/полос и того, как они сочетаются друг с другом, и загрузить ее в ядро ​​с помощью утилиты dmsetup (см. man 8 dmsetup).

Линейные наборы томов, т. е. линейный рейд, протестированы и работают нормально. Несмотря на то, что это не проверено, нет никаких причин, по которым чередующиеся наборы, то есть уровень рейда 0, и зеркала, то есть уровень рейда 1, также не должны работать. Полосы с четностью, т.е. уровень рейда 5, к сожалению, пока не могут работать, поскольку текущая версия драйвера Device-Mapper не поддерживает уровень рейда 5. Возможно, вы сможете использовать драйвер программного RAID/MD для уровня рейда 5, см. следующий раздел для получения подробной информации.

Чтобы создать таблицу, описывающую ваш том, вам необходимо знать каждый из его компонентов и их размеры в секторах, т.е. кратные блокам по 512 байт.

Для отказоустойчивых томов NT4 размеры можно получить с помощью fdisk. Так, например, если одним из ваших разделов является /dev/hda2, вы должны сделать:

И вы знаете, что /dev/hda2 имеет размер 37768814 - 4209030 + 1 = 33559785 секторов.

Для динамических дисков Win2k и более поздних версий вы можете, например, использовать утилиту ldminfo, которая является частью инструментов Linux LDM (последняя версия на момент написания — linux-ldm-0.0.8.tar.bz2). Вы можете скачать его с:

Просто распакуйте загруженный архив (tar xvjf linux-ldm-0.0.8.tar.bz2), зайдите в него (cd linux-ldm-0.0.8) и перейдите в тестовую директорию (cd test). Там вы найдете предварительно скомпилированную (i386) утилиту ldminfo. ПРИМЕЧАНИЕ. Вы не сможете легко скомпилировать это самостоятельно, поэтому используйте бинарную версию!

Затем вы должны использовать ldminfo в режиме дампа для получения необходимой информации:

Это приведет к созданию дампа базы данных LDM, найденной в /dev/hda, которая описывает все ваши динамические диски и все тома на них. Внизу вы увидите раздел VOLUME DEFINITIONS, который вам действительно нужен. Возможно, вам придется посмотреть выше, чтобы определить, какой из дисков в определениях томов является каким устройством в Linux. Совет: запустите ldminfo на каждом из ваших динамических дисков и посмотрите на идентификатор диска в верхней части вывода для каждого (раздел PRIVATE HEADER). Затем вы можете найти эти идентификаторы дисков в разделе БАЗА ДАННЫХ VBLK в компонентах, где вы получите имя LDM для диска, которое находится в разделе ОПРЕДЕЛЕНИЯ ТОМА.

Обратите внимание, что вам также потребуется включить драйвер LDM в ядре Linux. Если в вашем дистрибутиве он не включен, вам нужно будет перекомпилировать ядро ​​с его включением. Это создаст разделы LDM на каждом устройстве во время загрузки. Затем вы должны использовать эти устройства (для /dev/hda это будут /dev/hda1, 2, 3 и т. д.) в таблице Device-Mapper.

Вы также можете обойти использование драйвера LDM, используя основное устройство (например, /dev/hda), а затем используя смещения разделов LDM в этом устройстве в качестве «начального сектора устройства» при создании таблицы. И снова ldminfo предоставит вам правильную информацию для этого.

Предполагая, что вы знаете все свои устройства и их размеры, все несложно.

Для линейного рейда таблица будет выглядеть так (обратите внимание, что все значения указаны в секторах по 512 байт):

Для чередующегося тома, т. е. уровня рейда 0, вам необходимо знать размер фрагмента, который вы использовали при создании тома. Windows использует 64 КБ по умолчанию, так что, вероятно, будет так, если вы не измените значения по умолчанию при создании массива.

Для уровня рейда 0 таблица будет выглядеть так (обратите внимание, что все значения указаны в 512-байтовых секторах):

Если устройств больше двух, просто добавьте каждое из них в конец строки.

Наконец, для зеркального тома, т. е. уровня рейда 1, таблица будет выглядеть так (обратите внимание, что все значения указаны в 512-байтовых секторах):

Если вы выполняете зеркалирование на несколько устройств, вы можете указать дополнительные цели в конце строки.

Обратите внимание на вопрос «Следует ли синхронизировать?» Параметр «nosync» означает, что два зеркала уже синхронизированы, что будет иметь место при полном завершении работы Windows. Если зеркала не чистые, вы можете указать опцию «sync» вместо «nosync», и драйвер Device-Mapper скопирует все «Исходное устройство» на «Целевое устройство» или, если вы указали несколько целевых устройств. всем им.

Получив таблицу, сохраните ее где-нибудь в файле (например, /etc/ntfsvolume1) и передайте dmsetup для работы, например так:

Конечно, вы можете заменить «myvolume1» любым именем, которое вам нравится.

Если все это сработало, теперь у вас есть устройство /dev/device-mapper/myvolume1, которое вы можете просто использовать в качестве аргумента для команды mount, как обычно, для монтирования тома ntfs. Например:

(Сначала вам нужно создать каталог /mnt/myvol1 и, конечно, вы можете использовать что угодно вместо /mnt/myvol1, если это существующий каталог.)

Рекомендуется выполнять монтирование только для чтения, чтобы убедиться, что том настроен правильно, и избежать повреждения данных на томе ntfs.

Программный драйвер RAID/MD¶

Альтернативой использованию драйвера Device-Mapper является использование программного драйвера RAID / MD ядра. Для этого вам необходимо соответствующим образом настроить /etc/raidtab (см. man 5 raidtab).

Линейные наборы томов, т. е. линейный рейд, а также чередующиеся наборы, т. е. рейд уровня 0, были протестированы и работают нормально (хотя см. раздел «Ограничения при использовании драйвера MD с томами NTFS», особенно если вы хотите использовать линейный рейд). Несмотря на то, что это не проверено, нет никаких причин, по которым зеркала, т. е. уровень рейда 1, и чередование с четностью, т. е. уровень рейда 5, также не должны работать.

Вы должны использовать параметр «persistent-superblock 0» для каждого рейд-диска в томе/страйпе NTFS, который вы настраиваете в /etc/raidtab, поскольку постоянный суперблок, используемый драйвером MD, может повредить том NTFS.< /p>

Windows по умолчанию использует размер блока чередования 64 КБ, поэтому вам, вероятно, также понадобится параметр «размер блока 64 КБ» для каждого RAID-диска.

Например, если у вас есть набор полос, состоящий из двух разделов /dev/hda5 и /dev/hdb1, ваш /etc/raidtab будет выглядеть так:

Для линейного рейда просто измените указанный выше уровень рейда на «линейный уровень рейда», для зеркал измените его на «уровень рейда 1», а для наборов чередования с четностью измените его на «уровень рейда 5».

После настройки рейдтаба запустите, например, raid0run -a, чтобы запустить все устройства, или raid0run /dev/md0, чтобы запустить определенное устройство md, в данном случае /dev/md0.

Затем просто используйте команду mount, как обычно, чтобы смонтировать том ntfs, например:

Рекомендуется выполнять монтирование в режиме только для чтения, чтобы убедиться, что том md настроен правильно, чтобы избежать повреждения данных на томе ntfs.

Ограничения при использовании драйвера Software RAID/MD¶

Использование драйвера md не будет работать должным образом, если какой-либо из ваших разделов NTFS имеет нечетное количество секторов. Это особенно важно для линейного рейда, так как все данные после первого раздела с нечетным количеством секторов будут смещены на один или несколько секторов, поэтому, если вы смонтируете такой раздел с поддержкой записи, вы нанесете огромный ущерб данным на томе, который станет очевидным только при попытке снова использовать том под Windows.

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

Еще лучше просто использовать Device-Mapper для линейного рейда, и тогда у вас не будет этой проблемы с нечетным количеством секторов.

Новая файловая система Microsoft существует уже несколько десятилетий, и в конце концов она будет полностью поддерживаться для пингвинов

Мнение Нравится вам это или нет, пользователи Linux в мире Windows должны иметь дело с файловой системой новой технологии Microsoft (NTFS). Это всегда было головной болью. Даже после того, как Microsoft, наконец, отказалась от своей анти-Linux-риторики и предоставила свои патенты сообществу разработчиков открытого исходного кода, а также выразительно открыла свои патенты exFAT, мы все еще не могли попасть в NTFS.

Все изменилось. Начиная с ядра Linux 5.15, NTFS наконец-то полностью поддерживается в Linux. Это путешествие было непростым.

Microsoft представила NTFS, проприетарную, естественно, журналируемую файловую систему в Windows NT 3.1 в 1993 году. С тех пор она заменила файловую систему File Allocation Table (FAT) 1977 года в Windows.

Теперь только потому, что что-то является проприетарным, не означает, что Linux и разработчики открытого исходного кода не могут перепроектировать это или найти какой-то способ его использования. Просто посмотрите, что команда Samba сделала за эти годы с блоком сообщений сервера (SMB) и людьми из Wine, у которых есть множество приложений Windows для работы в семействе операционных систем * nix. Однако NTFS оказалось гораздо сложнее перенести.

О, были способы работать с дисками NTFS из Linux, но это было некрасиво. Ранее существовало два основных драйвера Linux NTFS с открытым исходным кодом: NTFS-3G и драйвер Captive NTFS.

NTFS-3G, представленная в 2007 году, может работать в Linux как программа пользовательского пространства с файловой системой в пользовательском пространстве (FUSE). Он имеет репутацию медленного. Как недавно написал Линус Торвальдс в списке рассылки ядра Linux (LKML), «FUSE в пользовательском пространстве действительно работает достаточно хорошо. Он работает ужасно плохо».

Создатель NTFS-3G и технический директор Tuxera, ее материнской компании, Сабольч Сакачитс, однако, сказал Торвальдсу, что более тщательный обзор NTFS-3G и нового драйвера NTFS для ядра Linux покажет, что «пользовательское пространство ntfs-3g было около 21 % быстрее в целом, чем пространство ядра ntfs3». Тем не менее, Сакачиц добавил, что «Ntfs-3g всегда стремился к стабильности, функциям, совместимости и переносимости, а не к максимально возможной производительности». Он также добавил, что «драйверы пользовательского пространства могут иметь серьезные недостатки для определенных рабочих нагрузок», но затем спросил, «насколько они актуальны для пользователей NTFS?»

Вы скоро сами в этом убедитесь, протестировав пространство пользователя NTFS-3G с новым драйвером ядра Linux NTFS3.

Драйвер Captive NTFS может выполнять чтение и запись в NTFS. Однако для реализации этого трюка использовался оригинальный драйвер Windows ntfs.sys. Использование проприетарного драйвера в программном обеспечении с открытым исходным кодом всегда проблематично, особенно в те недобрые старые времена. В итоге проект просуществовал недолго. Сам код все еще существует, но сам проект давно мертв.

Пока сообщество разработчиков открытого исходного кода работало над этими проектами, компания Paragon использовала другой подход. Его Microsoft NTFS для Linux от Paragon Software использовала проприетарный Paragon File System Link, кроссплатформенный драйвер файловой системы для чтения и записи с дисков NTFS. Название программы говорит само за себя. Paragon производит свое программное обеспечение в партнерстве с Microsoft.

Результатом стала быстрая, эффективная и, да, проприетарная система NTFS Linux. Но в то время как Paragon преуспевал в этом бизнесе в течение многих лет, Microsoft больше не была проприетарным центром, которым она была при Билле Гейтсе и Стиве Балмере. Сегодняшняя Microsoft осознала, что с открытым исходным кодом она была не на той стороне истории.

Что должен был сделать Paragon с Microsoft, выступающей за открытый исходный код? Ну, сначала компания быстро перешла к первым трем стадиям горя: отрицание и изоляция, гнев и торг. В мае 2020 года он опубликовал статью под названием «Скрытая стоимость «бесплатного» exFAT», где вы можете увидеть все три этапа на дисплее.

К сентябрю 2020 года Paragon перешел к заключительному этапу: приемке. Компания «предоставила драйвер ядра NTFS для чтения и записи под лицензией GPL сообществу Linux для возможного включения в свое время в основное ядро.

Это была замечательная новость… за исключением одной мелочи. Код NTFS3 никоим образом не был готов для добавления в ядро. В том-то и дело с проприетарным кодом — и почему я цинично отношусь к идее, что Microsoft может просто открыть исходный код, скажем, для всей Windows 7 — он часто плохо написан. В отличие от программного обеспечения с открытым исходным кодом, где каждый может увидеть вашу работу, проприетарное программное обеспечение может скрывать свои грехи от наблюдателей.

Во-первых, код из 27 000 строк был слишком большим. Разработчик ядра Linux Николай Борисов написал: «Итак, как именно вы ожидаете, что кто-то проверит это чудовище?»

Хороший вопрос. Ответ: нельзя.

Кроме того, как сказал Линус Торвальдс, было бы неплохо, если бы Paragon, ну вы знаете, "действительно отправил бы его".

Не будет ли слишком много просить «Paragon [чтобы] просто сделать для этого git pull request»?

Paragon, что неудивительно, не знал, что делать с электронной почтой ядра Linux и рабочим процессом, управляемым Git. Mea culpa, Paragon согласился, что «будет поддерживать эту реализацию», но что «нам понадобится несколько дней, чтобы подготовить правильный запрос на включение, прежде чем отправить его вам».

Торвальдс был рад это слышать, но предупредил разработчиков Paragon: «Еще одна вещь, которую я действительно хочу, когда добавляются такие большие новые части, как эта, — это попросить вас убедиться, что все подписано должным образом, и что внутри Paragon нет внутренней путаницы по поводу GPLv2, и что любые юридические лица и т. д. все знают обо всем этом и находятся на борту Последнее, что мы хотим видеть, это какое-то «Ой, мы не хотели сделай это через шесть месяцев."

Спустя год у них не было борьбы за GPL. Слава Богу за маленькие чудеса. Но после долгого и запутанного процесса NTFS3 и, следовательно, NTFS, наконец, стали кандидатом на выпуск ядра Linux 5.15. Если все пойдет хорошо, вы можете ожидать, что это ядро ​​будет доставлено к Хэллоуину. Не стесняйтесь шутить о документах Microsoft на Хэллоуин, если хотите, но с молчаливого благословения Microsoft NTFS наконец-то будет полностью и эффективно работать в Linux.

Кто бы мог подумать об этом — даже пять лет назад, после того как Microsoft заявила, что любит Linux? Мы живем в интересные времена. ®

Обновлено в 22:38 UTC 14 октября 2021 г. для добавления

Статья дополнена информацией от Линуса Торвальдса и автора NTFS-3G Сабольча Сакачица.

NTFS означает файловую систему новой технологии. Эта система хранения файлов является стандартной для компьютеров Windows, но системы Linux также используют ее для организации данных.

Большинство систем Linux монтируют диски автоматически. Однако в конфигурациях с двойной загрузкой, когда требуется обмен файлами между двумя системами с разделами NTFS, эта процедура выполняется вручную.

В этой статье показано, как смонтировать раздел NTFS в Linux с разрешениями только для чтения или чтения и записи.

Как смонтировать раздел NTFS в Linux

  • Система под управлением Linux
  • Учетная запись пользователя с правами sudo или root
  • Доступ к окну терминала/командной строке (Действия >Поиск >Терминал)

Смонтировать раздел NTFS с разрешением только для чтения

Следуйте приведенным ниже инструкциям, чтобы смонтировать раздел NTFS с доступом только для чтения.

Примечание. Раздел только для чтения позволяет пользователям читать файлы. Чтобы включить запись в раздел NTFS, обратитесь ко второму разделу статьи.

Определить раздел NTFS

Перед монтированием раздела NTFS определите его с помощью команды parted:

Идентификация раздела NTFS с разделенная команда». ширина =

В приведенном выше примере два раздела NTFS находятся на диске /dev/sdb. Прежде чем продолжить, запишите номер раздела, который вы хотите смонтировать.

Вы также можете использовать команды fdisk и grep, чтобы отобразить на диске только разделы NTFS:

Создать точку монтирования и смонтировать раздел NTFS

В этом примере мы смонтируем раздел /dev/sdb1 с правами только на чтение.

Сначала создайте точку монтирования с помощью команды mkdir:

Далее смонтируйте раздел в созданный вами каталог. Используйте команду mount и указанный ранее путь к разделу:

Используйте инструмент disk free, чтобы проверить сведения обо всех файловых системах и убедиться, что раздел успешно смонтирован:

 Процесс монтирования раздела NTFS». ширина=

Раздел /dev/sdb1 отображается как смонтированный в конце списка. Теперь у вас есть доступ только для чтения к этому разделу NTFS.

Смонтировать раздел NTFS с разрешениями на чтение и запись

Чтобы смонтировать раздел NTFS с разрешениями на чтение и запись, вам необходимо установить в системе fuse и ntfs-3.

Выполните следующие шаги, чтобы завершить процесс подключения.

Примечание. В некоторых дистрибутивах Linux по умолчанию могут быть установлены fuse и ntfs-3g.

Обновление репозиториев пакетов

Выполните следующую команду, чтобы загрузить и обновить репозитории пакетов:

Обновление информации о пакете.

Установите Fuse и ntfs-3g

Чтобы установить fuse в вашей системе Linux из репозитория по умолчанию, используйте соответствующий менеджер пакетов. В нашем примере мы используем apt в Ubuntu.

По завершении установки установите ntfs-3g, выполнив:

Если и предохранитель, и ntfs-3g уже установлены, результат будет примерно таким, как показано ниже:

Установка предохранителя и ntfs-3g, чтобы смонтировать раздел с правами на чтение и запись». ширина=

Смонтировать раздел NTFS

После установки программных пакетов fuse и ntfs-3g смонтируйте раздел NTFS.

Сначала создайте точку монтирования с помощью команды mkdir:

Затем используйте команду mount, чтобы смонтировать нужный раздел. Например, /dev/sdb2 :

Чтобы проверить, смонтирован ли раздел, выполните команду df:

Процесс монтажа раздел NTFS с правами на чтение и запись». ширина=

Теперь у вас есть права на чтение/запись для смонтированного раздела NTFS.

Примечание. Для монтирования раздела через ntfs-3g рекомендуется версия ядра Linux 2.6.20 или новее. Узнайте, как обновить ядро ​​в Ubuntu или как обновить ядро ​​в CentOS.

Прочитав эту статью, вы должны были научиться монтировать раздел NTFS. Работа с разделами имеет решающее значение в системе Linux, и далее мы рекомендуем узнать, как удалить раздел в Linux и как отформатировать разделы диска в Linux.

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

Содержание

Установка

Ручная установка

При ручном монтировании разделов NTFS существует два варианта. Традиционный:

Тип монтирования ntfs-3g не нужно явно указывать в Arch. Команда mount по умолчанию будет использовать файл /usr/bin/mount.ntfs, который символически связан с /usr/bin/ntfs-3g после установки пакета ntfs-3g.

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

Доступные параметры см. в ntfs-3g(8).

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

Настройка

Ваши разделы NTFS могут быть настроены для автоматического монтирования или предварительно настроены для возможности монтирования определенным образом, когда вы хотите, чтобы они монтировались. Эту настройку можно выполнить в конфигурации статической файловой системы (fstab) или с помощью правил udev.

Настройки по умолчанию

Использование настроек по умолчанию приведет к монтированию разделов NTFS при загрузке.С помощью этого метода, если родительская папка, к которой она подключена, имеет соответствующие разрешения пользователя или группы (например, /run/media/ /), тогда этот пользователь или группа сможет читать и записывать в этот раздел (разделы). < /p>

Разрешения, совместимые с Linux

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

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

Разрешение группы/пользователя

В /etc/fstab вы также можете указать другие параметры, например, тех, кому разрешен доступ (чтение) к разделу. Например, чтобы разрешить доступ людям из группы groupid:

По умолчанию указанная выше строка включает поддержку записи только для root. Чтобы разрешить пользователям писать, вы должны указать пользователя, которому должны быть предоставлены права на запись. Используйте параметр uid вместе с вашим идентификатором пользователя, чтобы пользователь мог писать:

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

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

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

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

Следующий параметр относится только к ntfs-3g:

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

Разрешение пользователю монтировать

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

  • Пакет ntfs-3g не имеет внутренней поддержки FUSE. Пересоберите пакет с помощью ABS, чтобы включить поддержку FUSE.
    • Полное объяснение состоит в том, что «пользователь» и «пользователи» работают через монтирование с setuid, не сбрасывая свои привилегии setuid, так что блочное устройство можно использовать без root. Однако ntfs-3g имеет жестко запрограммированное ограничение в ntfs-3g, которое отключает setuid, если используется внешний libfuse.
    • Нет веских технических причин для запрета использования setuid для внешнего FUSE, кроме недоверия к библиотеке. Этот патч снимает указанное ограничение.

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

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

    На большинстве приобретенных систем уже установлена ​​Windows, и некоторые люди предпочитают не стирать ее полностью при установке Arch Linux. По этой причине, помимо прочего, полезно изменить размер существующего раздела Windows, чтобы освободить место для одного или двух разделов Linux. Это часто достигается с помощью Live CD или загрузочного USB-накопителя.

    Для Live CD типичная процедура заключается в загрузке файла ISO, записи его на компакт-диск и последующей загрузке с него. InfraRecorder — это бесплатное (как и в GPL3) приложение для записи CD/DVD для Windows, которое прекрасно отвечает всем требованиям. Если вместо этого вы предпочитаете использовать загрузочный USB-носитель, см. раздел Установочный USB-накопитель, чтобы узнать, как создать загрузочный USB-накопитель.

    Доступно несколько загрузочных образов CD/USB. Этот список не является исчерпывающим, но с него можно начать:

    • GParted — небольшой загрузочный дистрибутив GNU/Linux для компьютеров на базе x86. Это позволяет вам использовать все функции последних версий приложения GParted. Не включает дополнительные пакеты, которые может включать компакт-диск System Rescue, и схемы шифрования диска могут не поддерживаться.
    • Parted Magic — очень хорошее комплексное решение для управления жесткими дисками. С помощью редактора разделов вы можете изменять размер, копировать и перемещать разделы. Вы можете увеличить или уменьшить размер диска C:. Освободите место для новых операционных систем. Попытаться восстановить данные из потерянных разделов.
    • SystemRescueCD — хороший инструмент, который в большинстве случаев работает безупречно. После загрузки запустите GParted, и все остальное должно быть достаточно очевидно.

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

    Если в вашей системе уже установлен Arch Linux и вы просто хотите изменить размер существующего раздела NTFS, вы можете использовать для этого пакеты parted и ntfs-3g. При желании вы можете использовать графический интерфейс GParted после установки пакета GParted. В основе изменения размера лежит команда ntfsresize(8).

    Устранение неполадок

    Сжатые файлы

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

    1. увидеть неработающие символические ссылки на "неподдерживаемую точку повторной обработки", или
    2. увидеть сообщение об ошибке невозможно получить доступ к some_file: Ошибка ввода/вывода (в этом случае вы видите Не удалось загрузить плагин /usr/lib64/ntfs-3g/ntfs-plugin-80000017.so: Успех в журнале).

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

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

    Дополнительную информацию см. на этой странице.

    Системное сжатие, также известное как «Компактная ОС», сжимает определенные файлы. Есть два возможных обходных пути для сжатия системы.

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

    Кроме того, отключите функцию сжатия системы в Windows 10

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

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

    Обратите внимание, что ntfsfix может исправить только некоторые ошибки. В случае сбоя chkdsk, скорее всего, удастся.

    Чтобы исправить файловую систему NTFS, устройство уже должно быть размонтировано. Например, чтобы исправить раздел NTFS, расположенный в /dev/sda2:

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

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

    Метаданные хранятся в кеше Windows, отказываются монтироваться

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

    Проблема возникает из-за функции, представленной в Windows 8, которая называется "быстрый запуск". При включении быстрого запуска часть метаданных всех смонтированных разделов восстанавливается до состояния, в котором они находились при предыдущем закрытии. Как следствие, изменения, внесенные в Linux, могут быть утеряны. Это может произойти с любым разделом NTFS при выборе «Завершение работы» или «Спящий режим» в Windows 8 или 10. Однако выход из Windows путем выбора «Перезагрузка», по-видимому, безопасен.

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

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

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

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

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

    Ошибка монтирования

    Ошибка монтирования Windows

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

    Бета-функции и выпуски

    Существует веб-страница о «расширенных функциях», поддерживаемая Жаном-Пьером Андре, одним из авторов NTFS-3G. Он обеспечивает:

    • Документация по работе с функциями NTFS в NTFS-3G, включая:
      • Символические ссылки, соединения и другие точки повторной обработки
      • Расширенные атрибуты (xattrs) в качестве интерфейса для потоков ADS и специальных атрибутов NTFS
      • Безопасность и разрешения, включая сопоставление POSIX и сопоставление ACL.

      Информация, представленная в документации, относится и к версии Tuxera (2017.3.23). Плагины системного сжатия и дедупликации работают с версией Tuxera, но для плагина onedrive требуется настройка системы загрузки плагинов, доступная только в расширенных версиях.

      У меня есть новый ноутбук, который я настраиваю как двойную загрузку Windows/Linux.

      Я хочу получить доступ к файлам как в Ubuntu, так и в Windows 7.

      Должен ли я создать отдельный раздел NTFS?

      9 ответов 9

      Если вы используете и Ubuntu, и Windows, то да, вам, вероятно, следует хранить файлы, к которым вы хотите получить доступ для обеих систем, в разделе NTFS. Разделы exFAT и FAT32 — это другие варианты, но:

      exFAT обременен патентами, поэтому его поддержка по умолчанию не встроена в Ubuntu. Вы можете добавить его без особых проблем, но это все же больше проблем, чем не добавлять его вообще.

      • Помните, что если вам нужно загрузиться с Live CD Ubuntu для целей восстановления, Live CD не будет иметь драйверов exFAT, даже если они есть в вашей установленной системе.
      • Вы также можете проверить свои местные законы перед установкой exFAT, чтобы определить, можете ли вы понести гражданскую ответственность из-за проблем с патентами. (Я не пытаюсь вас обескуражить, и я не юрист. Я просто хочу, чтобы вы знали о возможных проблемах.)

      FAT32 не поддерживает файлы размером более 4 ГБ. В наши дни у вас вполне могут быть файлы такого размера, в зависимости от того, для чего вы используете свой компьютер.

      Ни exFAT, ни FAT32 не поддерживают права собственности и права доступа к файлам. Обычно это довольно незначительно по сравнению с NTFS, поскольку, хотя NTFS поддерживает права собственности и разрешения, несколько сложно заставить их должным образом соблюдаться / использоваться при монтировании тома NTFS в операционной системе, отличной от Windows, такой как Ubuntu. Однако вы можете это сделать.

      Если у вас нет особой причины поступать иначе, ваш раздел для обмена файлами между Ubuntu и Windows, вероятно, должен быть NTFS. Кроме того, это может быть даже просто это раздел Windows, так как он имеет тип NTFS. Однако вы не можете установить Ubuntu в раздел NTFS (за исключением Wubi, который устанавливает его на перезаписываемый образ диска, который находится внутри раздела NTFS).

      Поскольку Ubuntu не так хорошо восстанавливает поврежденные разделы NTFS, как Windows (хотя для этого есть утилиты Ubuntu), вам, вероятно, следует избегать NTFS для машин, на которых Ubuntu является единственной операционной системой. (Но для такой машины вы можете использовать тип раздела Ubuntu по умолчанию, ext4.)

      YANAL, но, учитывая несколько реализаций GPL, я полагаю, что крупные компании нашли обходные пути. Я думаю, что этот ответ устарел.

      Да, вам следует создать отдельный раздел NTFS для обмена файлами между Ubuntu и Windows на вашем компьютере.

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

      Я бы по-прежнему рекомендовал отдельный раздел для важных данных, предназначенный для совместного использования разными ОС на одном компьютере.

      Просто хотел добавить еще один вопрос с лучшим ответом. Ubuntu (Linux) имеет встроенную поддержку раздела NTFS, но наоборот невозможен из коробки, т. Е. Windows не может получить доступ к разделам Linux. Но есть несколько очень хороших инструментов, таких как EXT2Read, которые могут помочь читать/записывать даже разделы ext4.

      Спасибо @MuhammadAhmadZafar - если у вас нет возражений, я отредактирую ваш комментарий в ответ. :о)

      Если вы имеете в виду загрузочный раздел, то ни то, ни другое; Linux не может загружаться с NTFS или exFAT. Кроме того, exFAT не рекомендуется для большинства применений, поскольку Ubuntu/Linux в настоящее время не может выполнять запись в exFAT.

      Вам не нужен специальный раздел для «общего доступа» к файлам; Linux может читать и записывать NTFS (Windows) просто отлично. С другой стороны, если вы хотите создать «общий» раздел, рассмотрите следующие варианты:

      • FAT32 (vfat): эта относительно старая, но простая файловая система отлично поддерживается в Linux (и встроена в Windows); это хороший выбор для случайных общих файлов, таких как музыка, небольшие носители, документы и т. д. Однако максимальный размер файла ограничен 4 ГБ.
      • ext2/ext3: эти собственные файловые системы Linux имеют хорошую поддержку чтения/записи в Windows с помощью сторонних драйверов, таких как ext2fsd. Хороший выбор, если вы будете использовать это в основном в Ubuntu/Linux, но вам также нужна поддержка чтения/записи в Windows.

      Да, очень удобно иметь раздел NTFS для совместного использования между Ubuntu и Windows. На самом деле мой раздел /home — это NTFS.

      Но предостережение, если вы используете функцию гибернации. Поскольку спящий режим НЕ размонтирует раздел, вам действительно нужно убедиться, что после спящего режима вы просыпаетесь в нужной ОС. В противном случае вы можете столкнуться с опасностью повреждения раздела и потери данных.

      При установке по умолчанию при выходе из спящего режима GRUB всегда выделяет первый вариант (ubuntu в моем GRUB), но это может быть не та ОС, из которой вы переходите в спящий режим. Вы можете искать параметры в файле конфигурации GRUB, чтобы он всегда выделял последний загруженный параметр ОС. Таким образом, вы можете избежать проблем с пробуждением не той ОС.

      Разделы NTFS по умолчанию доступны для чтения и записи в Ubuntu.

      Таким образом, вы действительно можете создать отдельный раздел NTFS для хранения файлов, к которым вы хотите получить доступ из обеих операционных систем.

      Вы также можете просто смонтировать раздел Windows, когда вам это нужно. Он автоматически появится на боковой панели проводника в Ubuntu. Это помешает вам создать дополнительный раздел.

      Выбор за вами; любая конфигурация правдоподобна и безопасна.

      Я знаю, что это старая ветка, но новые правила разделения Dropbox сильно ударят по ней.

      Недавно я столкнулся с той же проблемой при использовании DropBox между Linux и Windows. Dropbox ТРЕБУЕТ, чтобы вы использовали NTFS для файлов Dropbox в Windows и ext4 в Linux. Это означает, что если вы делитесь файлами Dropbox между двумя операционными системами, ОДНА из них НЕ сможет синхронизироваться. У вас есть несколько вариантов, ни один из них не идеален.

      Общий раздел NTFS (НЕ ВАШ РАЗДЕЛ WINDOWS) между двумя операционными системами. Это позволит синхронизировать только установку Windows Dropbox, что означает, что вы можете даже не устанавливать DropBox на стороне Linux. Просто используйте файлы Dropbox, как обычно, на стороне Linux, но помните, что вы не получите автоматическую синхронизацию, которая обеспечивает резервное копирование файлов, пока вы находитесь в Linux. Вам придется периодически перезагружаться в Windows, чтобы файлы синхронизировались. К сожалению, нет хорошего способа сделать это в другом направлении (DropBox в Linux ext4, совместно с Windows), потому что нет надежного решения для чтения/записи для доступа к разделам ext4 из Windows. Существуют решения только для чтения, которые позволят вам читать файлы со стороны Windows, но не записывать их.

      Имейте на компьютере две разные копии файлов Dropbox (одну в ext4 для Linux и одну в NTFS для Windows). Это займет в два раза больше места, чем действительно необходимо, но я не вижу другого выхода, поскольку DropBox внедрил это дрянное правило, которое делает невозможным эффективный обмен файлами Dropbox между несколькими операционными системами.

      Читайте также: