Handbook:X86/Installation/System

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


Информация о файловой системе

О файле fstab

В Linux все разделы, используемые системой, должны быть записаны в файле /etc/fstab. Этот файл содержит информацию о точках монтирования разделов (где они должны быть видны в структуре файловой системы), как они должны быть подключены, а также специальные параметры (автоматическое подключение или нет, может ли пользователь их подключать или нет и так далее).

Создание файла fstab

В файле /etc/fstab используется синтаксис, напоминающий таблицу. Каждая строка состоит из шести полей, которые разделены пропусками (пробелами, отступами или смесь этого). Каждое поле имеет своё значение:

  1. Первое поле содержит блочное устройство (или удалённую файловую систему), которое следует примонтировать. Для экземпляров блочных устройств возможно использование различных идентификаторов, включая путь к устройству, метки файловой системы, метки раздела и UUID
  2. Второе поле содержит точку монтирования, к которой следует монтировать раздел.
  3. Третье поле содержит тип файловой системы, используемой разделом.
  4. Четвёртое поле содержит параметры, используемые командой mount во время монтирования. Так как у каждой файловой системы могут быть собственные уникальные параметры, рекомендуется прочитать man-страницу команды mount (man mount), чтобы получить полный список всех возможных параметров. Параметры монтирования разделяются запятыми.
  5. Пятое поле используется командой dump для определения того, нуждается ли раздел в дампе или нет. Обычно это поле содержит 0 (ноль).
  6. Шестое поле используется командой fsck для определения порядка проведения проверки ошибок файловой системы, если система была отключена некорректно. Для корневой файловой системы необходимо указывать 1, для остальных — 2 (или 0, если проверка не требуется вовсе).
Важно
Файл /etc/fstab, который предоставляется в файлах stage Gentoo по умолчанию, не является валидным файлом fstab, а представлен в качестве шаблона, который может быть использован для ввода актуальных значений.
root #nano /etc/fstab

В оставшейся части текста в качестве идентификаторов блочных устройств разделов будут использоваться /dev/sd*.

Метки файловых систем и UUID

И MBR (BIOS), и GPT поддерживают как метки (labels), так и UUID файловой системы. Эти свойства могут быть определены в /etc/fstab в качестве альтернативы для команды mount для определения блочного устройства. Такие свойства используются при попытке найти и примонтировать блочные устройства. Метки и UUID файловой системы определяются через префиксы LABEL и UUID. Их можно посмотреть командой blkid:

root #blkid
Предупреждение
Если файловая система внутри раздела будет полностью затёрта (wipe), то значение меток и UUID файловой системы также будут изменены или удалены.

Благодаря уникальности UUID, читателям, использующим таблицу разделов в стиле MBR, рекомендуется использовать UUID вместо меток для определения монтируемых томов в /etc/fstab.

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

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

У пользователей, которые пошли по пути использования GPT, есть несколько более надёжных вариантов для определения разделов в /etc/fstab. Метки разделов и UUID разделов могут быть использованы для идентификации разделов блочного устройства, независимо от того, какая файловая система была выбрана для самого раздела. Метки и UUID раздела определяются через префиксы PARTLABEL и PARTUUID соответственно. Их можно увидеть в терминале с помощью команды blkid:

root #blkid

Хотя это не всегда верно для меток разделов, использование UUID для идентификации раздела в fstab обеспечивает гарантию того, что загрузчик не собьётся при поиске определённого тома, даже если файловая система будет изменена в будущем. Использование по умолчанию старых файлов блочных устройств (/dev/sd*N) для определения разделов в fstab будет рискованно в системах, которые часто перезагружаются и в которых регулярно добавляются и удаляются блочные устройства SATA.

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


Давайте посмотрим, как записать настройки для /boot/ раздела. Это просто пример, поэтому запись необходимо изменить в соответствии с ранее выбранной схемой разделов. В нашем x86 примере, /boot/ является обычным /dev/sda2 разделом с файловой системой ext4. Необходимо проверять его во время загрузки, поэтому мы запишем следующее:

ФАЙЛ /etc/fstabПример строки /boot для /etc/fstab
# Исправьте все различия в форматировании, созданные на этапе "Подготовка дисков".
/dev/sda2   /boot     ext4    defaults        0 2

Из соображения безопасности некоторые пользователи могут не захотеть автоматически монтировать раздел /boot/. Для этого следует заменить defaults на noauto. Это будет означать, что раздел придётся монтировать каждый раз, когда понадобится его использовать.

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

