Gentoo Logo

1.  Введение в блоки устройств

Блоки устройств

Здесь мы рассмотрим различные стороны дисковой архитектуры Gentoo Linux и операционной системы Linux как таковой, включая файловые системы, разделы дисков и блоки устройств. Затем когда вы ознакомитесь с плюсами и минусами дисков и файловых систем, мы расскажем о процессе настройки разделов и файловых систем для установки ОС Gentoo Linux.

Для начала мы расскажем о блоках устройств. Наиболее типичным блоковым устройством является скорее всего то которое представлено первым жестким диском SCSI в операционной системе Linux, которое называется/dev/sda.

Блоковые устройства предоставляют абстрактный интерфейс к диску. Пользовательские программы могут использовать их для передачи данных абстрагируясь от типа диска (IDE, SCSI или что-то еще). Прорграмма просто адресует дисковое пространство как набор непрерывных, случайнодоступных 512-байтных блоков.

Блоковые устройства показаны как строки в файле/dev/. Обычно первое SCSI устройство называется/dev/sda, второе -- /dev/sdb, и т.д. IDE устройства называются аналогично, с приставкой hd- вместо sd-. Если используются IDE устройства, первое будет называться /dev/hda, второе -- /dev/hdb, и т.д.

Разделы

Несмотря на то что теоретически возможно использование всего диска для хранения системы Linux, на практике этого почти никогда не происходит. Вместо этого диски делятся на более мелкие, более управляемые блоковые устройства. Эти устройства называются разделы или куски.

Первый раздел на первом SCSI диске называется /dev/sda1, второй -- /dev/sda2 и т.д. Аналогично первые два раздела на диске типа IDE будут называться /dev/hda1 и /dev/hda2.

Третий раздел в системах Sun имеет специальное назначение как кусок "целого диска". Этот раздел должен оставаться нетронутым и не должен содержать файловой системы.

Пользователи, которые привыкли к схеме разбивки системы DOS, должны знать что дисковые метки Sun не имеют "первичного" и "расширенного" разделов. Вместо этого, доступно до восьми разделов на диск, включая зарезервированный третий.

1.  Разработка Схемы Разделов

Схема Разделов По Умолчанию

Если вы не заинтересованы в разработке схемы разделов, то таблица прведённая ниже предлагает подходящую для большинства систем начальную разбивку. Для систем с дисками типа IDE просто замените имя hda на sda.

Замеьтим что отдельный раздел /boot обычно не рекомендуется на системах SPARC, т.к. это делает более сложной настройку загрузчика.

Раздел Файловая система Размер Точка монтирования Описание
/dev/sda1 ext3 <2 GByte / Корневой раздел. Для систем sun4c, sun4d и sun4m с некоторыми версиями ПЗУ требуется, чтобы этот раздел был менее 1ГБ, и был первым разделом на диске.
/dev/sda2 swap 512 MBytes none Раздел подкачки. Для самогенерации системы и отдельных больших компиляций требуется как минимум 512MB RAM (включая подкачку).
/dev/sda3 none Whole disk none Раздел целого диска. Требования системы SPARC.
/dev/sda4 ext3 at least 2 GBytes /usr Раздел /usr. Сюда устанавливаются приложения. По умолчанию этот раздел также используется для данных Портэджа (примерный размер 500 MB, не включая исходный код).
/dev/sda5 ext3 at least 1GByte /var Раздел /var. Используется для программно-генерируемых данных. По умолчанию Портэдж использует этот раздел во время компиляции для хранения временных файлов. Некоторые большие приложения, такие как Mozilla и OpenOffice.org требуют более 1 GB для хранения временных файлов при построении.
/dev/sda6 ext3 remaining space /home Раздел /home. Используется для хранения пользовательских каталогов.

1.  Использование программы fdisk для разбивки жесткого диска

Ниже описывается как создать разбивку на примере описанном выше:

Раздел Описание????????
/dev/sda1 /
/dev/sda2 swap
/dev/sda3 whole disk slice
/dev/sda4 /usr
/dev/sda5 /var
/dev/sda6 /home

