This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.

Please visit our production wiki at https://wiki.gentoo.org

Handbook:Alpha/Installation/Disks

From Gentoo Wiki (test)
Jump to:navigation Jump to:search
This page is a translated version of the page Handbook:Alpha/Installation/Disks and the translation is 100% complete.
Alpha Handbook
Установка
Об установке
Выбор подходящего источника для установки
Настройка сети
Подготовка дисков
Установка stage3
Установка базовой системы
Настройка ядра
Настройка системы
Установка системных утилит
Настройка загрузчика
Завершение
Работа с Gentoo
Введение в Portage
USE-флаги
Возможности Portage
Система init-скриптов
Переменные окружения
Работа с Portage
Файлы и каталоги
Переменные
Смешение ветвей программного обеспечения
Дополнительные утилиты
Дополнительные репозитории пакетов
Расширенные возможности
Настройка сети
Начальная настройка
Расширенная настройка
Модульное построение сети
Беспроводная сеть
Добавляем функциональность
Динамическое управление


Введение в блочные устройства

Блочные устройства

Теперь взглянем на аспекты работы Gentoo Linux и Linux в общем, связанные с дисковой подсистемой, включая файловые системы Linux, разделы и блочные устройства. Как только основные понятия о дисках и файловых системах будут изучены, приступите к созданию разделов и файловых систем для установки Gentoo Linux.

Для начала, рассмотрим блочные устройства. Наиболее известным блочным устройством можно считать первый диск в системе Linux, именуемый /dev/sda. И SCSI-, и Serial ATA-диски обозначаются как /dev/sd*; благодаря фреймворку ядра libata даже IDE-диски обозначаются как /dev/sd*. Если же используется старый фреймворк устройств, первым IDE-диском будет /dev/hda.

Вышеназванные блочные устройства представляют абстрактный интерфейс к диску. Пользовательские приложения могут использовать их для взаимодействия с диском, не заботясь о том, какой это диск — IDE, SCSI или ещё какой-либо. Программа просто адресует пространство на диске как совокупность следующих друг за другом 512-байтных блоков с произвольным доступом.


Слайсы

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

Заметка
In further sections, the installation instructions will use the example partitioning for the ARC/AlphaBIOS setup. Please adjust to personal preference!

Разрабатываем схему разделов

Сколько разделов и насколько большие?

The number of partitions is highly dependent on the environment. For instance, if there are lots of users, then it is advised to have /home/ separate as it increases security and makes backups easier. If Gentoo is being installed to perform as a mail server, then /var/ should be separate as all mails are stored inside /var/. A good choice of filesystem will then maximize the performance. Game servers will have a separate /opt/ as most gaming servers are installed there. The reason is similar for the /home/ directory: security and backups. In most situations, /usr/ is to be kept big: not only will it contain the majority of applications, it typically also hosts the Gentoo ebuild repository (by default located at /usr/portage) which already takes around 650 MiB. This disk space estimate excludes the packages/ and distfiles/ directories that are generally stored within this ebuild repository.

Все сильно зависит от того, чего хочет достигнуть администратор. Наличие отдельных разделов или томов имеет следующие плюсы:

  • Можно выбрать наиболее подходящую файловую систему для каждого раздела или тома.
  • Свободное место во всей системе не кончится "вдруг" из-за того, что одна-единственная сбойная программа постоянно записывает файлы в раздел или том.
  • Необходимая проверка файловых систем будет занимать меньше времени, так как проверка разных разделов может выполняться параллельно (еще больший выигрыш времени дает использование нескольких физических дисков).
  • Можно повысить безопасность системы, монтируя часть разделов в режиме read-only (только для чтения), nosuid (игнорируется бит setuid), noexec (игнорируется бит исполнения) и так далее.