Ниже приведён более подробный пример файла /etc/fstab:


ФАЙЛ /etc/fstabПолный пример /etc/fstab
# Исправьте все различия в форматировании и добавьте дополнительные разделы, созданные на этапе "Подготовка дисков".
/dev/sda2   /boot        ext4    defaults,noatime     0 2
/dev/sda3   none         swap    sw                   0 0
/dev/sda4   /            ext4    noatime              0 1
  
/dev/cdrom  /mnt/cdrom   auto    noauto,user          0 0

При использовании auto в третьем поле команда mount попытается автоматически определить тип файловой системы. Это рекомендуется для отсоединяемых устройств, которые могут использовать разные файловые системы. Параметр user в четвертом поле позволяет монтировать компакт-диски обычными пользователями.

Большинство пользователей, возможно, захотят добавить параметр noatime, что приведет к более высокой производительности, так как не будет считываться и меняться атрибут времени доступа к файлам (который, в общем и целом, обычно не нужен). Это также рекомендуется владельцам твердотельных накопителей (SSD).

Совет
Из–за ухудшения производительности, не рекомендуется устанавливать опцию монтирования discard в /etc/fstab. Вместо этого планируйте удаление блоков на периодической основе с помощью планировщика заданий, такого, как cron, или с помощью таймера (systemd). Смотрите статью Periodic fstrim jobs для более подробной информации.

Дважды проверьте файл /etc/fstab, сохраните его и выйдите из редактора, чтобы продолжить дальше.

Информация о сети

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

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

Для более конкретной настройки сети systemd, пожалуйста, обратитесь к разделу Сеть статьи systemd.

Имя хоста

Первое решение, которое предстоит принять администратору системы, это как назвать его/её компьютер. Кажется, что это является довольно лёгким решением, но многие пользователи испытывают трудности с поиском подходящего имени для своего компьютера. Чтобы не мешкать слишком долго, выберите любое имя — его можно будет сменить позже. Например, в приведённом ниже примере используется имя хоста tux.

Установка имени хоста (OpenRC или systemd)

root #echo tux > /etc/hostname

systemd

Чтобы установить имя хоста для системы с уже запущенным systemd, можно воспользоваться утилитой hostnamectl.

Например, чтобы установить имя хоста на "tux", необходимо запустить:

root #hostnamectl hostname tux

Просмотрите помощь, используя команду hostnamectl --help или man 1 hostnamectl.

Сеть

Существует много способов настройки сетевых интерфейсов. Этот раздел покрывает только некоторые из них. Выберите тот, которые кажется более подходящим для вашей установки.

DHCP через dhcpcd (любая система инициализации)

В большинстве локальных сетей работает сервер DHCP. В этом случае для получения IP-адреса рекомендуется использовать программу dhcpcd.

Чтобы установить:

root #emerge --ask net-misc/dhcpcd

Чтобы включить и затем запустить сервис на системах с OpenRC:

root #rc-update add dhcpcd default
root #rc-service dhcpcd start

Чтобы включить и одновременно запустить сервис на системах с systemd:

root #systemctl enable --now dhcpcd

После выполнения этих шагов при следующей загрузке системы dhcpcd должен получить IP-адрес от DHCP-сервера. Подробнее см. в статье Dhcpcd.

netifrc (OpenRC)

Совет
Это один конкретный способ настройки сети, используя Netifrc с OpenRC. Существуют и другие способы для более простой настройки, такие как Dhcpcd.
Настройка сети

Во время установки Gentoo Linux сеть была уже настроена, однако она была настроена для самого установочного окружения, а не для системы. Сейчас мы устраним это упущение.

Заметка
Больше информации о настройке сети, в том числе об объединении интерфейсов, создании мостов, настройке 802.1Q VLAN и беспроводной сети, рассматриваются в разделе Настройка сети.

Все настройки сети собраны в файле /etc/conf.d/net. В нём используется простой, но, возможно, пока ещё непонятный синтаксис. Не беспокойтесь! Обо всём мы расскажем далее. Полностью документированные примеры, описывающие множество разных конфигураций, доступны в /usr/share/doc/netifrc-*/net.example.bz2.

Сначала установите net-misc/netifrc:

root #emerge --ask --noreplace net-misc/netifrc

По умолчанию используется DHCP. Но для того, чтобы он заработал, необходимо установить DHCP-клиент. Это будет описано далее в разделе «Установка необходимым системных пакетов».

Если сетевое соединение требует дополнительной настройки DHCP или вовсе не использует DHCP, тогда откройте /etc/conf.d/net:

