Контактная информация

По всем интересующим вас вопросам связывайтесь при помощи контактной информации приведенной на этой странице!

skype: metsof
email: accusser@gmail.com

В социальных сетях...

Форма обратной связи

Авторизация

Статьи об операционной системе Linux

Сайдбар

Файловая система. Обзор файловых систем Windows, Linux.

17 февр. 2014

У многих пользователей Linux на компьютере параллельно установлена версия Windows. Внешние носители данных (USB-флешки, карты памяти от цифровых фотоаппаратов) также часто используют файловые системы Windows. Далее будет рассказано, как, работая в Linux, обращаться к данным, сохраненным в файловых системах Windows, — независимо от того, находится эта информация в одном из разделов внутреннего жесткого диска либо на внешнем носителе.

Строго говоря, есть два типа файловых систем Windows. О FAT, VFAT, exFAT — существуют многочисленные варианты FAT. Раньше других появились FAT12 для дискет, FAT16 для файловых систем размером менее 2 Гбайт, а также FAT32 для файловых систем размером до 8 Тбайт и для файлов до 4 Гбайт.

В Windows 95 появилось дополнение VFAT, которое позволило сохранять во всех вариантах FAT названия, превышающие лимит 8 + 3 символов, известный со времен MS DOS. Длинные названия файлов система сохраняет как последовательности символов в Unicode. В более новых версиях Windows все имена файлов (в том числе короткие) сохраняются в таком виде. Подобный метод позволяет гарантировать, что регистр названий файлов сохранится и не возникнет никаких проблем с кодировками из-за применения различных кодовых страниц.

Обычный раздел Windows, располагающийся на жестком диске, обычно содержит комбинацию FAT32 и VFAT (сокращенно — VFAT32). В дальнейшем, говоря о VFAT (или используя запись mount/fstab при обозначении файловой системы), я буду иметь в виду любые комбинации из FAT12/16/32 и VFAT. Существует относительно новый вариант FAT — система exFAT, которая была разработана для масштабных операций с флеш-памятью, но пока еще не стала слишком популярной. В этой системе могут существовать файлы размером до 16 777 216 Тбайт, поддерживаются списки контроля доступа и транзакции.

NTFS (New Technology File System) — появилась в Windows NT и поддерживается во всех современных версиях Windows. По сравнению с FAT, NTFS отличается повышенной надежностью (права доступа, журналирование и т. д.), а также содержит разнообразные дополнительные функции. Размер файловой системы практически не ограничен (16 777 216 Тбайт).

Поддержка в Linux. Linux способна работать с системами (V)FAT и NTFS — считывать из них информацию и вносить изменения. В файловой системе exFAT есть временный драйвер для Linux «только для чтения», пока не входящий в состав ядра.

ВНИМАНИЕ



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

В Linux почти никогда не приходится создавать файловые системы Windows, хотя такое возможно. С помощью команды mkfs.vfat можно отформатировать раздел диска для системы VFAT, с помощью mkfs.ntfs — для NTFS (обычно mkfs.ntfs находится в пакете ntfsprogs, который требуется дополнительно установить).

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

Права доступа. В VFAT вообще не существует концепта прав доступа. В NTFS права доступа хотя и поддерживаются, но иначе, чем в UNIX/Linux. Возникает следующий вопрос: какие пользователи Linux получат определенные права доступа к файлам Windows? Ответ на этот вопрос дают параметры uid, gid и umask/ fmask/dmask. Они определяют владельцев, их групповую отнесенность и биты доступа к файловой системе Windows — права для всех файлов этой системы будут одинаковы, независимо от того, как определены права доступа NTFS.

Файловая система VFAT


Стандартные настройки. Для начала коротко обобщим стандартные настройки драйвера файловой системы VFAT: драйвер самостоятельно распознает тип FAT (FAT12/-16/-32). Имена файлов Windows в Linux отображаются в кодировке ла-тиница-1 (IS08859-1). Пользователь, выполняющий команду mount, имеет право читать все файлы во всех каталогах, а также вносить изменения в эти файлы. Все остальные пользователи имеют право читать файлы, но не могут вносить изменения.