Однако у множества разделов также есть недостатки. Если они не настроены правильно, может получиться так, что будет огромное количество свободного места на одном разделе и отсутствием его на другом. Другой проблемой является то, что отдельные разделы, особенно для важных точек монтирования, например /usr/ или /var/, часто требуют загрузки initramfs, чтобы смонтировать разделы прежде чем запустятся другие загрузочные скрипты. Это не всегда является проблемой, так что результаты могут быть разные.

Также существует лимит в 15 разделов для SCSI и SATA, если только на диске не используются метки GPT.

Что по поводу пространства подкачки?

Не существует идеального значения для раздела подкачки. Целью пространства подкачки является предоставление дискового пространства ядру, когда оперативная память (ОЗУ) сильно используется. Пространство подкачки позволяет ядру переносить страницы памяти, которые, скорее всего, не будут использоваться в ближайшее время, на диск (что называется swap, или page-out), освобождая память. Конечно, если эта память, вдруг, неожиданно понадобится, эти страницы должны быть помещены обратно в память (page-in), что займет некоторое время (так как диски - это очень медленные устройства, если сравнивать их с оперативной памятью).

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


Использование fdisk для разбития диска (только SRM)

Далее будет объяснено как создать примерную разметку слайсов для SRM:

Слайс Описание
/dev/sda1 Слайс раздела подкачки (swap)
/dev/sda2 Корневой слайс (root)
/dev/sda3 Весь диск (необходимо)

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

Определение доступных дисков

Используйте следующие команды, чтобы выяснить какие диски доступны в системе.

Для дисков IDE:

root #dmesg | grep 'drive$'

Для дисков SCSI:

root #dmesg | grep 'scsi'

Вывод команды покажет какие диски обнаружены и путь к ним в /dev/. Далее мы будем предполагать, что это SCSI-диск /dev/sda.

Теперь запустите fdisk:

root #fdisk /dev/sda

Удаление всех слайсов

Если жесткий диск полностью пуст, тогда создайте сперва BSD disklabel.

Command (m for help):b
/dev/sda contains no disklabel.
Do you want to create a disklabel? (y/n) y
A bunch of drive-specific info will show here
3 partitions:
#       start       end      size     fstype   [fsize bsize   cpg]                                    
  c:        1      5290*     5289*    unused        0     0

Мы начнем с удаления всех слайсов кроме 'c'-слайса (необходим для использования BSD disklabels). Следующий пример показывает как удалить слайс (в примере мы используем 'a'). Повторите этот процесс, чтобы удалить все другие слайсы (все кроме слайса 'c').

Используйте p, чтобы просмотреть все доступные слайсы. d используется для удаления слайса.

BSD disklabel command (m for help):p
8 partitions:
#       start       end      size     fstype   [fsize bsize   cpg]                                    
  a:        1       235*      234*    4.2BSD     1024  8192    16
  b:      235*      469*      234*      swap
  c:        1      5290*     5289*    unused        0     0
  d:      469*     2076*     1607*    unused        0     0
  e:     2076*     3683*     1607*    unused        0     0
  f:     3683*     5290*     1607*    unused        0     0
  g:      469*     1749*     1280     4.2BSD     1024  8192    16
  h:     1749*     5290*     3541*    unused        0     0
BSD disklabel command (m for help):d
Partition (a-h): a

После проделывания этой операции со всеми слайсами список должен показывать что-то подобное:

BSD disklabel command (m for help):p
3 partitions:
#       start       end      size     fstype   [fsize bsize   cpg]                                    
  c:        1      5290*     5289*    unused        0     0

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

В системах на базе Alpha нет необходимости создавать отдельный слайс boot. Тем не менее, первый цилиндр нельзя воспользоваться, так как там будет размещен образ aboot.

Мы создадим слайс подкачки начиная с третьего цилиндра и размером в 1 GB. Используйте n, чтобы создать новый слайс. После создания слайса мы изменим его тип на 1 (один), означает swap.