При необходимости измените схему разделов. Помните, что весь корневой раздел должен быть в пределах первых 2 GB для дисков на более старых машинах. Также сузествует ограничение в 15 разделов для дисков SCSI и SATA.

Запуск программы fdisk

Запустите программу fdisk, указав в качестве аргумента имя диска:

Листинг 1.1: Запуск fdisk

# fdisk /dev/sda

Вы увидите приветствие программы fdisk:

Листинг 1.1: Подсказка fdisk

Command (m for help):

Чтобы просмотреть имеющиеся в наличии разделы, нажмите p:

Листинг 1.1: Список имеющихся разделов

Command (m for help): p

Disk /dev/sda (Sun disk label): 64 heads, 32 sectors, 8635 cylinders
Units = cylinders of 2048 * 512 bytes

   Device Flag    Start       End    Blocks   Id  System
/dev/sda1             0       488    499712   83  Linux native
/dev/sda2           488       976    499712   82  Linux swap
/dev/sda3             0      8635   8842240    5  Whole disk
/dev/sda4           976      1953   1000448   83  Linux native
/dev/sda5          1953      2144    195584   83  Linux native
/dev/sda6          2144      8635   6646784   83  Linux native

Заметим, что диск отмечен как Sun disk label. Если этого нет, диск использует схему раздела DOS, а не Sun. В этом случае используйте команду s чтобы определить разметку диска Sun:

Листинг 1.1: Создание дисковой метки Sun

Command (m for help): s
Building a new sun disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.

Drive type
   ?   auto configure
   0   custom (with hardware detected defaults)
   a   Quantum ProDrive 80S
   b   Quantum ProDrive 105S
   c   CDC Wren IV 94171-344
   d   IBM DPES-31080
   e   IBM DORS-32160
   f   IBM DNES-318350
   g   SEAGATE ST34371
   h   SUN0104
   i   SUN0207
   j   SUN0327
   k   SUN0340
   l   SUN0424
   m   SUN0535
   n   SUN0669
   o   SUN1.0G
   p   SUN1.05
   q   SUN1.3G
   r   SUN2.1G
   s   IOMEGA Jaz
Select type (? for auto, 0 for custom): 0
Heads (1-1024, default 64): 
Using default value 64
Sectors/track (1-1024, default 32): 
Using default value 32
Cylinders (1-65535, default 8635): 
Using default value 8635
Alternate cylinders (0-65535, default 2): 
Using default value 2
Physical cylinders (0-65535, default 8637): 
Using default value 8637
Rotation speed (rpm) (1-100000, default 5400): 10000
Interleave factor (1-32, default 1): 
Using default value 1
Extra sectors per cylinder (0-32, default 0): 
Using default value 0

Правильные значения можно найти в документации к диску. 'Автонастройка' обычно не срабатывает.

Удаление существующих разделов

Настало время удалить существующие разделы диска. Чтобы выполнить эту операцию нажмите d и Enter. Вас попросят ввести номер раздела для удаления. Чтобы удалить уже существующий раздел /dev/sda1, нужно набрать:

Листинг 1.1: Удаление раздела

Command (m for help): d
Partition number (1-4): 1

Вы не должны удалять раздел номер 3 (целый диск). Таково требование Sun. Если такой раздел не существует, продолжайте по инструкции "Создание метки диска Sun" описанной выше.

После удаления всех разделов кроме 3. вы увидите разхбивку аналогичную следующей:

Листинг 1.1: Просмотр пустой схемы разделов

Command (m for help): p

Disk /dev/sda (Sun disk label): 64 heads, 32 sectors, 8635 cylinders
Units = cylinders of 2048 * 512 bytes

   Device Flag    Start       End    Blocks   Id  System
/dev/sda3             0      8635   8842240    5  Whole disk

Создание корневого раздела

