NTFS FAQ (Часто Задаваемые Вопросы по NTFS)

English Italian Japanese Vietnamese German Simplified Chinese French Spanish Brazilian Traditional Chinese Russian

Этот документ часть проекта Linux NTFS Project.
Самая последняя версия может быть найдена здесь:
ntfs.html

Если у Вас есть вопрос на который нет ответа в этом документе, или у Вас есть замечания по нему самому, пожалуйста пишите мне на адрес: linux-ntfs-dev@sourceforge.net

Содержание

Условные обозначения

** - Самые задаваемые вопросы
!! - Другая интересная информация
NB - Прочтите внимательно

 Команды или результат

1.Общие вопросы по NTFS

  1.1 Что такое NTFS?
  1.2 Лучше ли NTFS чем FAT/FAT32?
  1.3 Должен\Должна ли я пользоваться NTFS? (Или конвертировать в неё?)
!! 1.4 Отличается ли NTFS в различных версиях Windows?
  1.5 Каковы пределы NTFS?

2. Разделы NTFS

  2.1 Как мне считывать информацию с раздела NTFS находясь в системах 95/98/ME или DOS?
  2.2 Как конвертировать раздел FAT в NTFS?
!! 2.3 Как конвертировать раздел NTFS в FAT ?
  2.4 Как удалить раздел NTFS ?
  2.5 Как дефрагментировать раздел NTFS ?
** 2.6 Как изменить размер раздела NTFS ?

3. Linux и NTFS

!! 3.1 Какие версии NTFS может читать Linux ?
** 3.2 Может ли драйвер записывать на NTFS раздел?
  3.3 Какие свойства NTFS поддерживает Linux ?
  3.4 Что делать если возникают проблемы?
** 3.5 Как добавить в Linux поддержку NTFS ?
  3.6 Какая версия лучше?
  3.7 Какие другие утилиты имеются в наличии?
  3.8 Как был написан драйвер Linux NTFS ?
  3.9 Кого мы благодарим ?

4. Монтирование разделов NTFS

  4.1 Могу ли я монтировать раздел NTFS ?
  4.2 Насколько безопасен драйвер NTFS ?
  4.3 Какой раздел следует использовать?
  4.4 Какая у меня установлена версия драйвера NTFS?
!! 4.5 Как монтировать раздел ?
  4.6 Общие параметры при монтировании.
  4.7 Параметры монтирования для Исходного Драйвера.
  4.8 Параметры монтирования для Нового Драйвера.
** 4.9 Как мне изменить полномочия доступа смонтированного раздела ?
!! 4.10 Как сделать чтобы разделы NTFS монтировались автоматически?

5. Загрузка операционных систем на NTFS

  5.1 Могу ли я загрузить Windows на разделе NTFS ?
  5.2 Как пользовать lilo?
  5.3 Как пользовать grub?

6. Дистрибутивы Linux

  6.1 Какие дистрибутивы поддерживают NTFS сразу после их установки?
  6.2 Почему RedHat не поддерживает NTFS?
  6.3 Почему RedHat прекращает реагировать когда пытается получить доступ к разделу NTFS ?
  6.4 Существуют ли дистрибутивы для установки на NTFS?

7. Новый драйвер Linux NTFS

  7.1 Что такое Новый драйвер Linux NTFS ?
  7.2 Обязательно ли его использовать?
  7.3 Как пользоваться новым драйвером?
  7.4 Что такое заплатка?
  7.5 Что делать если что-то всё же не понятно?
  7.6 Когда новый код будет в ядре Linux ?
  7.7 Не можем ли мы написать оболочку драйверу Windows?

Вернуться к началу


1. Общие вопросы по NTFS

1.1 Что такое NTFS?

NTFS это сокращение от New Technology Filesystem (Файловая система новой технологии) . NT потому что первоначально она была применена в системе Windows NT, а файловая система это просто способ хранения файлов на диске. Различные операционные системы хранят файлы различными способами.

NTFS применяется в системах Windows NT, 2000, XP и Windows Server 2003.

Вернуться к началу

1.2 Лучше ли NTFS чем FAT/FAT32?

Если коротко - да. Она намного устойчивее, поддерживает Unicode кодировку в именах файлов, имеет надлежащий уровень безопасности, сжатия и шифрования. Главным недостатком её является то что она доступна для чтения только системам Windows NT, 2000 или XP, то есть Вы не можете пользуясь загрузочной дискетой DOS прочитать Ваши данные.

