|
1.
Общие сведения о блочных устройствах
Блочные устройства
Мы достаточно подробно рассмотрим аспекты работы с дисками в Gentoo Linux
и Linux вообще, включая файловые системы, разделы и блочные устройства.
Позже, когда вы уже разберетесь с вводом-выводом на диск и файловыми системами
мы поможем вам с разметкой диска на разделы и файловые системы для
вашей установки Gentoo Linux.
Для начала давайте познакомимся с блочными устройствами. Наиболее
распространенное блочное устройство — первый IDE-диск в Linux системе,
известный как /dev/hda. Если вы устанавливаете систему на диск
SCSI, FireWire, USB или SATA, тогда ваш первый жесткий диск будет называться
/dev/sda.
Блочные устройства, аналогичные приведенным примерам, представляют собой
абстрактный интерфейс к диску. Это позволяет пользовательскому ПО использовать
эти блочные устройства для обращения к дискам не беспокоясь, к какому типу они
принадлежат: IDE, SCSI или какому-то еще. ПО может адресовать место на диске,
как набор смежных 512-байтных блоков с произвольным доступом.
Разделы
Не смотря на то, что теоретически возможно использовать весь диск для
размещения вашей Linux системы, этого почти никогда не случается на практике.
Вместо этого все большое блочное устройство (диск) разбивается на меньшие,
более удобные для обращения, блочные устройства. Для всех систем они
называются разделами.
1.
Разработка схемы разделения диска
Схема разделения по умолчанию
Если вы не хотите заниматься разработкой схемы для вашей системы, вы можете
воспользоваться схемой, которую мы используем в этой книге:
| Раздел NewWorld |
Раздел OldWorld |
Раздел Pegasos |
Раздел RS/6000 |
Файловая система |
Размер |
Описание |
| /dev/hda1 |
/dev/hda1 |
(неприменимо) |
(неприменимо) |
(карта разделов) |
32k |
Apple_partition_map |
| /dev/hda2 |
(неприменимо) |
(неприменимо) |
(неприменимо) |
(bootstrap) |
800k |
Apple_Bootstrap |
| (неприменимо) |
(неприменимо) |
(неприменимо) |
/dev/sda1 |
(PReP Boot) |
800k |
Тип 0x41 |
| (неприменимо) |
/dev/hda2 (если используется quik) |
/dev/hda1 |
(неприменимо) |
ext2 |
32 МБ |
Загрузочный раздел |
| /dev/hda3 |
/dev/hda2(/dev/hda3, если используется
quik) |
/dev/hda2 |
/dev/sda2 |
(раздел подкачки) |
512M |
Раздел подкачки, тип 0x82 |
| /dev/hda4 |
/dev/hda3 (/dev/hda4 если используется
quik) |
/dev/hda3 |
/dev/sda3 |
ext3, xfs |
Оставшаяся часть диска |
Корневой раздел, тип 0x83 |
Примечание:
Есть несколько разделов: Apple_Driver43, Apple_Driver_ATA,
Apple_FWDriver, Apple_Driver_IOKit, Apple_Patches. Если не планируете
использовать MacOS 9, то вы можете удалить их, т.к. MacOS X и Linux не
нуждаются в них. Чтобы удалить их, используйте parted или сотрите диск,
инициализировав карту разделов.
|
Предупреждение:
parted способна изменять размер разделов, включая HFS+. К сожалению,
изменять раздел журналируемых разделов HFS+ невозможно, так что перед
изменением обязательно отключайте журналирование в MacOS X. Помните, что
операция изменения размера опасна, и вы действуете на свой страх и риск!
Перед изменением размера всегда создавайте резервные копии своих данных!
|
Если вам интересно знать, какого размера должны быть разделы, а равно как и
сколько их вообще вам потребуется, продолжайте чтение. В противном случае
начинайте создание разделов и переходите к главе Использование mac-fdisk (Apple) для создания разделов
или Альтернатива: использование parted (IBM/Pegasos) для
создания разделов.
Сколько и какого размера?
Количество разделов очень сильно зависит от используемого ПО. Например если в
вашей системе зарегистрировано большое количество пользователей, вероятно вы
захотите, чтобы /home находился отдельно для увеличения
безопасности и упрощения создания резервных копий. Если вы устанавливаете
Gentoo в качестве почтового сервера, то /var должен находиться на
отдельном разделе, т.к. вся почта хранится в /var. Правильный
выбор файловой системы для разделов позволит увеличить производительность вашей
системы. Игровые серверы должны иметь отдельный раздел с /opt,
т.к. большая часть ПО для их работы устанавливается в этот каталог. Причина
выделения на собственный раздел аналогична для /home: безопасность
и резервные копии. Определенно стоит оставить побольше места для
/usr т.к. помимо того, что здесь хранится большинство приложений,
одно дерево Portage занимает около 500 Мб, не считая архивов с исходными кодами,
размещенных внутри дерева.
Как вы можете видеть, все зависит от ваших целей. Наличие отдельных разделов или
томов имеет следующие преимущества:
-
Вы можете выбрать наиболее подходящую файловую систему для каждого раздела
или тома
-
Вы не столкнетесь с нехваткой места на диске для всей системы, например если
какое-нибудь неправильно работающее приложение постоянно производит запись на
раздел или том.
-
В случае необходимости проверка ФС займет меньше времени, т.к. проверка
разных разделов может выполняться параллельно (однако еще больший выигрыш по
времени дает использование нескольких физических дисков)
-
Безопасность системы может быть улучшена если некоторые разделы будут
смонтированы в режиме read-only (только для чтения), nosuid (setuid бит
игнорируется), noexec (бит запуска игнорируется) и т.д.
Однако, создание множества разделов имеет один большой минус: при неправильной
настройке вы можете получит систему в которой много свободного места на одном
разделе и полная его нехватка на другом. Также существует ограничение, в
размере 15 штук на возможное количество разделов для дисков SCSI и SATA.
1.
По умолчанию: использование mac-fdisk (Apple) для создания
разделов
В этом случае создайте разделы, используя mac-fdisk:
Листинг 1.1: Запуск mac-fdisk |
# mac-fdisk /dev/hda
|
Сначала удалите, чтобы расчистить место для разделов Linux. Используйте d
в mac-fdisk чтобы удалить раздел(ы). Вас спросят, какой из разделов
удалить. На компьютерах Apple первый раздел (Apple_partition_map) не может
быть удален.
Для NewWorld Mac, создайте раздел Apple_Bootstrap, используя b.
Вас спросят, с какого блока начать. Введите номер первого свободного
раздела, нажав затем на p. Например, 2p.
Примечание:
Этот раздел не является разделом /boot. Он не используется
Linux; не размещайте никакую файловую систему сюда и никогда не монтируйте
этот раздел. Пользователям Apple не нужен дополнительный раздел для
/boot.
|
Теперь создайте раздел подкачки, нажав c.mac-fdisk снова
спросит, с какого блока начать этот раздел. Т.к. ранее мы использовали 2
для создания раздела Apple_Bootstrap, вы должны ввести 3p. Когда вас
спросят о размере, наберите 512M (или другой требуемый размер —
хотя рекомендуется 512 МБ). Когда вас спросят имя, наберите swap
(необязательно).
Чтобы создать корневой раздел, наберите c, а затем 4p чтобы
выбрать, с какого блока должен начинаться корневой раздел. Когда спросят
размер, наберите снова 4p. mac-fdisk растолкует это как
«Использовать все доступное пространство». Когда вас спросят имя,
наберите root (необязательно).
Чтобы закончить, запишите разделы на диск нажав w и q для выхода
из mac-fdisk.
Примечание:
Чтобы убедиться, что все в порядке, запустите mac-fdisk еще раз и проверьте,
что все разделы на месте. Если вы не видите созданных разделов или внесенных
изменений, реинициализируйте разделы, нажав «i» в mac-fdisk.
Помните, что это создаст заново карту разделов, вследствие чего удаляться
все ваши разделы.
|
Теперь, когда разделы созданы, вы можете продолжить с создания файловых систем.
1.
Использование parted (главным образом Pegasos) для создания
разделов
parted, Редактор Разделов, теперь может работать с разделами HFS+,
используемыми MacOS и MacOS X. С помощью этой утилиты вы можете изменять
размер Mac-разделов и создать пространство для разделов Linux. Однако
представленный ниже пример описывает создание разделов только для
компьютеров Pegasos.
Сначала запустим parted:
Листинг 1.1: Запуск parted |
# parted /dev/hda
|
Если диск не разделен, запустите mklabel amiga чтобы создать метку диска
для устройства.
Вы можете в любое время набрать print в parted, чтобы просмотреть
текущую таблицу разделов. В любое время если во время изменений вы
почувствовали, что совершили ошибку, вы можете нажать Ctrl-c для отмены
изменений.
Если вы намереваетесь установить MorphOS на ваш компьютер Pegasos, создайте ФС
affs1 с именем «BI0» (BI-ноль) в начале диска. 32 МБ должно быть
более чем достаточно для записи ядра MorphOS. Если у вас Pegasos I или вы
планируете использовать reiserfs или xfs, вам понадобится еще один раздел для
хранения на нем ядра (Pegasos II может загружаться только с разделов ext2/ext3
или affs1). Для создания раздела наберите mkpart primary affs1 START END,
где START и END должны быть заменены диапазоном в мегабайтах
(например 0 32 для создания раздела 32 МБ, начинающегося на 0 МБ и
заканчивающегося на 32 МБ.
Вам нужно создать два раздела для Linux, для корневой ФС, где будут все ваши
программные файлы, и для раздела подкачки. Чтобы создать корневую ФС, сначала
вы должны решить, какую ФС использовать. Выбор возможен между ext2, ext3,
reiserfs и xfs. Пока вы не знаете, что делаете, используйте ext3. Запустите
mkpart primary ext3 START END, чтобы создать раздел ext3. И снова
замените START и END начальным и конечным значениями раздела в
мегабайтах.
Обычно рекомендуется, чтобы вы создали раздел подкачки, размер которого равен
двойному размеру оперативной памяти. Возможно, вы хотите использовать меньший
размер раздела подкачки, если вы не планируете запускать одновременно много
приложений (хотя рекомендуется по меньшей мере 512 МБ). Чтобы создать раздел
подкачки, запустите mkpart primary linux-swap START END.
Запишите младшие номера разделов, т.к. они потребуются во время установки.
Чтобы узнать эти номера, наберите print. Ваши диски отображаются в
качестве /dev/hdaX, где X является младшим номером раздела.
Когда вы закончите в parted, просто наберите quit.
1.
Создание файловых систем
Введение
Разделы созданы, настало время разместить файловые системы на них. Если вам
безразлично, какую ФС использовать и вы вполне довольны файловой системой,
используемой нами в этой Настольной книге по-умолчанию, вы можете перейти к
разделу Размещение файловых систем на
разделе. Если нет, то продолжайте чтение и узнайте больше о доступных для
использования файловых системах...
Файловые системы?
Доступно несколько файловых систем. ext2, ext3, ReiserFS и XFS признаны
стабильным для архитектуры PPC.
ext2 — это проверенная временем и родная для Linux файловая
система, но она не обладает средствами журналирования метаданных, что при
повседневном использовании означает, что проверка целостности во время запуска
системы может оказаться весьма продолжительной. Сегодня существует достаточно
широкий выбор ФС нового поколения, т.н. журналируемых файловых систем, которые
могут быть проверены на целостность очень быстро и по этому более
предпочтительны нежели их не журналируемые собратья. Журналируемая ФС позволяет
избежать долгих задержек при старте системы, если при том ваша файловая система
оказалась в нестабильном состоянии.
ext3 — это журналируемая версия ext2. Она обладает средствами
журналирования метаданных для быстрого восстановления наряду с другими
режимами ведения журнала, такими как журналирование всех данных и упорядоченное
ведение журнала данных. ext3 — это очень хорошая и надежная ФС. У нее
есть дополнительная возможность индексации через хэшированные B-деревья, что
позволяет повысить производительность практически в любой ситуации. Подводя
итог, можно сказать, что ext3 — превосходная ФС.
ReiserFS — это ФС, основанная на т.н. B*-деревьях. Она обладает
очень хорошей производительностью и сильно (иногда в 10—15 раз)
превосходит ext2 и ext3 при работе с файлами малого размера (размером менее 4
КБ). ReiserFS также очень хорошо масштабируется и обладает средствами
журналирования. Начиная со времени выхода ядра версии 2.4.18, ReiserFS признана
стабильной и пригодной для использования как в системах общего назначения, так и
в системах с большой нагрузкой, такой как создание больших файловых систем,
использованием множества файлов малого размера, файлов очень большого размера и
каталогов, содержащих десятки тысяч файлов.
XFS — это файловая система, обладающая наряду со средствами
ведения журнала хорошим набором дополнительных возможностей, оптимизирована для
хорошей масштабируемости. Мы рекомендуем ее применение только в Linux-системах
с высококлассными SCSI и/или оптоволоконными дисками и оборудованными
источниками бесперебойного питания. Из-за того, что XFS очень агрессивно
кеширует данные в памяти, очень вероятна ситуация, когда неправильно
спроектированная программа (не обладающая достаточной осторожностью при записи
файлов на диск, но таких мало) может потерять большой объем информации при
неожиданном отключении питания.
Размещение файловых систем на разделе
Для создания файловой системы на разделе или томе существуют утилиты для
каждого доступного типа:
| Файловая система |
Команда |
| ext2 |
mkfs.ext2 |
| ext3 |
mkfs.ext3 |
| reiserfs |
mkfs.reiserfs |
| xfs |
mkfs.xfs |
К примеру, для создания корневого раздела (/dev/hda4 в нашем
примере) с ФС ext3 (как в нашем примере), вы должны выполнить следующие команды:
Листинг 1.1: Размещение ФС на разделе |
# mkfs.ext3 /dev/hda4
|
Теперь разместите файловые системы на вновь созданных разделах (или логических
томах).
Примечание:
На Pegasos II раздел, содержащий ядро, должен быть ext2 или ext3. Компьютеры
NewWorld могут загружаться с ext2, ext3, XFS, ReiserFS или даже HFS/HFS+
файловых систем. На компьютерах OldWorld при загрузке с помощью BootX, ядро
должно находится в HFS разделе, но это может быть преодолено, когда вы
настроете свой начальный загрузчик.
|
Активация раздела подкачки
mkswap — команда, используемая для инициализации раздела подкачки:
Листинг 1.1: Создание сигнатуры раздела подкачки |
# mkswap /dev/hda3
|
Для активации раздела подкачки используется swapon:
Листинг 1.1: Активация раздела подкачки |
# swapon /dev/hda3
|
Создайте и активируйте раздел подкачки.
1.
Монтирование
Теперь, когда разделы созданы и файловые системы размещены настало время
смонтировать эти разделы. Используйте команду mount. Не забудьте
предварительно создать необходимые каталоги для монтирования каждого раздела.
В этом примере мы создаем точку монтирования и монтируем корневой раздел:
Листинг 1.1: Монтирование разделов |
# mkdir /mnt/gentoo
# mount /dev/hda4 /mnt/gentoo
|
Примечание:
Если вы хотите разместить /tmp на отдельном разделе, не забудьте
изменить права доступа к этому каталогу после монтирования: chmod 1777
/mnt/gentoo/tmp. В этом каталоге также размещается /var/tmp.
|
Нам также необходимо будет смонтировать ФС proc (виртуальный интерфейс ядра) в
каталог /proc. Но для начала надо разместить необходимые нам файлы
на разделах.
Переходите к разделу (Подготовка установочных
файлов Gentoo).
|