Сейчас мы готовы к созданию корневого раздела. Чтобы выполнить это нажмите n Enter, а затем наберите 1 для создания нового раздела. Для ответа на вопрос о первом цилиндре, нажмите клавишу enter. Для ответа на вопрос о последнем цилиндре наберите +512M для создания раздела размером 512МБ. Убелитесь что весь корневой раздел поместился в пределах первых 2ГБ диска. Приведем порядок выполнения этой команды:

Листинг 1.1: Создание корневого раздела

Command (m for help): n
Partition number (1-8): 1
First cylinder (0-8635): (нажмите Enter)
Last cylinder or +size or +sizeM or +sizeK (0-8635, default 8635): +512M

Сейчас, если набрать p, то увидим следующий вывод:

Листинг 1.1: Список проэкта разделов

Command (m for help): p

Disk /dev/sda (Sun disk label): 64 heads, 32 sectors, 8635 cylinders
Units = cylinders of 2048 * 512 bytes

   Device Flag    Start       End    Blocks   Id  System
/dev/sda1             0       488    499712   83  Linux native
/dev/sda3             0      8635   8842240    5  Whole disk

Создание раздела подкачки

Далее давайте создадим раздел подкачки. Чтобы выполнить это наберите n, а затем 2 для создания нового раздела, в нашем случае /dev/sda2. На вопрос о первом цилиндре нажмите Enter. На вопрос о последнем цилиндре, наберите+512M, чтобы создать раздел размером 512M. После этого наберите t, чтобы выбрать тип раздела и наберите 82 чтобы выбрать тип "Linux Swap". По окончании наберите p и увидите таблицу разбивки которая будет выглядеть примерно так:

Листинг 1.1: Список доступных разделов

Command (m for help): p

Disk /dev/sda (Sun disk label): 64 heads, 32 sectors, 8635 cylinders
Units = cylinders of 2048 * 512 bytes

   Device Flag    Start       End    Blocks   Id  System
/dev/sda1             0       488    499712   83  Linux native
/dev/sda2           488       976    499712   82  Linux swap
/dev/sda3             0      8635   8842240    5  Whole disk

Создание разделов /usr, /var ? /home

Наконец, давайте создадим разделы /usr, /var и /home. Как и раньше, наберите n, а затем 4 для создания третьего раздела, в нашем случае /dev/sda4. На вопрос о первом цилиндре, нажмите Enter. На вопрос о последнем цилиндре, наберите +2048M для создания раздела размером 2GB. Повторите эту процедуру для sda5 и sda6, используя соответствующие размеры. По окончании, вы должны увидеть что-то похожее на:

Листинг 1.1: Завершенный список таблицы разделов

Command (m for help): p

Disk /dev/sda (Sun disk label): 64 heads, 32 sectors, 8635 cylinders
Units = cylinders of 2048 * 512 bytes

   Device Flag    Start       End    Blocks   Id  System
/dev/sda1             0       488    499712   83  Linux native
/dev/sda2           488       976    499712   82  Linux swap
/dev/sda3             0      8635   8842240    5  Whole disk
/dev/sda4           976      1953   1000448   83  Linux native
/dev/sda5          1953      2144    195584   83  Linux native
/dev/sda6          2144      8635   6646784   83  Linux native

Сохранение и выход

Чтобы сохранить созданную таблицу разделов и завершить сеанс работы с программой fdisk, нажмите w:

Листинг 1.1: Сохранение и выход из программы fdisk

Command (m for help): w

Сейчас когда разделы созданы продолжайте по ссылке Создание файловых систем.

1.  Создание файловых систем

Введение

Снйчас когда все разделы уже созданы, настало время расположить на них файловые системы. Если вам безразлично какую файловыю систему выбрать и вас устроит выбор файловых систем по умолчанию принятый в этом руководстве, продолжайте по ссылке: Применение файловых систем к разделам. В противном случае продолжайте читать чтобы узнать больше о файловых системах...

Файловые системы

Существует несколько файловых систем. Про некоторые известно что они стабильно работают на компьютерах с архитектурой SPARC. Хорошо работают например файловые системы Ext2 и Ext3, Остальные могут работать некорректно.