Как всегда есть исключения из правил. В Linux существует драйвер для NTFS начиная с декабря 1997 года. Также есть программа предоставляющая доступ к NTFS в DOS (смотрите Раздел 2.1 для подробного описания).

Вернуться к началу

1.3 Должен ли я пользоваться NTFS? (Или конвертировать в неё?)

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

NB Вы можете установить Windows NT на файловую систему FAT16 а Windows 2000 или XP на систему FAT32. В дальнейшем Вы сможете конвертировать их в NTFS.

Вернуться к началу

1.4 Отличается ли NTFS в различных версиях Windows?

Нет. В разных версиях она будет выглядеть одинаково, разве что в более новых будут дополнительные свойства. Например Windows 2000 имеет квоты.

NTFSВерсия Windows
v1.2NT 3.51, NT 4
v3.02000
v3.1XP, Server 2003

Версия 1.2 иногда упоминается как 4.0.
Версии 3.0 и 3.1 иногда называют как 5.0 и 5.1.

Вернуться к началу

1.5 Каковы пределы NTFS?

Большие. NTFS поддерживает файлы размером до 263 байт. Раздел NTFS может содержать до 263 кластеров, а каждый кластер может быть размером до 64 Кб. Всё это ставит верхний предел для NTFS на отметку примерно 500 триллионов Гигабайт.

Вернуться к началу


2. Разделы NTFS

2.1 Как мне считывать информацию с раздела NTFS находясь в системах 95/98/ME или DOS?

К сожалению это невозможно. Эти версии Windows могут понимать только FAT. NTFS доступна для чтения только системами Windows NT, 2000 и XP.

Не смотря на это, проделав небольшую работу, Вы можете с помощью программ "NTFS for Windows 98" и "NTFSDOS" с сайта SysInternals получить доступ к NTFS для чтения и в системах Windows 95, 98 и DOS. Если Вы готовы заплатить то там же есть версии позволяющие и записывать на раздел NTFS (прим. Это очень дорого).

Вернуться к началу

2.2 Как конвертировать раздел FAT в NTFS?

Откройте командную строку и введите (заменив x: правильным разделом)

    convert x: /fs:ntfs
    

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

NB Результат этой команды обратим с трудом. Смотрите далее.

Вернуться к началу

2.3 Как конвертировать раздел NTFS в FAT ?

Ответ прост - это не возможно. Есть исключение при наличии денег. Partition Magic, доступный с сайта norton.com ,может конвертировать в различные форматы, включая NTFS и FAT.

Вернуться к началу

2.4 Как удалить раздел NTFS ?

Это зависит от того какую операционную систему Вы используете.

В DOS, Windows 95/98/ME: fdisk. Используйте загрузочный диск или укажите Windows перейти в режим DOS. Затем введите команду fdisk. Если Вы имеете более одного диска сначала укажите это. Далее Вам надо удалить non-DOS раздел . Будьте очень осторожны, указанные изменения будут произведены немедленно.

В Windows NT: Computer management.

В Windows 2000, XP и Server 2003: Logical Disk Manager. Выберите Control Panel, далее Administrative Tools, далее Computer Management.

Вернуться к началу

2.5 Как дефрагментировать раздел NTFS ?

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

Windows 2000, XP и Server 2003 имеют встроенную программу дефрагментирования. Пользователи Windows NT могут воспользоваться бесплатной программой. Diskeeper Lite можно скачать с сайта : http://diskeeper.com

Вернуться к началу

2.6 Как изменить размер раздела NTFS ?

Воспользуйтесь нашей стабильной и широко используемой ntfsresize. Или, еще лучше, одной из легких в использовании программ редактирования разделов (DiskDrake, QTParted, YAST, EVMS, Partman, GParted, и т.д.) которые включают её. Более подробно пожалуйста прочтите в ntfsresize FAQ.

Вернуться к началу


3. Linux и NTFS

3.1 Какие версии NTFS может читать Linux ?

Драйвер Linux может читать все версии NTFS . Каждая версия немного отличается но драйверу необходимо работать с файлами и каталогами. А все индексы которые NTFS имеет могут быть легко проигнорированы.

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

Вернуться к началу