BSD disklabel command (m for help):n
Partition (a-p): a
First cylinder (1-5290, default 1): 3
Last cylinder or +size or +sizeM or +sizeK (3-5290, default 5290): +1024M
BSD disklabel command (m for help):t
Partition (a-c): a
Hex code (type L to list codes): 1

После выполнения этих операций должна быть показана примерно такая разметка:

BSD disklabel command (m for help):p
3 partitions:
#       start       end      size     fstype   [fsize bsize   cpg]                                    
  a:        3      1003      1001       swap
  c:        1      5290*     5289*    unused        0     0

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

Мы создадим корневой слайс начиная с первого цилиндра после слайса подкачки. Используйте p, что посмотреть где слайс подкачки заканчивается. В нашем примере это 1003. Создайте корневой слайс начиная с 1004.

Другая проблема заключается в том, что в fdisk обнаружена ошибка, из-за которой число доступных цилиндров на единицу больше реального числа цилиндров. Другими словами, при запросе последнего цилиндра, уменьшите номер цилиндра (в этом примере: 5290) на один.

Когда слайс создан, мы изменим тип на 8 для ext2.

BSD disklabel command (m for help):n
Partition (a-p): b
First cylinder (1-5290, default 1): 1004
Last cylinder or +size or +sizeM or +sizeK (1004-5290, default 5290): 5289
BSD disklabel command (m for help):t
Partition (a-c): b
Hex code (type L to list codes): 8

Итоговая разметка слайсов теперь должна выглядеть примерно так:

BSD disklabel command (m for help):p
3 partitions:
#       start       end      size     fstype   [fsize bsize   cpg]                                    
  a:        3      1003      1001       swap
  b:     1004      5289      4286       ext2
  c:        1      5290*     5289*    unused        0     0

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

Выйдете из приложения fdisk нажав w. Это также сохранит разметку слайсов.

Command (m for help):w

Использование fdisk для разбития диска (только ARC/AlphaBIOS)

Далее будет объяснено как создать примерную разметку разделов для ARC/AlphaBIOS:

Раздел Описание
/dev/sda1 Загрузочный раздел (boot)
/dev/sda2 Раздел подкачки (swap)
/dev/sda3 Корневой раздел (root)

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

Определение доступных дисков

Используйте следующие команды, чтобы выяснить какие диски доступны в системе.

Для дисков IDE:

root #dmesg | grep 'drive$'

Для дисков SCSI:

root #dmesg | grep 'scsi'

Из вывода команды станет видно какие диски обнаружены и путь к ним в /dev/. Далее мы будем предполагать, что это SCSI-диск /dev/sda.

Теперь запустите fdisk:

root #fdisk /dev/sda

Удаление всех разделов

Если жесткий диск полностью пуст, тогда создайте сперва DOS disklabel.

Command (m for help):o
Building a new DOS disklabel.

Мы начнем с удаления всех разделов. Следующий пример показывает как удалить раздел (в примере мы используем '1'). Повторите этот процесс, чтобы удалить все другие разделы.

Используйте p, чтобы просмотреть все доступные разделы. d используется для удаления раздела.

command (m for help):p
Disk /dev/sda: 9150 MB, 9150996480 bytes
64 heads, 32 sectors/track, 8727 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
  
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1         478      489456   83  Linux
/dev/sda2             479        8727     8446976    5  Extended
/dev/sda5             479        1433      977904   83  Linux Swap
/dev/sda6            1434        8727     7469040   83  Linux
command (m for help):d
Partition number (1-6): 1

Создание загрузочного раздела

В системах Alpha, которые используют MILO для загрузки, мы должны создать небольшой загрузочный раздел vfat.

Command (m for help):n
Command action
  e   extended
  p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-8727, default 1): 1
Last cylinder or +size or +sizeM or +sizeK (1-8727, default 8727): +16M
Command (m for help):t
Selected partition 1
Hex code (type L to list codes): 6
Changed system type of partition 1 to 6 (FAT16)

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

Мы создадим раздел подкачки размером в 1 GB. Используйте n, чтобы создать новый раздел.

