Handbook:Alpha/Installation/Disks

From Gentoo Wiki
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
Установка
Об установке
Выбор подходящего источника для установки
Настройка сети
Подготовка дисков
Установка файла stage
Установка базовой системы
Настройка ядра
Настройка системы
Установка системных утилит
Настройка загрузчика
Завершение
Работа с Gentoo
Введение в Portage
USE-флаги
Возможности Portage
Система сценариев инициализации
Переменные окружения
Работа с Portage
Файлы и каталоги
Переменные
Смешение ветвей программного обеспечения
Дополнительные утилиты
Дополнительные репозитории пакетов
Расширенные возможности
Настройка сети OpenRC
Начальная настройка
Расширенная настройка
Модульное построение сети
Беспроводная сеть
Добавляем функциональность
Динамическое управление


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

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

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

Для начала, рассмотрим блочные устройства. Устройства SCSI и Serial ATA обозначаются как /dev/sda, /dev/sdb, /dev/sdc и так далее. На более современных компьютерах твердотельные накопители NVMe на базе PCI Express имеют дескриптор вида /dev/nvme0n1, /dev/nvme0n2 и так далее.

Следующая таблица поможет определить необходимый тип блочного устройства в системе:

Тип устройства Дескриптор устройства по умолчанию Примечания и полезные сведения
IDE, SATA, SAS, SCSI или USB flash /dev/sda Данный тип устройств стал доступным примерно с 2007 года и встречается до сих пор, являясь, пожалуй, самым используемым типом в Linux. Устройства могут подключаться через шины SATA, SCSI или USB в виде устройства блочного хранилища. Например, первый раздел на первом SATA устройстве обозначается как /dev/sda1.
NVM Express (NVMe) /dev/nvme0n1 Передовая на данный момент технология твердотельных накопителей. Устройства NVMe подключаются к шине PCI Express и обладают наиболее быстрой скоростью передачи блочных данных, доступной на рынке. Системы образца 2014 года и новее могут иметь поддержку устройств NVMe. Первый раздел на первом NVMe устройстве обозначается как /dev/nvme0n1p1.
MMC, eMMC и SD /dev/mmcblk0 Устройства embedded MMC, SD-карты и другие типы карт памяти могут использоваться для хранения данных. Однако не все системы могут позволить загружаться с данного типа устройств. Не рекомендуется использовать данные устройства для установки Linux; лучше используйте их по прямому назначению — для переноса файлов. Также их можно использовать для кратковременного резервного копирования или снимков диска.

Данные блочные устройства представляют абстрактный интерфейс к диску. Пользовательские приложения могут использовать их для взаимодействия с диском, не заботясь о том, какой это диск — SATA, SCSI или какой-либо ещё. Программа просто адресует пространство на диске как совокупность следующих друг за другом 4096-байтных (4K) блоков с произвольным доступом.


Слайсы

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

Заметка
В следующих разделах для установки будет использоваться пример для конфигурации ARC/AlphaBIOS. Измените необходимые значения под свою конфигурацию!

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

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

Расположение разделов на диске сильно зависит от потребностей системы и файловой системы (файловых систем). Если в ней будет много пользователей, рекомендуется разместить /home на отдельном разделе, что улучшит безопасность и значительно упростит резервное копирование (а также другие операции сопровождения). Если Gentoo устанавливается для использования в роли почтового сервера, следует отделить /var, так как вся почта хранится в каталоге /var. Для игровых серверов потребуется отдельный раздел /opt, так как большинство игровых серверов устанавливается туда. Причины выделения те же, что и для каталога /home: безопасность, резервное копирование и сопровождение.