3.2 Может ли драйвер записывать на NTFS раздел?

В принципе нет, но если всё что Вам нужно это скопировать файлы из Linux в Windows находящихся на одной машине, то смотрите "ниже" про возможный способ обойти отсутствие поддержки записи. О поддержке записи в Linux читайте далее.

Существует 2 драйвера на данный момент. Исходный драйвер версии 2.4 имеет некоторые возможности записи, но использовать его очень опасно Вероятность уничтожить Вашу систему файлов очень велика.

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

Добавление поддержки записи займет еще много времени. . NTFS построена как база данных. Каждое изменение влечёт за собой необходимость изменений во многих местах для сохранения работоспособности. Сделайте ошибку и файловая система будет повреждена, сделайте слишком много ошибок и файловая система будет уничтожена. Кроме того, разработчики работают над NTFS в своё свободное время. Если Вы хотели бы помочь, пожалуйста свяжитесь со мной по адресу: linux-ntfs-dev@sourceforge.net

Как записывать на NTFS. Если на Вашей машине установлены и Linux и Windows и всё что необходимо это перенести файлы из Linux в Windows, то есть возможность использовать драйвер для Windows обеспечивающий доступ к разделам ext2/ext3, и, таким образом, работая в Windows Вы можете читать файлы с раздела Linux. Так, используя два только считывающих драйвера, Вы сможете переносить файлы из одной файловой системы в другую.

Нам известно о следующих драйверах с открытым исходным кодом работающих в Windows для доступа к разделам ext2/ext3, на июнь 2003 года: :

Вернуться к началу

3.3 Какие свойства NTFS поддерживает Linux ?

NTFS поддерживает большой набор свойств, но лишь несколько из них воплощены в Linux NTFS драйвере.

Linux NTFS драйвер поддерживает: имена файлов в кодировке Unicode (переведённые в локальную кодовую страницу или utf8); сжатые файлы; файлы с выставленным аттрибутом sparse.

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

Вернуться к началу

3.4 Что делать если возникают проблемы?

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

Пожалуйста пошлите сообщение команде разработчиков по адресу linux-ntfs-dev@lists.sourceforge.net с указанием используемой версии драйвера версией Linux (uname -a) и версии NTFS (Win NT, 2K или XP).

И если имеются какие либо записи событий (/var/log/messages) которые Вы думаете могут быть полезны, то пожалуйста прикрепите и их.

Спасибо.

Вернуться к началу

3.5 Как добавить в Linux поддержку NTFS ?

Большинство пользователей не должны будут компилировать что-либо чтобы стала возможна поддержка NTFS. Почти каждый дистрибутив Linux (за исключением RedHat) уже имеет встроенную поддержку NTFS.

Если Вы используете RedHat 9 (Shrike), 8.0 (Psyche) или 7.3 (Valhalla), то Вам надо всего лишь установить пакет rpm для поддержки NTFS.

Если Вы имеете более старую версию RedHat, или другой дистрибутив который не включает поддержку NTFS, тогда Вам придется компилировать ядро самостоятельно. Это не так сложно как может показаться на первый взгляд. Более подробно Вы можете прочитать об этом здесь Compile Page .

Вернуться к началу

3.6 Какая версия лучше?

Новая версия драйвера лучше. Он лучше написан, значительно быстрее, имеет меньше ошибок и безопасен с точки зрения SMP. Новый драйвер доступен начиная с версии ядра 2.5.11 и выше и имеется заплатка чтобы добавить новый драйвер в ядре версии 2.4.

Вернуться к началу

3.7 Какие другие утилиты имеются в наличии?

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

Очевидно что приоритет отдан достижению возможности записи на раздел NTFS.

Вернуться к началу

3.8 Как был написан драйвер Linux NTFS ?

Microsoft не публикует какой-либо документации о внутреннем утройстве NTFS, поэтому мы вынуждены были провести полный инженерный анализ файловой системы. Поэтому метод был приблизительно такой:

  1. Рассмотреть раздел с помощью редактора бинарных файлов
  2. Произвести какое либо действие, например создать файл
  3. Используя редактор бинарных файлов найти происшедшие изменения
  4. Классифицировать и документировать изменения
  5. Повторить шаги 1-4 до бесконечности