Разумеется, все эти настройки можно изменять с помощью параметров, /etc/fstab. Как правило, запись в /etc/fstab для раздела локального диска с системой VFAT выглядит так:

<code># /etc/fstab

/dev/sdal /media/winl vfat utf8,uid=1000</code>


В результате имеем: пользователь с номером 1000 имеет право изменять все файлы, а специальные символы, содержащиеся в длинных именах файлов Windows (включающие более 8 + 3 символов), отображаются в Linux в кодировке UTF-8.

Следующая строка fstab не подключает раздел с Windows к дереву каталогов автоматически (noauto). Однако благодаря users каждый пользователь может выполнить команду mount. Кроме того, файлы Windows относятся к группе, являющейся стандартной для определенного пользователя, а не к группе, актуальной в настоящий момент.

<code># /etc/fstab

/dev/sdal /media/winl vfat noauto,users,gid=users,utf8</code> 

Файловая система NTFS (ntfs-3g)



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

В отличие от большинства других драйверов файловых систем, ntfs-3g внедряется не как модуль ядра, а как FUSE-драйвер. FUSE означает «файловая система в пользовательском пространстве». Это модуль ядра, обменивающийся информацией с внешними программами. Иными словами, FUSE позволяет установить драйвер файловой системы вне ядра.

Файл /etc/fstab



Как правило, строка fstab, служащая для автоматического интегрирования раздела NTFS в дерево каталогов, выглядит так:

<code># /etc/fstab

/dev/sdal /media/win ntfs-3g uid=1000,gid=1000</code> 

В большинстве дистрибутивов можно обозначить файловую систему просто ntfs (а не ntfs-3d).

Потоки



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

При работе с драйвером ntfs-3g параметр streams_interface управляет доступом к потокам. При стандартных настройках xattr потоки обрабатываются как атрибуты файла. Доступ к потокам обеспечивают команды get или setfattr из пакета attr (см. также раздел 3.8 о списках контроля доступа и расширенных атрибутах (EA/ACL)). Команда getfattr -d -e text возвращает список всех атрибутов, причем их содержимое представляется в виде текста.

<code>root# mount /dev/sda1 /media/win root# cd /media/win root# cat > streamtest abc (Ctrl)+(D)

root# setfattr -n user.stream1 -v "efg" streamtest root# setfattr -n user.stream2 -v "xyz" streamtest root# cat streamtest

abc

root# getfattr -d -e text streamtest

# file: streamtest user.stream1="efg" user.stream2="xyz" root# cd

root# umount /media/win</code>

Кроме того, можно работать с настройкой streams_interface=windows. Она активизирует типичный для Windows метод записи в форме имя_файла: имя_потока.

<code>root# mount -o streams_interface=windows /dev/sda1 /media/win root# cd /media/win root# cat streamtest

abc

root# cat streamtest:stream1

efg
</code>

Администрирование


В пакете ntfsprogs содержатся различные команды, помогающие при администрировании файловых систем NTFS.

Команды из пакета ntfsprogs



mkntfs



Создает файловую систему NTFS

ntfsclone



Копирует файловую систему NTFS

ntfsinfo



Сообщает информацию о файловой системе NTFS

ntfslabel



Дает заголовок разделу с NTFS

ntfsresize



Изменяет размер файловой системы NTFS

ntfsundelete



Пытается восстановить удаленные файлы

Читайте так же:
CD, DVD, дискеты CD и DVD с данными

Подпишитесь на рассылку! Никакого спама, только обновления!!!

Комментарии (0)


    Услуги по MODX Revolution

    Посмотреть все услуги

    Техническая оптимизация сайта

    Подробнее & Заказать

    Создание сайта на MODX Revolution

    Подробнее & Заказать

    Перенос сайта на MODX Revolution

    Подробнее & Заказать

    Продвижение сайта на MODX

    Подробнее & Заказать