Файловая система ext2 является проверенной и надёжной файловой системой операционной системы Linux. Она не поддерживает журналирования, а это значит, что периодические проверки этой системы во время загрузки могут отнимать много времени. В настоящее время существуют журнальные файловые системы, которые могут достаточно быстро быть проверены на целостность и поэтому более предпочтительны по отношению к их не-журнальным оппонентам. Резюмируя, журнальные файловые системы сокращают время ожидания когда происходит загрузка системы и состояние файловой системы нестабильно.

Файловая система ext3 является журнальной версией файловой системы ext2. Она предоставляет журнальные метаданные для быстрейшего восстановления системы и другие расширенные журнальные режимы такие как запись данных и запись упорядоченных данных. Файловая система Ext3 дополнительно имеет возможность индексирования хэшированного B-дерева, которая позволяет получить высокую производительность почти во всех ситуациях. Включить такое индексирование можно, добавив -O dir_index в команду mke2fs. Эта файловая система является отличной надежной альтернативой для ext2.

Файловая система ReiserFS частично работает на системах sparc64 и поэтому не рекомендуется для использования. Файловая система XFS не должна использоваться так как известно что она создает множество проблем и может разрушить данные.. Еще одна журнальная файловая система, JFS, не поддерживается. Независимо от выбора файловой системы загрузчик требует чтобы файловая система корневого раздела была ext2 или ext3.

Применение файловых систем к разделам

Чтобы создать файловую систему на разделе или томе, существуют средства специфические для данной файловой системы:

Файловая система Команда по созданию
ext2 mke2fs
ext3 mke2fs -j
ext3 с индексированием хэшированного b-дерева (только ядро 2.6) mke2fs -j -O dir_index
reiserfs mkreiserfs

Например, для создания корневого раздела (в нашем примере /dev/sda1) с файловой системой ext2, разделов /usr, /var, и /home (в нашем примере соответственно (/dev/sda4, 5 и 6), с файловой системой ext3, нужно воспользоваться следующими командами:

Листинг 1.1: Применение файловых систем к разделам

# mke2fs /dev/sda1
# mke2fs -j /dev/sda4
# mke2fs -j /dev/sda5
# mke2fs -j /dev/sda6

Создание и активизация раздела подкачки

Для создания раздела подкачки используется команда mkswap:

Листинг 1.1: Создание раздела подкачки

# mkswap /dev/sda2

Для активизации раздела подкачки используется команда swapon:

Листинг 1.1: Активизация раздела подкачки

# swapon /dev/sda2

Создайте и активизируйте раздел подкачки используя команды описанные выше.

1.  Монтирование

Сейчас когда разделы проинициализированы и содержат файловые системы, настало время смонтировать их используя команду mount. Не забудьте сначала создать необходимые каталоги монтированиядля каждого созданного раздела. Например:

Листинг 1.1: Монтирование разделов

# mount /dev/sda1 /mnt/gentoo
# mkdir /mnt/gentoo/usr
# mount /dev/sda4 /mnt/gentoo/usr
# mkdir /mnt/gentoo/var
# mount /dev/sda5 /mnt/gentoo/var
# mkdir /mnt/gentoo/home
# mount /dev/sda6 /mnt/gentoo/home

Примечание: Если вы хотите чтобы каталог /tmp находился на отдельном разделе, измените права доступа после монтирования: chmod 1777 /mnt/gentoo/tmp. То же самое нужно проделать и с /var/tmp, если они будут нахлдиться на отдельном разделе.

Мы также должны смонтировать файловую систему proc (виртуальный интерфейс к ядру) на /proc. Но сначала мы должны положить наши установочные файлы на соответствующие им разделы.

Продолжайте по ссылке (Установка установорчных файлов ОС Gentoo).

Обновлено 2 октября 2005

Исходный документ обновлен 4 сентября 2011

Donate to support our development efforts.

Copyright 2001-2012 Gentoo Foundation, Inc. Questions, Comments? Contact us.