Если это звучит как огромная работа значит Вы понимаете насколько тяжела была такая задача. Теперь мы понимаем практически всё о NTFS и задокументировали свои находки для всеобщей пользы:
../ntfs/index.html

На самом деле написать драйвер было много проще чем собрать информацию.

Вернуться к началу

3.9 Кого мы благодарим ?

Во-первых мы должны поблагодарить Martin von Löwis. Он создал исходный драйвер в 1995 году. Драйвер был добавлен в ядро Linux в декабре 1997 (2.1.74). Ему в свою очередь оказали помощь следующие люди:

Albert Cahalan, Anton Altaparmakov, Damon Casale, David Dillard, Domagoj Pensa, Joseph Malicki, Matthew Fanto, Olof Wolgast, Rani Assaf, Régis Duchesne, Richard Russon, Steve Dodd, Werner Seiler.

Далее мы должны поблагодарить Anton Altaparmakov, его энтузиазм поддерживал развитие проекта. В период когда проект практически никем не поддерживался ,он взял инициативу на себя и стабилизировал код драйвера. Далее он переписал драйвер с нуля чтобы иметь чёткую базу которая позволит поддерживать и запись. Ему помогали:

Pawel Kot, Richard Russon.

Вернуться к началу


4. Монтирование разделов NTFS

4.1 Могу ли я монтировать раздел NTFS ?

Конечно. Драйвер может читать все версии NTFS, но только читать.

Вернуться к началу

4.2 Насколько безопасен драйвер NTFS ?

Когда используется только для чтения то оба, Исходный и Новый, драйвера безопасны для общепринятых задач. Они не произведут никаких изменений в Вашей системе и значит не могут нанести ей ущерб.

Кроме того Новый драйвер безопасен в контексте SMP.

Вернуться к началу

4.3 Какой раздел следует использовать?

В Linux первые два диска на первом контроллере IDE имеют обозначения hda и hdb, а третий и четвертый диски hdc и hdd соответственно. Диски SCSI обозначаются как sda, sdb и так далее соответственно порядку в котором они обнаруживаются.

Простой способ найти разделы NTFS это ввести команду:

    fdisk -l
    

Результат может быть примерно таким:

    Disk /dev/hda: 64 heads, 63 sectors, 4465 cylinders
    Units = cylinders of 4032 * 512 bytes

       Device Boot    Start       End    Blocks   Id  System
       /dev/hda1             1      2125   4283968+  07  NTFS/HPFS
       /dev/hda2          2126     19851  35735616   0f  Win95 Ext'd (LBA)
       /dev/hda5   *      2126      4209   4201312+  83  Linux
       /dev/hda6          4210      4465    516064+  82  Linux swap
    

Вернуться к началу

4.4 Какая у меня установлена версия драйвера NTFS?

Если версия Вашего ядра 2.4.* или 2.5.0-2.5.10 то скорее всего у Вас Исходный драйвер NTFS. Если же версия 2.5.11 или выше то у Вас Новый драйвер NTFS.

Другой,более лучший, способ это поискать в записях сообщений ядра. Попробуйте одну из двух команд ниже (возможно Вам понадобятся права суперпользователя root для чтения этих записей) .

    dmesg | grep -i ntfs
    grep -i ntfs /var/log/messages
    

Исходный драйвер имеет обозначение как версия 1.1.*, в то время как Новый драйвер 2.*.

Вернуться к началу

4.5 Как монтировать раздел ?

Прежде всего полезно будет проверить понимает ли ядро NTFS. Команда ниже даст список всех файловых систем которые Linux понимает. Если в нем есть ntfs значит всё в порядке. Также советуем прочесть руководство по команде mount , man 8 mount.

    cat /proc/filesystems
    

Теперь надо создать каталог для монтирования раздела NTFS. Следующим шагом Вы уже можете монтировать NTFS

    mkdir /mnt/windows
    mount /dev/hda1 /mnt/windows -t ntfs -r
    

NB NB Для изменения прав доступа к смонтированному разделу прочитайте о параметре umask в разделе 4.6. . Если Вы предпочитаете чтобы раздел монтировался автоматически при загрузке системы , смотрите раздел 4.10.

Когда окончите, Вы можете демонтировать раздел одной из двух команд ниже:

    umount /mnt/windows
    umount /dev/hda1
    

NB Имя команды umount (только одно 'n').

Вернуться к началу

