понедельник, 12 февраля 2007 г.

Разбивка hdd.

Достаточно старая статья. Но возможно кому-то будет полезной :)

Один из томов на весь мир известной серии "Для Чайников" посвящен операционной системе Linux. Он так и называется "Linux для чайников". Вполне возможно, что вслед за мобильными телефонами операционные системы действительно будут встраиваться в чайники, утюги и прочую бытовую технику. Мы же будем говорить о более тривиальном варианте установки операционной системы Linux - на раздел жесткого диска.

Если верить умным книгам, то разделы появились вследствие ограничений на "размер диска" у существоваших "на заре времен" файловых систем; например, у файловой системы FAT16, которая испольуется MS-DOS максимально возможный размер раздела составляет около 2Гб. В тоже время объемы самих жестких дисков росли, равно как и появлялась необходимость записывать и хранить все большие и большие объемы данных. Выход появился в создании "отдельных" областей на жестком диске, каждую из которых можно отформатировать в свою файловую систему. Информация обо всех разделах "собирается" и хранится в "нулевом" секторе жесткого диска (первый сектор первого цилиндра жесткого диска).

В "нулевом" секторе жесткого диска, для совместимости и согласованности работы с жестким диском разных операционных систем, предусмотрено всего четыре записи, в которых может храниться информация о разделах. Очень часто четырех разделов оказывается мало, поэтому один из "основных" разделов (primary partition) объявляется расширенным (extended partition). Он не форматируется в какую-либо файловую систему, а в его первый сектор помещается информация о "дополнительных" разделах, которые он содержит. "Дополнительные" разделы принято называть логическими дисками (logical partitions). Количество логических дисков в расширенном разделе не ограничено, хотя существуют ограничения самих операционных систем на максимальное количество логических дисков, которое та или иная операционная система может увидеть.

Мы уже говорили о том, что операционная система, по сути, предоставляет пользователю абстрактную модель реально существующего положения вещей. Например, операционные системы от Microsoft, начиная с MS-DOS, представляют каждый раздел, отформатированный в известную операционной системе файловую систему, в виде отдельного диска, названием которого являются буквы латинского алфавита: диск C:, диск D: и так далее. Также в виде отдельных "дисков" доступны CD-ROM, флоппи-диск, различные флэш-накопители и другие подобные устройства. Если проводить аналогии с живой природой, то можно представить себе сад, и каждая файловая система, которая подключается к операционной системе MS-Windows, будет как бы отдельным деревом в этом саду.

В мире *nix-подобных систем все выглядит несколько по-другому. Есть одно дерево, вернее даже, корень (корневая файловая система - root filesystem), к которому "прививаются" все остальные "ветки". Такое представление, возможно, довольно необычно, но вполне оправдано, если подходить с той точки зрения, что операционная система должна скрывать от пользователя как можно больше "ненужных" подробностей работы с реальным железом. Вот пользователю и предоставляется, по сути, виртуальная файловая система, к которой администратором могут подключаться другие файловые системы. Но для простого пользователя работа с подключаемыми файловыми системами будет просто работой с папками, и, собственно, не принципиально даже, находится та или иная файловая система на локальном компьютере или на удаленном, где-нибудь в сети (не будем забывать, что все *nix-подобные системы ориентированы на работу в сети).
Еще одно замечание общего типа будет касаться файловых систем. С точки зрения пользователя файловая система – это совокупность файлов и каталогов, с которыми и выполняются основные операции при работе с компьютером. С точки зрения операционной системы, файловая система определяет формат представления данных при записи на диск, а также особенности процессов чтения и записи. Современные файловые системы имеют цель не только разместить данные на диске оптимальным образом, но и должны обеспечивать максимальную скорость, а также безопасность при работе с потоками данных.