Command (m for help):n
Command action
  e   extended
  p   primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (17-8727, default 17): 17
Last cylinder or +size or +sizeM or +sizeK (17-8727, default 8727): +1000M
Command (m for help):t
Partition number (1-4): 2
Hex code (type L to list codes): 82
Changed system type of partition 2 to 82 (Linux swap)

После выполнения этих операций должна быть показана примерно такая разметка:

Command (m for help):p
Disk /dev/sda: 9150 MB, 9150996480 bytes
64 heads, 32 sectors/track, 8727 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
  
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          16       16368    6  FAT16
/dev/sda2              17         971      977920   82  Linux swap

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

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

Command (m for help):n
Command action
  e   extended
  p   primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (972-8727, default 972): 972
Last cylinder or +size or +sizeM or +sizeK (972-8727, default 8727): 8727

После выполнения этих операций должна быть показана примерно такая разметка:

Command (m for help):p
Disk /dev/sda: 9150 MB, 9150996480 bytes
64 heads, 32 sectors/track, 8727 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
  
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          16       16368    6  FAT16
/dev/sda2              17         971      977920   82  Linux swap
/dev/sda3             972        8727     7942144   83  Linux

Сохранение разметки разделов и выход

Сохраните сделанные изменения в fdisk нажав w.

Command (m for help):w

Теперь, когда разделы созданы, создадим файловые системы.



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

Введение

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

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

На выбор доступно несколько файловых систем. Некоторые из них считаются стабильными на архитектуре alpha. Рекомендуется прочитать информацию о файловых системах и об их состоянии поддержки перед тем, как выбирать экспериментальные для важных разделов.

btrfs
Файловая система следующего поколения, обеспечивающая множество дополнительных функций, таких как мгновенные снимки, самовосстановление с помощью контрольных сумм, прозрачной компрессии, субтомов и интегрированным RAID. Некоторые дистрибутивы начали предлагать ее из коробки, но она еще не готова к использованию в промышленной среде. Общедоступны отчеты об ошибках в файловой системе. Ее разработчики призывают людей для безопасности использовать последнюю версию ядра, для решения уже известных проблем. Она разрабатывается уже много лет и пока далеко до завершения. Исправления иногда портируются в более старые версии ядра. Используйте с осторожностью эту файловую систему!
f2fs
Файловая система (Flash-Friendly File System) была создана Samsung для использования на NAND накопителях. По состоянию на 2 квартал 2016 года файловая система считается не завершенной, но она может быть достойным выбором при установке на microSD карту, USB накопитель или другие накопители на основе флэш.
ext2
Это проверенная и надежная файловая система Linux, но она не обладает средствами журналирования метаданных, что означает, что проверка файловой системы ext2 при запуске может занимать довольно много времени. Существует достаточно широкий выбор журналируемых файловых систем нового поколения, целостность которых может быть проверена очень быстро, что является преимуществом перед не журналируемыми системами. Журналирование файловой системы позволяет избежать долгих задержек при загрузке системы и так же избежать ее неустойчивого состояния.
ext3
Журналируемая версия файловой системы ext2, обеспечение журналирования метаданных для быстрого восстановления в дополнение к другим режимам журналирования, таким как журналирование всех данных и упорядоченных данных.
ext4
Изначально созданная как ответвление от ext3, ext4 приносит новые возможности, повышение производительности и устранение ограничений на размер раздела на диске. Она может быть размером до 1 ЭБ и максимальный размер файла 16ТБ. Вместо классического ext2/3 блочного распределения ext4 использует экстенты, которые улучшают производительность при работе с большими файлами и уменьшают фрагментацию. Ext4 также обеспечивает более сложные алгоритмы распределения блоков (задержка распределения и мультиблочное распределение) дающие драйверу файловой системы больше возможностей по оптимизации размещения данных на диске. Ext4 рекомендуется как универсальная файловая система для всех платформ.
JFS
Высокопроизводительная журналируемая файловая система от IBM. JFS это легкая, быстрая и надежная файловая система, основанная на B+tree с хорошей производительностью в различных условиях.
ReiserFS
Основаная на B+tree журналируемая файловая система имеющая хорошую общую производительность, особенно при работе с множеством мелких файлов cost of more CPU cycles. ReiserFS, по видимому, менее поддерживаемая, чем другие файловые системы.
XFS
Файловая система с журналированием метаданных, которая поставляется с мощным набором функций и оптимизирована для масштабируемости. XFS, кажется, менее снисходительно относится к различным аппаратным проблемам.
vfat
Так же известна как FAT32, поддерживается Linux, но без поддержки каких-либо настроек разрешений. В основном используется для взаимодействия с другими операционными системами (в основном Microsoft Windows), но также необходима при использовании некоторых системных прошивок (например UEFI).
NTFS
Эта файловая система (New Technology Filesystem) считается флагманской файловой системой от Microsoft Windows. Как и vfat она не сохраняет настройки разрешений и расширенные атрибуты, необходимые для BSD или Linux для нормальной работы, поэтому она не может быть использована как корневая файловая система. Её необходимо использовать только для взаимодействия с Microsoft Windows компьютерами (обратите внимание на акцент слова только).