4.6 Общие параметры при монтировании.

Эти параметры общие для обоих драйверов. Также рекомендуем прочитать страницу man команды mount. Обычная форма команды mount такова:

    mount device directory [options]
    

Дополнительные параметры при использовании параметра -o могут быть введены по отдельности или как один резделенный запятыми. Следующие две команды равносильны:

    mount /dev/hda1 /mnt/windows -o X -o Y -o Z
    mount /dev/hda1 /mnt/windows -o X,Y,Z
    
-t ntfs
Указывает тип файловой системы которая монтируется. Этот параметр не обязателен так как mount знает как распознать большинство файловых систем.
-r
Монтировать раздел в режиме только для чтения. По умолчанию mount попытается монтировать раздел в режиме чтения и записи. Если специально не указывать обратное ,драйвер смонтирует автоматически файловую систему только для чтения.
-o ro
Это то же что и -r.
-o umask={VALUE}
По умолчанию смонтированному разделу NTFS присваиваются права доступа rwx------ (из-за соображений безопасности). Параметр umask контролирует права доступа файлов и каталогов. Более детально об этом и примеры написано в разделе 4.9..
    mount /dev/hda1 /mnt/windows -t ntfs -r -o umask=0222
    
-o uid={USERID}
По умолчанию все файлы на смонтированном разделе NTFS принадлежат суперпользователю. Если введете uid параметр то сможете установить принадлежность файла. userid пользователя может быть любым пользователем из файла /etc/passwd , или Вы можете воспользоваться цифровым представлением user id.
    mount /dev/hda1 /mnt/windows -t ntfs -r -o uid=flatcap
    mount /dev/hda1 /mnt/windows -t ntfs -r -o uid=500
    
-o gid={GROUPID}
По умолчанию все файлы на смонтированном разделе NTFS принадлежат группе пользователей root. Если Вы введёте параметр gid то сможете установить групповую принадлежность файлов.
    mount /dev/hda1 /mnt/windows -t ntfs -r -o gid=winusers
    mount /dev/hda1 /mnt/windows -t ntfs -r -o gid=520
    

Вернуться к началу

4.7 Параметры монтирования для Исходного Драйвера.

Чтобы выяснить каким драйвером Вы пользуетесь прочтите раздел 4.4. . Данный раздел посвящен только Исходному Драйверу. Общие для обоих параметры обсуждаются в разделе 4.6..

Некоторые параметры имеют формат true \ false (истина/ложь) .
Параметр true вы можете заменить на "yes" или 1
Параметр false вы можете заменить на "no" или 0.

-o iocharset={NAME}

NTFS хранит имена файлов и каталогов в кодировке Unicode , которая может воспроизвести любую букву любого языка. По умолчанию драйвер Linux NTFS переводит все имена в кодировку ASCII что вполне удобно некоторым но не подходит тем чьи языки имеют буквы такие как å или é.

NLS (Native Language Support) контролирует как знаки воспроизводятся. Вы можете выбрать или utf8 которая как и Unicode , может воспроизвести все знаки, или кодировку на Ваш выбор, например iso8859-1 (Западная Европа), iso8859-2 (Центральная Европа), gb2312 (Упрощенный Китайский), iso8859-8 (Иврит). Ниже приведены несколько примеров команды mount :

    mount /dev/hda1 /mnt/windows -t ntfs -r -o iocharset=utf8
    mount /dev/hda1 /mnt/windows -t ntfs -r -o iocharset=iso8859-2
    mount /dev/hda1 /mnt/windows -t ntfs -r -o iocharset=gb2312
    
utf8=true

Если Ваше ядро не поддерживает utf8, тогда Вы можете воспользоваться этим параметром чтобы работать с поддержкой utf8 от драйвера NTFS . Следует использовать всегда когда возможно -o iocharset=utf8

    mount /dev/hda1 /mnt/windows -t ntfs -r -o utf8=true
    
-o posix={BOOL}

Windows не делает различия между заглавными и прописными буквами в именах файлов при чтении, хотя и сохраняет их таковыми. Поэтому Вы можете например создать файл с именем MyFileName а затем открыть его введя имя mYfILEname.