В большинстве случаев /usr и /var должны быть достаточно большого размера. В /usr хранится большинство приложений, доступных системе, а также исходные коды ядра Linux (в каталоге /usr/src). По умолчанию в /var хранится репозиторий пакетов Gentoo (расположенный в /var/db/repos/gentoo), который, в зависимости от файловой системы, занимает около 650 МиБ дискового пространства. Оценка этого пространства не включает каталоги /var/cache/distfiles и /var/cache/binpkgs, в которых будут скапливаться архивы исходных кодов и (не обязательно) двоичных пакетов, которые будут формироваться в самой системе.

Сколько именно и какого объёма разделов нужно системе — всё зависит от сочетания различных факторов, которые необходимо принимать во внимание. Наличие отдельных разделов или томов имеет следующие плюсы:

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


Однако у множества разделов также есть недостатки:

  • Если они не настроены правильно, может получиться так, что будет огромное количество свободного места на одном разделе и нехватка на другом.
  • Отдельный раздел для /usr/ может потребовать загрузки с initramfs, чтобы смонтировать раздел прежде, чем запустятся другие загрузочные сценарии. Так как сборка initramfs выходит за рамки данного руководства, мы рекомендуем новичкам не создавать отдельный раздел для /usr/.
  • Также существует лимит в 15 разделов для SCSI и SATA, если только на диске не используются метки GPT.
Заметка
Если планируется использовать systemd в качестве системы инициализации и управления службами, то при загрузке системы должен быть доступен каталог /usr, либо как часть корневой файловой системы, либо смонтированный через initramfs.

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

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

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

Как правило, рекомендуется создавать пространство подкачки с размером в два раза больше оперативной памяти (ОЗУ). Для систем с несколькими дисками, целесообразно создать по одному разделу подкачки на каждом диске, чтобы их можно было использовать для параллельных операций чтения/записи. Чем быстрее диск может подкачивать, тем быстрее система будет работать, когда ей необходимо прочитать данные с пространства подкачки. При выборе между жестким диском и твердотельным накопителем, с точки зрения производительности лучше создать пространство подкачки на SSD. Также вы можете использовать файлы подкачки вместо разделов подкачки; в основном это необходимо для систем с очень ограниченным дисковым пространством.


