Как ядро ​​Linux взаимодействует с файловой системой Windows NTFS?

Как ядро ​​Linux взаимодействует с файловой системой Windows NTFS?

Я читаю текст (Учебное пособие RW Smith LPIC_1), в котором говорится:

Linux может надежно читать NTFS и перезаписывать существующие файлы, но ядро ​​Linux не может записывать новые файлы в раздел NTFS.

Что означает, что «ядро» не может записывать новые файлы в раздел NFTS?

В другом месте говорится:

NTFS-3G — это драйвер NTFS для чтения/записи, который находится в пространстве пользователя, а не в пространстве ядра. Он используется как драйвер NTFS по умолчанию некоторыми дистрибутивами Linux.

Чем пространство ядра отличается от пространства пользователя?

Кроме того, если у нас есть доступ к дискам Windows в системах с двойной загрузкой, почему мы не можем увидеть тип файловой системы Windows с помощью таких команд, как df -T?

решение1

Что до NTFS-3G не было надлежащей поддержки чтения/записи NTFS. Изначально, в системе с двойной загрузкой, можно было записать файл на раздел NTFS, но при перезагрузке в Windows NT/XP вам пришлось бы выполнить проверку файловой системы, чтобы исправить (мета)данные на диске. Поэтому было обычным иметь раздел VFAT для обмена данными между Windows NT/XP и Linux, так как драйвер для этого типа файловой системы не имел этого ограничения/проблем.

С появлением NFTS-3G (2006) в этом больше нет необходимости, и вы можете записывать новые файлы и обновлять существующие, перезагружать Windows и использовать эти файлы без проверки файловой системы. (К тому времени я в значительной степени отказался от перезагрузки и вместо этого использовал Windows на виртуальных машинах).

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

Что касается df -T, похоже, что он работает с Fuse и (правильно) определяет тип файловой системы как fuseblk. Fuse ничего не знает о NTFS, поэтому не обеспечивает более глубокого зондирования. Он также не df -Tзондирует диск, он просто спрашивает драйвер файловой системы, какой тип он обрабатывает (если бы он мог, вам не пришлось бы монтировать файловую систему, чтобы она появилась в df -T, в этом случае он мог бы просто зондировать блоки устройства напрямую и делать предположения).

Связанный контент