По умолчанию Linux различает между заглавными и прописными буквами в именах , то есть имена MyFile и myfile относятся к разным файлам. Если же Вы хотите чтобы Linux вела себя так же как Windows при работе с разделом NTFS , установите параметр posix равным true . Установка этого параметра равным false укажет Linux вести себя как обычно (это установлено по умолчанию).

    mount /dev/hda1 /mnt/windows -t ntfs -r -o posix=true
    
-o show_sys_files={BOOL}

Если этот параметр установлен равным true то метаданные файловой системы будут показаны. Если они не видны то всё же можно увидить их пользуясь их именем, например ls -l \$MFT.

NB Из-за ограничений glibc $MFT может не появлятся в листингах так как его номер inode равен нулю.

    mount /dev/hda1 /mnt/windows -t ntfs -r -o show_sys_files=true
    

Вернуться к началу

4.8 Параметры монтирования для Нового Драйвера.

Чтобы узнать какой драйвер Вы используете смотрите раздел 4.4. . Данный раздел обсуждает параметры только для Нового Драйвера . Общие параметры для обоих драйверов смотрите в разделе 4.6. .

Некоторые параметры имеют формат true \ false (истина/ложь) .
Параметр true Вы можете заменить на "yes" или 1
Параметр false Вы можете заменить на "no" или 0.

-o nls={NAME}

NTFS хранит имена файлов и каталогов в кодировке Unicode , которая может воспроизвести любую букву любого языка. По умолчанию драйвер Linux NTFS переводит все имена в кодировку ASCII что вполне удобно некоторым но не подходит тем чьи языки имеют буквы такие как å или é.

NLS (Native Language Support) контролирует как знаки воспроизводятся. Вы можете выбрать или utf8 которая как и Unicode , может воспроизвести все знаки, или кодировку на Ваш выбор, например iso8859-1 (Западная Европа), iso8859-2 (Центральная Европа), gb2312 (Упрощенный Китайский), iso8859-8 (Иврит). Ниже приведены несколько примеров команды mount :

    mount /dev/hda1 /mnt/windows -t ntfs -r -o nls=utf8
    mount /dev/hda1 /mnt/windows -t ntfs -r -o nls=iso8859-2
    mount /dev/hda1 /mnt/windows -t ntfs -r -o nls=gb2312
    
-o fmask={VALUE}
-o dmask={VALUE}

Параметр "umask" меняет права доступа к файлам и каталогам (в разделе 4.6 об этом уже говорилось). Параметр "fmask" работает с файлами и параметр "dmask" работает с каталогами таким же образом. Параметры также могут быть использованы в совокупности. Несколько примеров:

    mount /dev/hda1 /mnt/windows -t ntfs -r -o fmask=0222
    mount /dev/hda1 /mnt/windows -t ntfs -r -o dmask=0222
    mount /dev/hda1 /mnt/windows -t ntfs -r -o fmask=0077,dmask=0222
    
-o case_sensitive={BOOL}

Windows сохраняет и заглавные и прописные буквы в именах файлов при их создании, но не различает между ними при чтении. Поэтому Вы можете создать файл с именем MyFileName и потом открыть его введя имя mYfILEname.

По умолчанию Linux различает между заглавными и прописными буквами в именах , то есть имена MyFile и myfile относятся к разным файлам. Если же Вы хотите чтобы Linux вела себя так же как Windows при работе с разделом NTFS , установите параметр case_sensitive равным false . Установка этого параметра равным true укажет драйверу Linux вести себя как обычно (это установлено по умолчанию).

    mount /dev/hda1 /mnt/windows -t ntfs -r -o case_sensitive=true
    mount /dev/hda1 /mnt/windows -t ntfs -r -o case_sensitive=false
    
-o sloppy={BOOL}

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

    mount /dev/hda1 /mnt/windows -t ntfs -r -o sloppy=true
    mount /dev/hda1 /mnt/windows -t ntfs -r -o sloppy=false
    
-o errors={VALUE}

Этот параметр указывет драйверу что делать при возникновении проблем. По умолчанию он попытается продолжать исполнение. Любое искажение данных будет отмечено и обработано. Как альтернатива драйвер может попытаться восстановить. На настоящее время единственное восстановление которое драйвер может сделать это заменить загрузочный сектор на резервную копию .

    mount /dev/hda1 /mnt/windows -t ntfs -r -o errors=continue
    mount /dev/hda1 /mnt/windows -t ntfs -r -o errors=recover
    

Вернуться к началу

