12.07.2015 Views

Август - Xakep Online

Август - Xakep Online

Август - Xakep Online

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

unixoidГрафический менеджер драйвера ffsdrvГлавная страница проекта Linux-NTFSС момента появления NTFS прошло более 15 лет, и за это время она былаизучена вдоль и поперек. Свободные драйверы уже давно миновали стадиюбета-версий, освоившись не только с чтением, но и с записью. Рискразрушения тома из‐за ошибки в свободном драйвере является скореепсихологическим, чем техническим фактором. Миллионы пользователейLinux / BSD монтируют NTFS-разделы на запись, доверяя свободнымдрайверам свои данные, и никто не жалуется! Единичные отказы, естественно,случаются, но имеют поправимый характер.Составители *nix-дистрибутивов, проявляя свойственную им осторожность,либо вообще не включают в них свободные NTFS-драйверы, либопо умолчанию монтируют NTFS-разделы только на чтение, вызывая упользователей уверенность, что запись реализована не лучшим образоми от нее следует держаться подальше. Действительно, NTFS-драйверы несвободны от проблем, и неподготовленному пользователю лучше с нимине связываться, однако все проблемы решаемы! Главное — это желание!Ну и документацию тоже невредно почитать.NTFS в LinuxПервые свободные NTFS-драйверы возникли в рамках проекта Linux-NTFS Project. Он был основан хакером по прозвищу Martin von Loewisв далеком 1995 году (напоминаем, что Microsoft выбросила NTFS нарынок в 1993 году) и объединил целую плеяду знаменитых кодокопателей,которым потребовалось 2 года напряженных исследований нарасшифровку базовых структур данных и создание первой стабильнойверсии свободного NTFS-драйвера, включенного в Linux-ядров 1997 году (версия 2.1.74). Группа просуществовала до конца 90‐х, азатем распалась. Причиной тому послужила мелкая ошибка в драйвере,вылившаяся в крупные неприятности. Драйвер не проверялверсию файловой системы, поскольку в тот момент других версий NTFSпопросту не существовало в природе! Но с выходом W2K Microsoftпреподнесла довольно пакостный сюрприз в виде несущественных сточки зрения конечного пользователя, но фатальных с точки зренияпрограммиста изменений файловой системы. В базовые структуры данныхбыла добавлена пара новых полей. Соответственно, смещения всехостальных изменились, а драйвер, ожидающих их по старым адресам,при первой же попытке записи делал из диска кашу. Это не самым лучшимобразом сказалось на его репутации, которую было уже не поднятьи домкратом. Большинство историй о страшных разрушениях типа «дняПомпеи» берет свое начало именно здесь.В 2002 году вышла новая версия NTFS-драйвера, переписанного с нуляуже новым командным составом: Anton Altaparmakov (лидер группы, создательдрайвера и служебных NTFS-утилит), Richard Russon, Jakob Kemi(создатели загружаемого модуля ядра), Pawel Kot (портирование новогодрайвера в ядро) и другие.Готовый к установке драйвер можно бесплатно скачать с сайта www.linuxntfs.org,построенного по технологии wiki, существенно упрощающей процессвнесения изменений и уточнений в спецификацию, полученную, как ужеговорилось, путем обратного проектирования и до сих пор незавершенную.Microsoft не стоит на месте и непрерывно модифицирует свою файловуюсистему, вынуждая хакеров продолжать расшифровку, с чем они справляютсявполне успешно, и текущая версия свободного драйвера поддерживаетNTFS-разделы, созданные следующими операционными системами:NT 4.x, W2K, XP, Server 2003 и Vista (включая 32‐битные и 64‐битныеверсии). Драйвер превосходно справляется с чтением NTFS‐томов,однако до сих пор не поддерживает запись в сжатые, зашифрованные илиразряженные файлы (sparse-files), что, собственно говоря, и неудивительно,поскольку поддержка записи появилась лишь в 2005 году и программистамеще предстоит проделать уйму работы, прежде чем они доведутее до ума. Практически все крупные дистрибутивы (за исключениемRedHat / Fedora) уже поддерживают NTFS, и потому конечным пользователямнет никакой необходимости совершать какие‐либо дополнительныетелодвижения, ну разве что установить более свежую версию драйвера(примечание: RedHat и Fedora включают в себя альтернативный открытыйдрайвер NTFS-3G, о котором мы расскажем чуть ниже).Проверить, поддерживает ли твой дистрибутив NTFS, поможет командаcat / proc / filesystems, и если NTFS действительно поддерживается, томсмонтировать можно так:# mkdir / mnt / windows# mount / dev / hda1 / mnt / windows -t ntfs -r -o nls=utf8Здесь ключ ‘-r’ означает монтирование только на чтение; если его убрать,то раздел будет доступен и на запись.А как быть, если нам очень хочется заполучить полноценную поддержкуNTFS, включающую в себя работу с журналом транзакций, запись всжатые или разряженные файлы? Тогда можно воспользоваться одной измногочисленных оберток штатного драйвера ntfs.sys, которая подгружаетего в виртуальную среду, эмулирующую исполнительную подсистемуntoskrnl.exe и обеспечивающую прозрачный ввод / вывод.Достоинство этого метода в том, что мы получаем стопроцентную совместимостьс NTFS-разделом, и потому риск испортить данные минимален.К тому же родной NTFS-драйвер обеспечивает намного болеевысокое быстродействие. Правда, эмулятор исполнительной системысъедает немалое количество памяти, что есть главный и, пожалуй, единственныйсущественный недостаток. Естественно, помимо обертки, нампотребуется дистрибутив Windows, поскольку лицензионные соглашениязапрещают свободное распространение его компонентов. Но это не проблема!Если у нас есть NTFS-раздел, то логично предположить, что у насимеется по меньшей мере одна копия Windows, так как у тру-юниксоидовпотребности в работе с NTFS просто не возникает.Осталось решить, какую обертку выбрать. Мыщъх долгое время пользуетсяоберткой от Jan’а Kratochvil’а, которую рекомендует и всем остальным.Последнюю версию, выпущенную в начале 2006 года, можнобесплатно скачать с www.jankratochvil.net / project / captive.Архитектурно она состоит из свободной библиотеки FUSE (расшифровывающейсякак Filesystem in Userspace — файловые системы вxàêåð 08 / 104 / 07 103

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!