При использовании ext2, ext3 или ext4 на малых разделах (менее 8 Гб) файловая система должна быть создана с надлежащими опциями резервирования достаточного количества inodes. Приложение mke2fs (mkfs.ext2) использует настройки "bytes-per-inode" для вычисления сколько inodes должна иметь файловая система. На небольших системах рекомендуется увеличивать расчетное количество inodes.

Для ext2 это может быть сделано следующей командой:

root #mkfs.ext2 -T small /dev/<device>

Для ext3 и ext4 добавьте опцию -j для разрешения журналирования:

root #mkfs.ext2 -j -T small /dev/<device>

Как правило необходимо увеличивать в четыре раза количество inodes для таких систем, снижая "bytes-per-inode" с одного на 16kB до одного на 4kB. Это может быть настроено далее с помощью рейтинга:

root #mkfs.ext2 -i <ratio> /dev/<device>

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

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

Файловая система Команда для создания На установочном CD? Пакет
btrfs mkfs.btrfs Да sys-fs/btrfs-progs
ext2 mkfs.ext2 Да sys-fs/e2fsprogs
ext3 mkfs.ext3 Да sys-fs/e2fsprogs
ext4 mkfs.ext4 Да sys-fs/e2fsprogs
f2fs mkfs.f2fs Да sys-fs/f2fs-tools
jfs mkfs.jfs Да sys-fs/jfsutils
reiserfs mkfs.reiserfs Да sys-fs/reiserfsprogs
xfs mkfs.xfs Да sys-fs/xfsprogs
vfat mkfs.vfat Да sys-fs/dosfstools
NTFS mkfs.ntfs Да sys-fs/ntfs3g

Например, чтобы сделать загрузочный раздел (/dev/sda1) в ext2 и корневой раздел (/dev/sda3) в ext4 при использовании структуры разделов из примера, используются следующие команды:

root #mkfs.ext2 /dev/sda1
root #mkfs.ext4 /dev/sda3

Теперь созданы файловые системы на вновь созданных томах (или логических разделах).

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

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

root #mkswap /dev/sda2

Чтобы активировать раздел подкачки, используйте swapon:

root #swapon /dev/sda2

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

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

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

root #mount /dev/sda3 /mnt/gentoo
Заметка
Если /tmp/ должен находится на отдельном разделе, не забудьте после монтирования изменить права доступа:
root #chmod 1777 /mnt/gentoo/tmp
Это так же справедливо для /var/tmp.

Позже в инструкции будут смонтированы файловая система proc (виртуальный интерфейс с ядром) и другие псевдо-файловые системы ядра. Но сначала мы устанавливаем установочные файлы Gentoo.