4.9 Как мне изменить полномочия доступа смонтированного раздела ?

Существует три параметра контроля полномочий доступа к файлам и их принадлежности . А именно: umask, uid и gid . Они упоминаются в разделе Общие параметры монтирования..

Ниже приведены несколько примеров для каждого параметра и пояснено как это влияет на файлы.
Мы воспользуемся одной и той же командой mount чтобы показать параметры.

    mount /dev/hda1 /mnt/windows -t ntfs -r
    

umask это фильтр прав доступа, то есть он работает противоположным от chmod способом. Например полные права доступа эквивалентны 777 (rwxrwxrwx). umask со значением равным 0222 (-w--w--w-) в итоге оставляет 555 (r-xr-xr-x).

По умолчанию значение umask равно 0077 по соображениям безопасности.

    mount ... -o umask=0277

    -r-x------ 1 root    root    28096 Aug 24 1996 chkdsk.exe
    
    mount ... -o umask=0222

    -r-xr-xr-x 1 root    root    28096 Aug 24 1996 chkdsk.exe
    

До сих пор файлы принадлежат суперпользователю и группе суперпользователей root. Теперь мы попробуем параметры uid и gid.

    mount ... -o uid=flatcap

    -r-x------ 1 flatcap root    28096 Aug 24 1996 chkdsk.exe
    
    mount ... -o gid=winuser

    -r-x------ 1 root    winuser 28096 Aug 24 1996 chkdsk.exe
    
    mount ... -o uid=flatcap,gid=winuser

    -r-x------ 1 flatcap winuser 28096 Aug 24 1996 chkdsk.exe
    

Ну и на конец мы объеденим несколько параметров для тонкой настройки контроля Ниже мы наделяем пользователя flatcap полными правами, группу пользователей winuser правами чтения и всех остальных мы лишаем прав доступа вообще.

    mount ... -o umask=0027,uid=flatcap,gid=winuser

    -rwxr-x--- 1 flatcap winuser 28096 Aug 24 1996 chkdsk.exe
    

Вернуться к началу

4.10 Как сделать чтобы разделы NTFS монтировались автоматически?

После того как Вы довольны своей командой mount, Вы можете научить Linux монтировать разделы NTFS автоматически добавив следующую строку в файл /etc/fstab (filesystem table).

Ниже приведены несколько разных примеров команды mount с соответсвующими записями в файле fstab.
NB Пусть Вас не беспокоят цифры 0 0 в конце.

    mount /dev/hda1 /mnt/windows -t ntfs -r

    /dev/hda1 /mnt/windows ntfs ro                                    0 0
    

Тут мы превратили -r в эквивалентное -o ro.

    mount /dev/hda1 /mnt/windows -t ntfs -r -o umask=0222

    /dev/hda1 /mnt/windows ntfs ro,umask=0222                         0 0
    
    mount /dev/hda1 /mnt/windows -t ntfs -r -o umask=0222,uid=flatcap,gid=winuser

    /dev/hda1 /mnt/windows ntfs ro,umask=0222,uid=flatcap,gid=winuser 0 0
    

Вернуться к началу


5. Загрузка операционных систем на NTFS

5.1 Могу ли я загрузить Windows на разделе NTFS ?

Да, и grub и lilo могут загрузить Windows на разделе NTFS . В действительности происходит следующее - загрузчик Linux находит загрузчик NTFS и передаёт контроль ему.

Вернуться к началу

5.2 Как пользовать lilo?

Добавьте следующее в файл /etc/lilo.conf и перезапустите lilo.

    other = /dev/hda1
        table = /dev/hda
        label = Windows
    

"other" указывает на раздел содержащий Windows а "table" указывает на таблицу разделов диска.

Вернуться к началу

5.3 Как пользовать grub?

Добавьте следующее в файл /boot/grub/grub.conf

    title Windows
        root (hd0,0)
        makeactive
        chainloader +1
    

Согласно нумерации дисков используемой в grub /dev/hda это hd0, hdb это hd1, и так далее.Разделы нумеруются начиная с нуля. То есть, hda1 это hd0,0, hdc4 это hd2,3.

Вернуться к началу


6. Дистрибутивы Linux

6.1 Какие дистрибутивы поддерживают NTFS сразу после их установки?