root #nano /etc/conf.d/net

Настройте оба параметра config_eth0 и routes_eth0, введя информацию о IP-адресе и информацию о маршрутизации:

Заметка
Мы предполагаем, что сетевой интерфейс будет называться eth0, однако это во многом зависит от системы. Будем считать, что интерфейс будет называться так же, как он назывался при загрузке с установочного носителя, если установочный носитель достаточно свежий. Больше информации можно найти в разделе Именование сетевых интерфейсов.
ФАЙЛ /etc/conf.d/netНастройка статического IP-адреса
config_eth0="192.168.0.2 netmask 255.255.255.0 brd 192.168.0.255"
routes_eth0="default via 192.168.0.1"

Для использования DHCP настройте config_eth0:

ФАЙЛ /etc/conf.d/netНастройка для работы DHCP
config_eth0="dhcp"

Для получения списка дополнительных настроек прочтите /usr/share/doc/netifrc-*/net.example.bz2. Не забудьте также прочитать man-страницу для DHCP-клиента, если требуется сделать дополнительные настройки.

Если в системе имеются несколько сетевых интерфейсов, то повторите предыдущие шаги для config_eth1, config_eth2, и так далее.

Теперь сохраните настройки и выйдите из редактора, чтобы продолжить далее.

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

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

root #cd /etc/init.d
root #ln -s net.lo net.eth0
root #rc-update add net.eth0 default

Если в системе есть несколько сетевых интерфейсов, то соответствующие файлы net.* должны быть созданы также, как мы сделали это для net.eth0.

Если после загрузки системы выяснилось, что имя сетевого интерфейса (которое в настоящее время указано как eth0) было неверным, выполните следующие действия для исправления:

  1. Измените настройки в файле /etc/conf.d/net, используя правильное название интерфейса (например, enp3s0 или enp5s0 вместо eth0).
  2. Создайте новую символьную ссылку (например, /etc/init.d/net.enp3s0).
  3. Удалите старую символьную ссылку (rm /etc/init.d/net.eth0).
  4. Добавьте новую в уровень запуска по умолчанию.
  5. Удалите старую с помощью rc-update del net.eth0 default.

Файл hosts

Следующим шагом мы дадим Linux сведения о сетевом окружении. Это делается с помощью /etc/hosts, который помогает разрешать имя узла в IP-адреса для узлов, которых нет в сервере имён.

root #nano /etc/hosts
ФАЙЛ /etc/hostsВнесение сетевой информации
# Это обязательные настройки для текущей системы
127.0.0.1     tux.homenetwork tux localhost
  
# Дополнительные настройки для других систем в сети
192.168.0.5   jenny.homenetwork jenny
192.168.0.6   benny.homenetwork benny

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

Опционально: поддержка PCMCIA-устройств

Для систем на x86, которым необходима поддержка PCMCIA, необходимо установить пакет sys-apps/pcmciautils.

root #emerge --ask sys-apps/pcmciautils

Системная информация

Пароль суперпользователя

Изменить пароль суперпользователя (с именем root) можно с помощью команды passwd.

root #passwd

Позже будет создан обычный пользователь для повседневных задач.

Настройка инициализации и загрузки

OpenRC

Если вы используете OpenRC, эта система инициализации использует /etc/rc.conf для настройки сервисов, запуска и остановки системы. Откройте /etc/rc.conf и прочтите комментарии в файле. Проверьте настройки и измените их при необходимости.

root #nano /etc/rc.conf

Далее, откройте /etc/conf.d/keymaps для настройки раскладки клавиатуры. Отредактируйте файл и выберите нужную раскладку.

root #nano /etc/conf.d/keymaps

Соблюдайте особую осторожность с переменной keymap. Если выбрать неправильный раскладку, то может получится странный результат при печати текста.

Наконец, отредактируйте /etc/conf.d/hwclock чтобы установить параметры часов. Отредактируйте его в соответствии с личными предпочтениями.

root #nano /etc/conf.d/hwclock

Если аппаратные часы не настроены на время UTC, то в файле необходимо установить clock="local". В противном случае система может отображать неправильное время.

systemd

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

root #systemd-firstboot --prompt --setup-machine-id

Затем пользователи должны запустить systemctl, чтобы сбросить все установленные файлы устройств на предустановленные значения правил:

root #systemctl preset-all --preset-mode=enable-only

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

root #systemctl preset-all

Эти два шага помогут обеспечить плавный переход от среды установщика к первой загрузке системы.