Одна из особенностей Windows — видимая простота организации файловой системы. Во время установки пользователь выбирает только тип раздела (FAT или NTFS) и указывает логический том, куда будет записана вся система вместе с базовым набором ПО. Конечно, после инсталляции допускается оптимизация размещения файлов. Например, папку “Мои документы” можно перенести на другой логический том буквально двумя щелчками мыши. А если внести изменения в реестр, то можно хранить в отдельном разделе все служебные объекты, отвечающие за персональные настройки.
Концепция большинства дистрибутивов свободной ОС предполагает, что все эти операции будут проводиться во время установки. Да и поддерживаемых типов файловых систем у Linux побольше будет. Поэтому пользователю следует понимать, чего именно от него требует программа инсталляции, и постараться максимально учесть собственные потребности. А для этого, в свою очередь, необходимы определенные знания.
Типы файловых систем
Система Linux может быть установлена на следующие файловые системы: Ext2, Ext3, ReiserFS, XFS и JFS. Список, разумеется, не полный, но с чем-то другим обычному пользователю вряд ли придется столкнуться.
Ext2 — самая старая файловая система, созданная еще в 1993 г. Благодаря механизму кэширования всех дисковых операций ее быстродействие очень велико. Оборотная сторона этой медали такова: при аварийном завершении работы данные практически заведомо будут утрачены. Это происходит из-за отложенной записи: если питание неожиданно пропадет, то вся информация из кэша потеряется, поскольку на диск она еще не перенесена. Решается проблема просто — установкой блока бесперебойного питания.
Впрочем, сегодня это уже неактуально, поскольку выбор у потребителя есть, а аргументы в пользу Ext2 найти всё сложнее. Например, можно использовать Ext3, журналируемую надстройку над Ext2. Ее главное достоинство — устойчивость к аварийным отключениям. Эта файловая система поддерживает три режима: последовательный, полного журналирования и обратной записи.
Последовательный режим предполагает запись только метаданных файлов. Однако все связанные с ними блоки создают единую структуру, что позволяет достичь определенного компромисса между устойчивостью и быстродействием.
Режим полного журналирования подразумевает запись всех изменений файловой системы. Очевидно, что сохранность данных в этом случае почти гарантирована. Но чудес не бывает — платить за это придется снижением производительности.
В противоположность полному журналированию при обратной записи сохраняются только изменения метаданных. Большого времени это не требует, поэтому скорость такой системы весьма высока. Как, впрочем, и вероятность потери информации.
Ext3 совместима с Ext2. Переформатирование без потери информации можно произвести командой /sbin/tune2fs -j <имя раздела >, запущенной от имени администратора системы (пользователь root).
Несмотря на устойчивость к сбоям, назвать Ext3 совершенной системой нельзя. От своего прародителя она унаследовала одну неприятную особенность — нерациональное использование дискового пространства. Всё дело в блоках, которые являются основой этих файловых систем. Если они большие, то при записи маленьких файлов остаются пустые места. Уменьшение размеров блоков приводит к снижению производительности, поскольку при каждом обращении к диску системе приходится просматривать больше блоков.
ReiserFS — файловая система, в которой журналируются только метаданные. Поэтому ее надежность сопоставима с Ext3, работающей в последовательном режиме. А вот по производительности она приближается к Ext2. Лучше всего ReiserFS справляется с операциями над небольшими файлами. Если размер объекта меньше блока, то он хранится в так называемом информационном узле, а не в области данных. Эффект двойной — и место экономится, и производительность растет.
Файловая система XFS изначально предназначалась для Irix. К Linux она была адаптирована уже в нынешнем веке. Сохраняются в ней только метаданные, но зато очень часто, что сводит потери при сбоях к минимуму. Дисковые операции становятся распределенными, поскольку каждый раздел делится на отдельные автономные области. Предназначена XFS для 64-разрядных систем.
Наконец, JFS — это журналируемая файловая система, разработанная компанией IBM. Быстрая, надежная и относительно молодая.
Особое место занимает файловая система swap (подкачка). Она используется Linux в качестве временного хранилища, если для данных не хватает оперативной памяти. Ее наличие желательно, но не обязательно — все определяется выполняемыми задачами и техническими характеристиками компьютера.
Дерево каталогов Linux
Каталоги файловой системы Linux организованы в виде дерева. Корневая директория обозначается как “/”. Таким образом, полное название любого файла начинается именно с этого символа.
В корневом каталоге, как правило, находятся только вложенные подкаталоги, имена которых одинаковы во всех реализациях системы. Так, в /boot расположены объекты, необходимые для первого этапа загрузки, и непосредственно ядро; /bin предназначен для исполняемых файлов, /sbin — для наиболее важных системных утилит, /etc — для файлов конфигурации и т. д. Для домашних каталогов пользователей существует /home.
В самом простом случае все дерево каталогов может находиться в одном разделе жесткого диска. Но у такого подхода есть ряд существенных недостатков. Например, в случае краха системы будут потеряны все пользовательские данные. Поэтому даже в самом общем случае для Linux рекомендуется создавать как минимум два тома: первый — для корневого каталога, второй — для /home.
Несмотря на то что размещать в разделах FAT/NTFS “рабочие” файлы системы Linux не принято (хотя теоретически это возможно), они могут быть доступны как для чтения, так и для записи. Правда, системе требуется указать каталог, в котором будут располагаться данные.
Практика
Создание разделов и организация файловой системы — задача установочной программы дистрибутива. Естественно, существует много практических реализаций ее решения. Включая, кстати, и полное отсутствие такового (побочный эффект свободы: любой подход кому-то нравится, и он непременно будет воплощен в жизнь). Есть проекты, идеология которых — полное отсутствие какого-либо специального инструментария для этой цели. О них тут речь не пойдет — начинающему пользователю они вряд ли подойдут.
Ближе всего к концепции минимализма стоит проект Slackware и основанные на нем дистрибутивы. В качестве примера рассмотрим, как эта процедура реализована в MOPS.
Для разбиения жесткого диска на разделы в MOPS используется псевдографическая утилита cfdisk. Пользователю нужно выбрать свободное пространство (Free Space) и активировать команду New. Затем программе указывается тип раздела, его размер и конкретизируется расположение на диске.
По умолчанию том должен быть отформатирован. Но решение не является окончательным, поскольку разделы еще потребуется подключить (в UNIX-терминологии — смонтировать). Программа установки сама определит наличие на диске разделов, пригодных для размещения Linux, и предложит выбрать нужный тип файловой системы и связанный с разделом каталог (в UNIX-терминологии — точку монтирования).
Windows-разделы автоматически подключены не будут. Пользователю следует выбрать из списка те, что будут доступны из Linux, и указать для каждого из них точку монтирования.
Преимущество такой ручной работы — максимальная гибкость. Пользователь сможет защитить некоторые Windows-разделы, запретив к ним доступ из Linux.
В дистрибутивах, основанных на Fedora, за создание и монтирование разделов отвечает графический инструмент, интегрированный в программу установки. В качестве примера рассмотрим реализацию этой процедуры в системе ASPLinux.
Для создания раздела следует выделить неразмеченную область и нажать на кнопку “Создать”. Затем при помощи “ползунка” задать размер нового тома, выбрать тип файловой системы из списка и указать точку монтирования.
По умолчанию каждый новый том располагается непосредственно за предыдущим. Однако если у пользователя есть свои соображения на сей счет, то он может точно указать отступы в мегабайтах.
Windows-разделы могут быть смонтированы автоматически. Правда, из общего списка дисков пользователю можно удалить те, информация на которых не должна быть доступна из Linux. К сожалению, такой подход не позволяет ему самостоятельно давать имена каталогам. Поэтому после установки системы придется разобраться, где что находится. Если томов слишком много, то это может стать серьезной проблемой.
Дистрибутив Mandriva предлагает пользователю похожий инструмент. Так же точно надо выделить свободное место на диске и создать в нем разделы, указав их тип, размер и точку монтирования.
Windows-разделы распознаются и подключаются автоматически. Для этого пользователю вообще не надо совершать никаких активных действий. С одной стороны, это удобно, а с другой — несколько ограничивает его свободу. Тем не менее разработчики вполне резонно предположили, что удалить записи о монтировании проще, чем дописывать их. По крайней мере для начинающего пользователя.
Дистрибутив SuSE включает в себя, пожалуй, самую функциональную утилиту для разметки диска. Экспертный режим позволяет не только создавать разделы для Linux (методика тут аналогична описанной выше), но и задавать индивидуальные параметры для подключения уже существующих.
Недостаток такого подхода в том, что при наличии большого числа Windows-разделов процедура может затянуться надолго. Однако это компенсируется тем, что пользователь может максимально адаптировать систему под свои нужды.
Все рассматриваемые нами дистрибутивы, кроме основанных на Slackware, могут осуществлять разметку жесткого диска в автоматическом режиме. Для начинающего пользователя это предпочтительнее, только следует учесть, что такой метод предполагает полную очистку носителя, поэтому со всем, что там было раньше, придется попрощаться. Так что если вопрос о переходе на Linux не решен окончательно и бесповоротно в положительную сторону, лучше временно оставить Windows. Тем более, что эти две ОС вполне уживаются на одной машине.