Известны следующие дистрибутивы Linux поддерживающие NTFS: Mandrake, Debian, SuSE, Gentoo, и Caldera

Вообще закономерность такова - если это не дистрибутив RedHat, то он поддерживает NTFS.

Вернуться к началу

6.2 Почему RedHat не поддерживает NTFS?

Мне самому очень интересно было бы знать. Слухи говорят о том что это по юридическим соображениям.

Вернуться к началу

6.3 Почему RedHat прекращает реагировать когда пытается получить доступ к разделу NTFS ?

Проверьте какая у Вас версия ядра командой uname -a. Если версия 2.4.9 то важно обновить ядро. Подробнее читайте на RedHat Website .

Если желаете, Вы можете компилировать собственное ядро. Подробнее здесь Как добавить в Linux поддержку NTFS ?

Вернуться к началу

6.4 Существуют ли дистрибутивы для установки на NTFS?

Не совсем. Phat Linux может быть установлен на раздел FAT в Windows и далее загружаться с помощью файлов расположенных в Windows. Новый драйвер имеет почти достаточную поддержку их чтобы добиться этого используя NTFS.

Вернуться к началу


7. Новый драйвер Linux NTFS

7.1 Что такое Новый драйвер Linux NTFS ?

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

Мы создали новый драйвер опираясь на наши новые знания , который намного проще, быстрее и легче поддерживается.

Вернуться к началу

7.2 Обязательно ли его использовать?

Нет. Уже существует драйвер NTFS в текущей версии ядра Linux, так что Вам не обязательно пользоваться новым драйвером. Исходный драйвер не смотря на свою давность вполне надежен для каждодневных задач.

Вернуться к началу

7.3 Как пользоваться новым драйвером?

Мы публикуем новый драйвер как заплатку к официальному коду ядра Linux.

../downloads.html
http://www.kernel.org/pub/linux/kernel/v2.4/

Вернуться к началу

7.4 Что такое заплатка?

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

После извлечения из архива исходного кода заплатки в каталог сделайте этот каталог текущими, введите команду (заменив имя файла path и путь к нему patchname по необходимости):

    patch -p1 < path/to/patchname
    

Это внесет изменения в исходный код. Не должно быть каких либо отказов и сбоев. Далее соберите ядро как обычно. Инструкции по сборке смотрите в этом документе.

Вернуться к началу

7.5 Что делать если что-то всё же не понятно?

Извините. Хотя мы и пытаемся помочь всем но наше время ограничено. Ниже приведены несколько сайтов которые помогут Вам получить начальные сведения по Linux. В качестве альтернативы выясните нет ли поблизости Клуба Пользователей Linux .

Вернуться к началу

7.6 Когда новый код будет в ядре Linux ?

Тут мы должны рассматривать два ядра. Новый драйвер уже находится в нестабильной версии ядра Linux . Он был включен в версию 2.5.11.

Стабильное же ядро Linux, 2.4.20 на текущий момент, все еще имеет старый исходный драйвер. И хотя мы удовлетворены состоянием кода но пока не удается убедить Повелителей Ядра в том что он хорош.

Так что пока код не включен в ядро мы будем часто публиковать свои разработки в форме заплаток.

Вернуться к началу

7.7 Не можем ли мы написать оболочку драйверу Windows?

Это кажется стоящей идеей, но тут есть множество проблем.

Самой большой технической проблемой является задача соединить системные DLL файлы Windows и файлы VFS Linux. Это возможно, но нет хорошего способа. Такой код должен бы был быть частью ядра что привело бы к сбою системы будь в этом коде ошибки. И не имея исходного кода вряд ли нам удастся решить эту проблему.

Следующая большая проблема это совместимость. Какую версию системных файлов Windows нам использовать? Любой выбор ограничит применение, а сделать оболочку универсальной стало бы кошмаром программиста.

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

Как бы там ни было ,нашелся смелый человек который сделал это. Jan Kratochvil написал такую оболочку для драйвера Windows - Captive. Captive может писать файлы NTFS, но известно что в коде есть ошибки и он значительно медленнее чем драйвер Linux NTFS. Captive основан на ReactOS и использует драйвер LUFS . Возможно если бы объем работы вложенный в разработку Captive был бы вложен в драйвер Linux NTFS , то мы бы уже имели надежный и открытый драйвер с поддержкой записи.

Вернуться к началу