Использование 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.

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). Следующий пример показывает как удалить слайс (в примере мы используем '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 нет необходимости создавать отдельный загрузочный слайс. Однако, нельзя использовать первый цилиндр, так как там будет размещаться образ aboot.

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

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.

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 ГБ. Используйте 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

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



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

Предупреждение
При использовании SSD или NVMe диска, пожалуйста, проверьте наличие обновлений для прошивки. В частности, некоторые SSD от Intel (600p и 6000p) нуждаются в обновлении прошивки для исправления критических ошибок, чтобы не допустить повреждение данных из-за особенностей использования I/O в XFS (не по вине самой файловой системы). Программа smartctl умеет отображать модель и версию прошивки.

Введение

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

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

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

btrfs
Файловая система нового поколения. Предоставляет множество продвинутых функций, таких как мгновенные снимки, самовосстановление с помощью контрольных сумм, поддержка прозрачного сжатия, подтомов и интегрированный RAID. Ядра старше ветки 5.4 не обеспечивают безопасную работу btrfs, так как исправления наиболее серьёзных проблем стабильности появились только в более поздних ветках долговременной поддержки (LTS) ядра. RAID 5/6 и quota groups небезопасны на всех версиях btrfs.
ext4
Ext4 является стабильной файловой системой общего применения для всех платформ, хотя в ней отсутствуют современные возможности по типу «reflinks».
f2fs
Файловая система (Flash-Friendly File System) была создана Samsung для использования на NAND-накопителях. Она может быть достойным выбором при установке на microSD карту, USB-накопитель или другие накопители.
XFS
Файловая система с журналированием метаданных, которая поставляется с мощным набором функций и оптимизирована для масштабируемости. Она непрерывно обновляется, обрастая новым возможностями. Единственным недостатком является то, что разделы с XFS пока нельзя уменьшать (хотя и над этим ведётся работа). Примечательно, что XFS поддерживает «reflinks» и механизм «копирование при записи» (Copy-on-Write, CoW), что весьма полезно для Gentoo систем из-за частых и/или больших компиляций, которые совершает пользователь. XFS является рекомендуемой современной файловой системой общего назначения для всех платформ. Для неё требуется раздел размером не менее 300 МБ.
VFAT
Так же известная как FAT32, поддерживается Linux, но не имеет поддержку стандартных файловых разрешений UNIX. В основном используется для взаимодействия или взаимозаменяемости с другими операционными системами (в основном Microsoft Windows и Apple macOS), но также необходима при использовании некоторых системных прошивок загрузчика (например, UEFI). Пользователям систем с UEFI должны использовать эту файловую систему для EFI System Partition, чтобы иметь возможность загружаться.
NTFS
New Technology Filesystem является основной файловой системой для Microsoft Windows начиная с NT 3.5. Как и VFAT, она не сохраняет настройки UNIX разрешений и расширенные атрибуты, необходимые для нормальной работы BSD или Linux, поэтому в большинстве случаев её не следует использоваться в качестве файловой системы для корневого раздела. Её следует использовать только для взаимодействия или обмена данными с системами Microsoft Windows (обратите внимание на акцент слова только).

Более подробную информацию о файловых системах можно найти в (поддерживаемой сообществом) статье Файловая система.

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

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

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

Файловая система Команда для создания Присутствует в «живом» окружении? Пакет
btrfs mkfs.btrfs Да sys-fs/btrfs-progs
ext4 mkfs.ext4 Да sys-fs/e2fsprogs
f2fs mkfs.f2fs Да sys-fs/f2fs-tools
xfs mkfs.xfs Да sys-fs/xfsprogs
vfat mkfs.vfat Да sys-fs/dosfstools
NTFS mkfs.ntfs Да sys-fs/ntfs3g
Важно
The handbook recommends new partitions as part of the installation process, but it is important to note running any mkfs command will erase any data contained within the partition. When necessary, ensure any data that exists within is appropriately backed up before creating a few filesystem.

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

root #mkfs.xfs /dev/sda3

EFI system partition filesystem

The EFI system partition (/dev/sda1) must be formatted as FAT32:

root #mkfs.vfat -F 32 /dev/sda1

Legacy BIOS boot partition filesystem

Systems booting via legacy BIOS with a MBR/DOS disklabel can use any filesystem format supported by the bootloader.

For example, to format with XFS:

root #mkfs.xfs /dev/sda1

Small ext4 partitions

При использовании ext4 на малых разделах (менее 8 ГиБ) файловая система должна быть создана с особыми параметрами для резервирования достаточного количества индексных дескрипторов (inodes). Для этого используется одна из следующих команд:

root #mkfs.ext4 -T small /dev/<раздел>

Данная команда учетверит количество индексных дескрипторов для такой ФС, так как мы уменьшили количество байт на каждый дескриптор («bytes-per-inode») с 16 кб до 4 кб.

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

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

root #mkswap /dev/sda2

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

root #swapon /dev/sda2

This 'activation' step is only necessary because the swap partition is newly created within the live environment. Once the system has been rebooted, as long as the swap partition is properly defined within fstab or other mount mechanism, swap space will activate automatically.

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

Заметка
Installations which were previously started, but did not finish the installation process can resume the installation from this point in the handbook. Use this link as the permalink: Resumed installations start here.
Совет
Если в качестве установочного носителя используется не Gentoo-образ, необходимо дополнительно создать точку монтирования:
root #mkdir --parents /mnt/gentoo
root #mkdir --parents

For EFI installs only, the ESP should be mounted under the root partition location:

root #mkdir --parents

Continue creating additional mount points necessary for any additional (custom) partition(s) created during previous steps by using the mkdir command.

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

Mount the root partition:

root #mount /dev/sda3

Continue mounting additional (custom) partitions as necessary using the mount command.

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

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