Переходим к практической стороне вопроса. Итак, для установки linux в самом простом случае понадобится создать два новых раздела. (Почему нельзя "установить Linux на диск С:\", я думаю, должно быть уже понятно. По большому счету можно установить Linux на FAT-раздел, возможно, но не стоит этого делать - хотя бы для того, чтобы избежать лишних проблем с загрузчиком.)

Два раздела это - корневой раздел ("/" - в терминологии *nix-систем), в который и будет устанавливаться система, и раздел подкачки (swap partition). Для современных дистрибутивов Linux минимальный объем корневого раздела составляет около 2 Гб – на этом пространстве фактически будет установлена сама операционная система и достаточное количество программного обеспечения. Места, чтобы "разгуляться", естественно, не останется. Оптимальный объем корневого раздела, если планируется не просто "посмотреть и бросить", составляет примерно 4-5 Гб, дальше – по правилам, характерным для всех хранилищ данных, – чем больше, тем лучше. Позже мы познакомимся со структурой "виртуальной" файловой системы в *nix, и собственно любой каталог в *nix может физически быть представлен своим разделом на жестком диске (дисках). Особой актуальности для домашнего использования этот вопрос не представляет, поэтому для первой установки будет достаточно только корневого раздела, куда будет установлена вся система. В дальнейшем, возможно, будет полезно перенести на отдельный раздел домашние каталоги пользователей.

Размер раздела подкачки (swap partition) можно выбрать, удвоив размер оперативной памяти, которая имеется в компьютере. Этот раздел будет использоваться для хранения кода и данных программ, для которых не осталось места в оперативной памяти. В операционных системах MS-Windows для этих целей используется так называемый "файл подкачки". В отличие от MS-Windows при достаточном объеме оперативной памяти (больше 512 Мб, для современных дистрибутивов), если не планируется профессиональной обработки звука, видео или графики (не стоит льстить себе и считать "профессиональной" работой "редактирование" фотографий в GIMP'е – Linux аналоге Фотошопа), раздела подкачки может вообще не быть. Наличие или отсутствие раздела подкачки при больших объемах имеющейся оперативной памяти, вопреки бытующему мнению, практически никак не отражается на производительности системы. При достаточном количестве свободной оперативной памяти данные из нее не будут скидываться в swap, тем самым затормаживая работу приложений (скорость считывания данных с оперативной памяти больше скорости считывания данных с жесткого диска примерно на два порядка).

Общая рекомендация для расположения корневого раздела и раздела подкачки – располагать их как можно ближе к "началу" жесткого диска, где скорость чтения/записи информации максимальна. Собственно, эта рекомендация относится к любой операционной системе. Желательно (но для современных дистрибутивов linux уже не обязательно), чтобы корневой раздел располагался в основном разделе жесткого диска (primary partition), для раздела подкачки это не принципиально. Если планируется работа с несколькими жесткими дисками, то полезно создать разделы подкачки на обоих.
Возможно, при подготовке свободного места под разделы для Linux вы будете использовать программы типа Power Quest Partition Magic (tm) или Paragon Partition Manager (tm). В обеих программах есть возможность сразу же создать и отформатировать разделы под linux, настоятельно рекомендуется не делать этого. Следует просто "подвинуть", "раздвинуть", удалить существующие разделы, освободив тем самым необходимое для корневого раздела и раздела подкачки дисковое пространство (в этих программах, как правило, оно обозначается как "unused" - неиспользованное). Создание разделов, а особенно форматирование разделов, нужно производить средствами инсталляторов операционной системы. Это же касается, кстати, и линейки операционных систем Windows NT – по непроверенным данным, например, Partition Magic может создавать "нестабильные" разделы в файловой системе ntfs, у которых есть странное свойство "слетать" после некоторого периода работы.

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

Теперь по поводу файловых систем. В отличие от Windows, который поддерживает только файловые системы для жестких дисков, разработанные в самой Microsoft – FAT16, FAT32, NTFS, Linux на уровне ядра поддерживает множество файловых систем. На данный момент (ядра 2.4.хх, 2.6.хх) ядро Linux поддерживает файловые системы FAT16, FAT32 в режиме чтения-записи, файловую системы ntfs в режиме "только чтение". Запись в раздел с ntfs также возможна, но разработчики ядра предупреждают, что включение возможности записи может привести к нестабильности системы, а также к проблемам, связанным с потерей данных на разделах ntfs, на которые производится запись. Во всех известных мне дистрибутивах в ядрах по умолчанию включена только возможность чтения из разделов ntfs. Если ядро операционной системы поддерживает и чтение, и запись с разделов FAT16, FAT32 –это означает, что, по сути, можно установить Linux на Windows-разделы, но делать это не рекомендуется по нескольким причинам:

1. Безопасность – с одной стороны, в файловых системах FAT16, FAT32 не предусмотрена реализация прав доступа, а именно, права доступа к отдельным файлам и являются одной из основ организации безопасности в *nix-системах, с другой стороны – Linux, установленный на FAT-раздел, будет подвержен действию Windows-вирусов, когда вы будете работать в Windows.

2. Производительность. Linux, установленный на FAT-раздел, будет работать значительно медленнее.

Возможно, это звучит жестоко, но забудьте о Linux, если вы не можете выделить для его разделов достаточного места на жестком диске. (Это вам говорит человек, который первый свой linux ставил на FAT-раздел :-) )

Надеюсь, убедил. Теперь о "родных" файловых системах для linux. В большинстве современных дистрибутивов доступны: ext2, ext3, ReiserFS, JFS, XFS.

Первые версии ядра Linux работали на файловой системе minix. Эта файловая система до сих пор поддерживается ядром Linux. Она имеет существенные ограничения по максимальному размеру файлов – 64Мб, и ограничивает длину имени файла четырнадцатью символами. Для того, чтобы исправить эти "недочеты" Линус Торвальдс разработал файловую систему ext, которая, однако, уступала файловой системе операционной системы minix в производительности. В дальнейшем ext была значительно переработана и усовершенствована. Так появилась файловая система ext2, с поддержкой длинных имен файлов и длинных файлов, с высокой производительностью. Однако, при работе с большими дисками производительность системы существенно уменьшается и значительно увеличивается время восстановления файловой системы ext2 после сбоев (некорректного завершения работы).
Для уменьшения времени восстановления файловых систем разработали так называемые "журналируемые файловые системы". Операции с файловой системой требуют, как правило, некоторого времени и выполнения некоторого количества операций – например, грубо: найти файл, открыть файл для записи, записать данные, закрыть файл. Закрытие файла связано с протоколированием нового состояния файла соответствующим образом в файловой системе. Журналируемые файловые системы отличаются тем, что все операции над файловой системой записываются, и если во время работы происходит сбой, то потом можно "откатить" файловую систему в нормальное рабочее состояние. Такой подход требует значительно меньшего времени для восстановления системы. Не нужно просматривать диск с целью восстановления утраченных связей ...
Файловая система ext3 - является журналируемой надстройкой над ext2.
XFS – свободная версия коммерческой файловой системы от Silicon Graphics, Inc., JFS – файловая система от IBM, до сих пор еще находящаяся на стадии тестирования. Для детальной информации по этим файловым системам можно сходить на сайты производителей. Могу сказать лишь, что для использования XFS дома аргументов нет, контраргументом может быть вероятность потерять данные при отключении питания. Аргументом в пользу JFS может быть наличие возможности выбирать кодировку ввода-вывода имен файлов при монтировании (имена файлов хранятся в UTF8, она же является кодировкой ввода-вывода по умолчанию) – иногда, как показывает практика, это свойство может быт полезным. JFS – журналируемая файловая система, выбирайте ее, если вас не пугают бета-версии (меня не пугают, я использую JFS для хранения фильмов, пока не жалуюсь тьфу-тьфу-тьфу). ReiserFS – мне кажется, наиболее оптимальный вариант для дома. Журналируемая файловая система, обеспечивает достаточно высокую производительность и стабильность работы (Для корневого раздела я выбрал именно ReiserFS).

Собственно, для первой установки дома следует выбирать между ext3, JFS и ReiserFS. Яндекс и Google будут щедрыми и дадут вам дополнительную информацию. Для раздела подкачки файловую систему выбирать не надо – она одна для всех Линуксов, просто надо будет указать инсталлятору раздел, который будет использоваться как swap.

Все! подводим итоги.

1. Жесткий диск целесообразно делить на разделы. Есть основные разделы – их может быть всего четыре. Один или несколько основных разделов может быть объявлен расширенным – и в нем можно создавать сколько угодно дополнительных разделов. Сведения об основных разделах хранятся в "нулевом" секторе жесткого диска, о дополнительных – в начале расширенного раздела.

2. Файловая система в *nix представляет собой "дерево", в основе дерева находится корневая файловая система – де-факто раздел, в который установлена операционная система, к которой могут подключаться другие разделы жесткого диска, все подключаемые файловые системы становятся "ветками" корневой, и пользователь работает со всем этим как с единым массивом данных.

3. Для установки операционной системы Linux на жесткий диск необходимо создать как минимум два раздела – корневой (4-5 Гб), раздел подкачки (оптимальный размер 256-512 Мб)

4.Существует множество файловых систем, поддерживаемых ядром Linux. Для корневой файловой системы необходимо выбирать журналируемую файловою систему с большой производительностью, наиболее популярны три: ReiserFS, JFS, ext3. При этом для освобождения достаточного места на диске можно пользоваться такими утилитами как Power Quest Partition Magic, Paragon Paartition Manager, FIPS, в некоторых случаях достаточно fidsk'а. Создание и форматирование разделов для Linux лучше проводить средствами инсталляторов Linux.




Комментариев нет: