Разметка диска, вообще говоря, являлась неизбежной стандартной операцией, связанной с приобретением персонального компьютера, по крайней мере, до недавнего времени. Однако поскольку теперь многие приобретают компьютер с уже предустановленной операционной системой, относительно небольшое число людей представляет себе, как работают разделы. В этой главе делается попытка объяснить, зачем и как использовать разметку дисков, чтобы установка НауЛинукс прошла как можно более просто и безболезненно.
Если вы свободно ориентируетесь в вопросе о разметке дисков, можете перейти к Разд. D.1.4, Подготовка места для НауЛинукс, который содержит информацию о том, как освободить место на диске, чтобы установить НауЛинукс. В этом разделе обсуждаются также схема названия разделов, используемая системой Linux, как разделить дисковое пространство с другой операционной системой и прочие темы, связанные с указанными проблемами.
Жесткие диски выполняют очень простую функцию — они хранят информацию, которую должны выдавать по команде-запросу.
При обсуждении такой темы, как разметка диска, важно хоть немного знать об используемом физическом носителе. К сожалению, здесь легко запутаться в деталях, поэтому мы будем использовать упрощенную диаграмму жесткого диска, которая поможет объяснить, что происходит на самом деле при разметке диска. На Рис. D.1 показан абсолютно новый диск, который еще не использовался.
Можно сказать, что не на что посмотреть, не так ли? На самом деле есть на что, поскольку мы говорим об основных вещах, относящихся к жестким дискам. Скажем, мы хотим записать на него какие-нибудь данные. При том, как дела обстоят сейчас, это сделать невозможно, необходимо произвести некоторые подготовительные действия.
Опытные пользователи, возможно, догадаются с первой попытки: мы должны выполнить форматирование диска. Форматирование (также называется «создание файловой системы») пишет информацию на диск, упорядочивая незаполненное пространство неформатированного жесткого диска.
Как показано на Рис. D.2, файловая система включает в себя:
Малый процент доступного дискового пространства, которое занято информацией, относящейся к созданной файловой системе, и может рассматриваться как дополнительные накладные расходы.
Файловая система разделила оставшееся место на диске на маленькие сегменты. Эти сегменты в Linux называются блоками.[3]
Файловые системы делают возможными такие вещи, как файлы и директории, и излишние накладные расходы обычно кажутся малой платой.
Следует также отметить, что не существует единой, универсальной файловой системы. Как показано на Рис. D.3, диск может содержать одну из многих файловых систем, записанную на нем. Как вы можете догадаться, различные файловые системы имеют тенденцию быть несовместимыми; следовательно, операционная система, поддерживающая одну файловую систему (или группу родственных типов файловых систем), может оказаться несовместимой с другой. Однако последнее утверждение — это не раз и навсегда установленное правило. Например, НауЛинукс поддерживает разнообразные файловые системы (включая многие, наиболее часто используемые другими операционными системами), упрощая обмен данными между ними.
Конечно, создание файловой системы на диске — это только начало. Основная цель этого процесса — последующие запись (хранение) и считывание данных. Давайте взглянем на наш диск после того, как на нем были записаны несколько файлов.
Как показано на Рис. D.4, 14 блоков из тех, что были пустыми, теперь содержат данные. Однако, просто глядя на этот рисунок, мы не можем определить точно, сколько файлов теперь на диске. Может быть, это один файл, а может быть и 14, так как каждый файл использует не менее одного блока, а некоторые могут занимать несколько. Другая важная особенность состоит в том, что использованные блоки не составляют непрерывную область; использованные и неиспользованные блоки могут быть разбросаны. Такая ситуация называется фрагментацией. При попытке изменить размер существующего раздела фрагментация может сыграть важную роль.
Как и большинство всего, что связано с компьютерами, жесткие диски изменились со времени своего появления. А именно, они стали больше. Больше не в смысле физического размера, но в смысле емкости, т.е. количества информации, которое можно записать. И вот это-то увеличение емкости и привело к тому, что способ их использования фундаментально изменился.
Как только емкость дисков резко возросла, некоторые люди задумались, а хорошая ли это идея, чтобы все это огромное отформатированное место представляло из себя один большой кусок. Такие мысли были вызваны рядом причин, как философских, так и технических. С философской точки зрения кажется, что добавочное пространство на диске, превышающее некоторое определенное, создает и больше помех. С технической, некоторые файловые системы никогда не были предназначены для того, чтобы поддерживать диски больше определенной емкости. Или же файловые системы могли поддерживать большие диски с большей емкостью, но накладные расходы, требуемые файловой системой для отслеживания файлов, становятся слишком велики.
Решением этой проблемы явилось деление дисков на разделы. При этом к каждому разделу можно обратиться как к отдельному диску, что достигается использованием таблицы разбиения жесткого диска (partition table).
![]() | Замечание |
|---|---|
Несмотря на то, что на диаграмме, представленной в этой главе, таблица разбиения жесткого диска вынесена за пределы диска, это не совсем точно. На самом деле указанная таблица записана в самом-самом начале диска, до какой-либо файловой системы или данных пользователя. Но для ясности мы будем рисовать ее отдельно. |
Как показано на Рис. D.5, таблица разбиения жесткого диска подразделяется на четыре секции (имеет четыре строки). Каждая секция может содержать информацию, необходимую для определения единственного раздела, что означает, что в таблице разбиения жесткого диска не может быть определено больше четырех разделов.
Для каждого раздела в таблице содержится несколько важных характеристик:
Точки на диске, где раздел начинается и где заканчивается.
Отметка, является ли раздел «активным».
Тип раздела.
Давайте рассмотрим поближе каждую из этих характеристик. Точки начала и конца в действительности определяют размер раздела и его местонахождение на диске. Флажок «активности» используется загрузчиками некоторых операционных систем. Другими словами, загружается операционная система из раздела с отметкой «Активный».
А вот типы разделов могут вас слегка запутать. Тип раздела — это номер, который связан с ожидаемым использованием данного раздела. Если это утверждение кажется вам несколько неопределенным, так это потому, что значение типа раздела также несколько неопределенно. Некоторые операционные системы используют тип раздела, чтобы обозначить (определить) специфическую файловую систему, отметить, что раздел связан с особенной операционной системой, указать, что раздел содержит операционную систему, которая может быть загружена или же и то, и другое, и третье.
Табл. D.1, Типы разделов содержит список некоторых популярных (и непопулярных) типов разделов и соответствующие им численные значения.
| Тип раздела | значение | Тип раздела | значение |
|---|---|---|---|
| Empty | 00 | Novell Netware 386 | 65 |
| DOS 12-bit FAT | 01 | PIC/IX | 75 |
| XENIX root | 02 | Old MINIX | 80 |
| XENIX usr | 03 | Linux/MINUX | 81 |
| DOS 16-bit /less =32M | 04 | Linux swap | 82 |
| Extended | 05 | Linux native | 83 |
| DOS 16-bit /greater =32 | 06 | Linux extended | 85 |
| OS/2 HPFS | 07 | Amoeba | 93 |
| AIX | 08 | Amoeba BBT | 94 |
| AIX bootable | 09 | BSD/386 | a5 |
| OS/2 Boot Manager | 0a | OpenBSD | a6 |
| Win95 FAT32 | 0b | NEXTSTEP | a7 |
| Win95 FAT32 (LBA) | 0c | BSDI fs | b7 |
| Win95 FAT16 (LBA) | 0e | BSDI swap | b8 |
| Win95 Extended (LBA) | 0f | Syrinx | c7 |
| Venix 80286 | 40 | CP/M | db |
| Novell | 51 | DOS access | e1 |
| Microport | 52 | DOS R/O | e3 |
| GNU HURD | 63 | DOS secondary | f2 |
| Novell Netware 286 | 64 | BBT | ff |
Таблица D.1. Типы разделов
Глядя на это, вы можете удивиться, как, несмотря на всю сложность и запутанность, это может нормально функционировать. Обратимся к Рис. D.6 для примера.
Во многих случаях на всем жестком диске есть только один раздел, что в точности повторяет манеру использования дисков до появления идеи разделов. В этом случае в таблице разбиения жесткого диска только одна запись, и в ней указано на начало раздела.
Мы решили для определенности, что этот раздел имеет тип «DOS». Хотя это только один из многих возможных типов, указанных в Табл. D.1, Типы разделов, представленная ситуация вполне адекватна реальной. В общем, перед вами «разбиение по разделам», типичная для большинства приобретаемых новых компьютеров с предустановленной системой Microsoft Windows™.
Конечно, со временем стало ясно, что и четырех разделов будет недостаточно. По мере того, как емкость дисков продолжала расти, становилось все очевиднее, что на диске можно сделать четыре раздела разумных размеров, и при этом еще останется много свободного места. Должна была появиться возможность создавать большее количество разделов.
Появление расширенных разделов. Как вы могли заметить, в Табл. D.1, Типы разделов есть раздел, имеющий тип «Расширенный» («Extended»). Это раздел, на базе которого создаются другие разделы.
Когда создается раздел и ему приписывается тип «расширенный», то создается таблица разбиения раздела. В сущности, расширенный раздел аналогичен жесткому диску по праву, так как имеет собственную таблицу разбиения, в которой содержится информация об одном или нескольких разделах (называемых, однако, логическими (logical), в отличие от возможных четырех первичных (primary)), содержащихся внутри расширенного раздела. На Рис. D.7 показан диск, содержащий один первичный раздел и один расширенный, который, в свою очередь, содержит два логических раздела (наряду с некоторым количеством неотформатированного пространства).
Как показано на этом рисунке, между первичными и логическими разделами есть различие — первичных разделов может быть только четыре, а количество расширенных не ограничено. Однако, если учесть способ, которым в Linux'е осуществляется доступ к разделам, лучше избегать создания больше 12 логических разделов на одном жестком диске.
Итак, мы обсудили в общих чертах разделы диска, теперь давайте воспользуемся полученной информацией, чтобы установить НауЛинукс.
Есть три основных ситуации, с которыми вы можете столкнуться при попытке переразметить жесткий диск:
Есть неразмеченное свободное место.
Есть неиспользованный раздел.
Есть свободное место, но оно находится на активно используемом разделе.
Давайте рассмотрим все по порядку.
![]() | Замечание |
|---|---|
Пожалуйста, учтите, что следующие иллюстрации являются упрощенными в целях более ясного изложения, а потому не отражают реального размещения разделов на диске, с которым вы столкнетесь при установке НауЛинукс. |
В такой ситуации уже определенные разделы не заполняют полностью весь жесткий диск, есть некое пространство, которое не принадлежит ни одному из существующих разделов. На Рис. D.8 показано, как это можно себе представить.
Да-да, новый, ни разу не использованный жесткий диск тоже попадает в эту категорию. Единственное отличие от описанной ситуации заключается в том, что на новом диске все дисковое пространство не принадлежит ни одному разделу.
В любом случае, вы просто можете создать необходимые разделы на основе свободного места на диске. К сожалению, такая ситуация наиболее проста и наименее вероятна (если, конечно, вы не приобрели новый диск специально для установки НауЛинукс). В большинстве случаев предустановленные операционные системы сконфигурированы так, что они занимают все доступное дисковое пространство (посмотрите Разд. D.1.4.3, Использование свободного дискового пространства действующего раздела).
Давайте разберем ситуацию, встречающуюся чаще.
Это тот случай, когда на диске есть раздел, который вы уже не будете использовать (или еще не использовали). Возможно, в недалеком прошлом вы пытались освоить какую-то операционную систему, и разделы, которые были отведены под нее, уже можно использовать по-другому. На Рис. D.9 отражена такая ситуация.
Если дело обстоит именно так, то можно использовать пространство,
содержащееся в уже ненужном разделе. Первым делом надо этот раздел
удалить, а затем создать соответствующий Linux-раздел на этом месте.
Вы можете удалить раздел, используя команду parted,
или же в дальнейшем, в процессе установки, при создании разделов
вручную, вам будет предоставлена такая возможность.
Это наиболее часто встречающаяся ситуация, и, к сожалению, наиболее тяжелая. Основная проблема заключается в том, что даже при наличии достаточного свободного места оно находится в разделе, который активно используется. Если вы приобрели компьютер с предустановленной операционной системой, то наиболее вероятно, что на жестком диске только один раздел, содержащий операционную систему и все данные.
Вы можете добавить новый жеский диск, но кроме этого способа есть еще два пути:
Предлагается удалить один большой раздел и создать несколько маленьких. Как можно догадаться, при этом все данные, содержавшиеся в исходном разделе, будут уничтожены. Это означает, что вам необходимо сделать резервную копию всего. А лучше, для безопасности и полной уверенности, сделать две полные резервные копии, использовать возможность проверки (verification), если ваша операционная система это умеет, и попытаться прочитать данные из резервной копии до того, как вы удалите раздел.
![]() | Предостережение |
|---|---|
Если на удаляемом разделе находится операционная система, то ее надо будет переустановить. Учтите, что если компьютер был приобретен с предустановленной операционной системой, то поставка может не включать в себя компакт-диски, с которых можно произвести установку исходной операционной системы. Будет лучше, если вы узнаете, что это относится к вам до того, как удалите раздел с установленной операционной системой. |
После того, как вы создали меньшие разделы, вы можете переинсталлировать любое программное обеспечение, восстановить свои данные и затем вернуться к установке НауЛинукс. В ситуации, показанной на Рис. D.10, предполагается, что вы провели полную переразметку диска.
![]() | Предостережение |
|---|---|
Как показано на Рис. D.10, все данные, находящиеся в исходном разделе, будут утрачены без создания правильной резервной копии! |
В этом случае вы запускаете программу, которая делает то, что на первый взгляд кажется невозможным: она уменьшает большой раздел без каких-либо потерь данных, находящихся в нем. Многие находят такой способ вполне надежным и безошибочным. Какое программное обеспечение надо при этом использовать? На рынке программного обеспечения есть несколько программ, позволяющих осуществлять управление диском. Вам придется провести собственное небольшое исследование, чтобы найти то, которое наиболее подходит для вас.
Несмотря на то, что процесс неразрушающей (неполной) переразметки диска весьма прямолинеен, надо сделать некоторые дополнительные шаги, а именно:
Уплотнить существующие данные.
Изменить размер раздела.
Создать новый(ые) раздел(ы).
Давайте разберем каждое действие более детально.
На Рис. D.11 первым действием является уплотнение данных, расположенных на существующем разделе. Цель этого действия переупорядочить данные таким образом, чтобы свободное место в «конце» раздела увеличилось.
Этот шаг является решающим. Если его не делать, то расположение данных на диске может не позволить уменьшить размер раздела до желаемого. Но обратите внимание на то, что по той или иной причине некоторые данные не могут быть перемещены в другое место. Если так и случилось (и накладывает серьезные ограничения на размер нового раздела/разделов), то вы, возможно, вынуждены будете проводить полную переразметку диска.
На Рис. D.12 показан процесс изменения размера раздела. В то время как результаты указанного действия на самом деле зависят от того программного обеспечения, которое вы для этого используете, в большинстве случаев, свободное место используется для формирования неформатированного раздела того же типа, что и исходный раздел.
Важно понимать, что делает используемая вами программа переразметки диска с освобожденным пространством, чтобы предпринять соответствующие шаги. Для того случая, который проиллюстрирован, лучше всего просто удалить новообразовавшийся DOS-раздел и создать соответствующий Linux-раздел(ы).
Итак, на предыдущем шаге может оказаться или не оказаться необходимым создать новый раздел. Однако, если используемая вами для переразметки диска программа не знает Linux, то, вероятнее всего, вам придется удалить созданный ею раздел. На Рис. D.13 предполагается, что это сделано.
![]() | Замечание |
|---|---|
Следующая информация предназначена для пользователей компьютеров, собранных на базе x86. |
Для изменения размеров разделов диска используйте утилиту
parted.
Прежде чем приступить к использованию parted,
необходимо:
Сделать Backup — создать на внешних носителях (например, CD/DVD) две копии всех важных данных с вашего компьютера и убедиться, что они читаемы.
Ознпкомиться с документацией — прочтите
документацию по parted.
Решив использовать parted, осознайте, что после
ее запуска вы остаетесь с двумя разделами:
тем, размер которого вы изменяете, и тем, который программа
parted создала из освобожденного места.
Если вы собираетесь использовать это пространство для установки
НауЛинукс, удалите вновь созданный раздел либо при помощи
утилиты Windows fdisk в существующей
операционной системе,
либо при работе с разделами во время установки Linux'а.
Linux обращается к разделам диска, используя комбинации букв и цифр, которые могут вас запутать, особенно если вы привыкли обращаться к жесткому диску и его разделам как, например, «диск C». В DOS/Windows системах наименование разделов происходит следующим образом:
Проверяется тип каждого раздела с целью определить, может ли он быть прочитан системой DOS/Windows.
Если тип раздела поддерживается этими системами, ему присваивается «буква, обозначающая диск» («drive letter»), начиная с «C» и далее по порядку.
Буква, обозначающая диск, в дальнейшем может быть использована при обращении как к данному разделу, так и к файловой системе, содержащейся на этом разделе.
Система наименования разделов, принятая в НауЛинукс, более гибкая и содержит больше полезной информации, чем используемые в других операционных системах. Наименования разделов здесь представлены как имена файлов, в виде:
/dev/xxyN
И вот как надо разбираться со схемой наименования разделов:
/dev/
Эта строка является названием каталога, в котором расположены файлы,
связанные с устройствами. Поскольку разделы расположены на жестком
диске, который является устройством, файлы, представляющие из себя
все возможные разделы, расположены в каталоге /dev/.
xx
Первые две буквы названия раздела указывают тип устройства, на
котором размещается раздел. Как правило, вы будете видеть либо
hd (если это IDE-диск), либо
sd (для SCSI-дисков).
y
Эта буква описывает само устройство, на котором находится раздел.
Например, /dev/hda (первый IDE жесткий диск) или
/dev/sdb (второй SCSI-диск).
N
Число, которым завершается наименование, обозначает (непосредственно)
раздел. Первые четыре (первичные или расширенные) раздела нумеруются
с 1 до 4. Нумерация
логических разделов начинается с 5. Итак,
например, /dev/hda3 — третий первичный или
расширенный раздел на первом жестком IDE-диске, и
/dev/sdb6 — это второй логический раздел
на втором жестком SCSI-диске.
![]() | Замечание |
|---|---|
Не существует общепринятых соглашений о названиях разделов согласно их типов; в отличие от DOS/Windows, все разделы могут быть идентифицированы НауЛинукс. Конечно, это не означает, что НауЛинукс доступны данные с разделов любого типа, но в большинстве случаев доступ к данным, расположенным на разделе, относящемся к другой операционной системе, возможен. |
Запомните эту информацию; в дальнейшем она поможет вам понять, что происходит при установке разделов, наличия которых требует НауЛинукс.
Если разделы, принадлежащие НауЛинукс, будут находиться на жестком диске наряду с разделами, используемыми другой операционной системой, вы не будете испытывать никаких неудобств в большинстве случаев. Однако, есть определенные сочетания Linux и других операционных систем, которые являются исключением и требуют особого внимания.
![]() | Замечание |
|---|---|
Если НауЛинукс будет сосуществовать на вашем компьютере с OS/2,
вы должны создавать разделы на диске, используя для этого программы,
созданные под OS/2, в противном случае OS/2 может не распознать
разделы дисков. В процессе установки не создавайте никаких новых
разделов, но укажите правильные типы для Linux-разделов, используя
Linux'овый |
Что может смутить людей, знакомящихся с Linux, так это вопрос, как разделы используются операционной системой Linux, и как к ним осуществляется доступ. В DOS/Windows это относительно просто: каждому разделу присваивается «буква». В дальнейшем при обращении к файлам и каталогам на соответствующем разделе надо просто правильно указывать эту «букву».
Это полностью отличается от того, как Linux работает с разделами и, в этой связи, с диском вообще. Основное отличие в том, что каждый раздел занимает часть диска, необходимую для поддержки одного набора файлов и каталогов. Это сделано ассоциированием раздела с каталогом при помощи процесса, известного под названием монтирование (mounting). Монтирование раздела позволяет получить доступ к нему через указанный каталог, известный как точка монтирования (mount point).
Например, если раздел /dev/hda5 был подмонтирован
как /usr, это означает, что все файлы и каталоги,
находящиеся в /usr, физически будут размещаться
на /dev/hda5. Таким образом, файл
/usr/share/doc/FAQ/txt/Linux-FAQ будет храниться
на /dev/hda5, тогда как файл
/etc/X11/gdm/Sessions/Gnome нет.
Продолжая наш пример, скажем, что также возможно, что одна или несколько
директорий, находящихся в /usr, будут точками
монтирования для других разделов. Например, раздел (скажем,
/dev/hda7) может быть подмонтирован как
/usr/local, и это означает, что
/usr/local/man/whatis будет размещен на
/dev/hda7, а не на /dev/hda5.
Мы дошли до такого места в подготовке к установке НауЛинукс, где следует задуматься о количестве и размере разделов, которые будут использоваться вашей новой операционной системой. Вопрос о том, «сколько необходимо разделов», продолжает вызывать яростные дебаты в сообществе Linux, и, поскольку конца им не видно, мы можем совершенно правдиво сказать, что, видимо, типов разметок диска должно быть ровно столько, сколько людей принимает участие в этих спорах.
Учитывая это, мы рекомендуем вам (если у вас нет причин для того,
чтобы сделать иначе) создать по меньшей мере следующие разделы:
swap и
/ (root).
За подробностями обращайтесь к Разд. 2.15.4, Рекомендуемая схема разбиения.
GRUB является стандартным способом загрузки НауЛинукс. Как и другие загрузчики операционных систем, он работает «вне» любой операционной системы, используя только основную систему ввода-вывода (Basic I/O System или, по-другому, BIOS), встроенную непосредственно в оборудование. Здесь мы опишем взаимодействие GRUB с компьютерными BIOS'ами. Это будет относиться только к системам, совместимым с x86.
Работа GRUB'а зависит от ограничений, накладываемых BIOS для некоторых компьютеров на базе х86. Конкретно, некоторые BIOS не воспринимают больше двух жестких дисков и им не могут быть доступны данные, находящиеся за пределами 1023 цилиндра любого диска. Обратите внимание, что современные BIOS не имеют такого ограничения.
![]() | Подсказка |
|---|---|
Создавая разделы на жестком диске, не забывайте, что BIOS на старых
компьютерах не могут видеть больше 1024 цилиндров. В таком
случае оставьте достаточно места для
В |
Все данные, которые требуются GRUB во время загрузки (включая ядро
Linux), находятся в каталоге /boot. Если вы
следуете рекомендованному выше размещению разделов или проводите
установку типа Рабочая станция или Сервер, каталог
/boot будет размещен в отдельном маленьком
разделе. Или же он может находиться в корневом (/)
разделе. В любом случае, раздел, в котором расположен каталог
/boot, должен соответствовать следующим
рекомендациям, если вы планируете использовать GRUB для загрузки
НауЛинукс:
Если у вас 2 IDE (или EIDE) диска, /boot
должен находиться на одном из них. Обратите внимание, что в число
этих двух дисков входят также любые IDE CD-ROM приводы,
подключенные к первому IDE-контроллеру. Таким образом, если у вас
есть один жесткий диск IDE и один IDE CD-ROM привод на первом
контроллере, /boot должен быть расположен
только на первом жестком диске, даже если
у вас есть еще один жесткий диск, подключенный ко второму
IDE-контроллеру.
Если у вас имеется один IDE (или EIDE) жесткий диск и один или
более SCSI-диск, /boot должен находиться
либо на IDE-диске, либо на SCSI-диске с ID 0. Никакие другие
SCSI ID не будут работать.
Если у вас имеются только SCSI-диски, /boot
должен находиться на диске с ID 0 или ID 1. Никакие другие SCSI ID
не будут работать.
Как упоминалось выше, возможно, что современные BIOS могут позволить сработать GRUB при конфигурациях, не удовлетворяющих описанным условиям. Аналогично, некоторые более скрытые свойства GRUB могут быть использованы для того, чтобы Linux-система запустилась, даже если конфигурация не удовлетворяет указанным нами условиям. Однако, из-за слишком большого количества переменных, вовлеченных в этот процесс, Red Hat не поддерживает такие конфигурации.
[3] Блоки, действительно, одного размера, в отличие от того, как они выглядят на рисунке. Учтите также, что средний жесткий диск содержит тысячи блоков. Но, учитывая цели, преследуемые в этом приложении, не обращайте внимания на эти мелкие несоответствия.