Gentoo Linux ia64 Handbook: Установка Gentoo
Введение
Добро пожаловать
Добро пожаловать в Gentoo! Gentoo — это свободная операционная система на базе Linux, которая может быть автоматически оптимизирована и настроена практически под любые приложения и нужды. Она опирается на экосистему свободного программного обеспечения и не скрывает от пользователей, что находится «под капотом».
Открытость
Основные инструменты в Gentoo написаны на простых языках программирования. Например, Portage, система управления пакетами в Gentoo, написана на языке Python, а ebuild-файлы, которые описывают пакеты для Portage, написаны на сценариях bash. Наши пользователи могут свободно просматривать, изменять и улучшать исходный код всех частей Gentoo.
По умолчанию пакеты модифицируются только тогда, когда это необходимо для исправления ошибок или обеспечения совместимости внутри Gentoo. Они устанавливаются в систему путём компиляции исходного кода, поставляемого авторами пакета (upstream project), в двоичный формат (хотя установка уже собранных пакетов также поддерживается). Конфигурация Gentoo выполняется через текстовые файлы.
По этим и другим причинам, открытость является основополагающим принципом.
Свобода выбора
Свобода выбора является другим основополагающим принципом Gentoo.
Свобода выбора при установке Gentoo прослеживается во всём Руководстве. Системные администраторы могут выбрать две полностью поддерживаемые системы инициализации (собственную OpenRC от Gentoo и systemd от Freedesktop.org), структуру разделов для диска (дисков) хранения, какие файловые системы будут использоваться на дисках, целевой системный профиль, удалить или добавить возможности на глобальном (всей системы) или по-пакетном уровне с помощью USE-флагов, загрузчик, утилиту управления сетью и многое, многое другое.
Следуя своей философии развития, авторы Gentoo стараются не навязывать пользователям определённый системный профиль или среду рабочего стола. Если что-то уже предлагается в экосистеме GNU/Linux, то это, скорее всего, доступно и в Gentoo. Если нет, то мы будем рады видеть это в Gentoo. Для запроса новых пакетов, пожалуйста, сообщите нам в систему отслеживания ошибок (bugtracker) или создайте свой собственный репозиторий ebuild-файлов.
Власть над системой
Будучи операционной системой на основе исходных текстов, Gentoo может быть относительн легко портирована на новые компьютерные архитектуры, а ещё позволяет настраивать все установленные пакеты. Это преимущество отражает еще один основополагающий принцип Gentoo: власть над системой.
Системный администратор, который установил и настроил Gentoo, по сути скомпилировал из исходного кода адаптированную операционную систему. Вся операционная система может быть настроена на двоичном уровне с помощью механизмов, которые регулируются в главном файле настроек для Portage make.conf. При желании, можно вносить небольшие изменения для конкретного пакета или группы пакетов. Более того, с помощью USE-флагов можно включать или отключать множество функций в этих пакетах.
Читателю Руководства важно понять, что именно эти основополагающие принципы делают Gentoo уникальной системой. Принципы контроля над системой, свободы выбора и чрезвычайной открытости требуют усилий, размышлений и стремления при использовании Gentoo.
Как организована установка?
Установку Gentoo можно рассматривать как процедуру из 10 шагов, которым соответствуют определённые главы. Каждый шаг ведёт к достижению определённого результата:
Шаг | Результат |
---|---|
1 | Пользователь находится в рабочей среде, готовой к установке Gentoo. |
2 | Подключение к Интернету готово для установки Gentoo. |
3 | Жёсткие диски готовы к установке Gentoo. |
4 | Подготовлена установочная среда, и пользователь готов переключиться (chroot) в новую среду. |
5 | Развернуты основные пакеты, общие для всех систем Gentoo. |
6 | Установлено ядро Linux. |
7 | Создана основная часть конфигурационных файлов системы. |
8 | Установлены необходимые системные средства. |
9 | Установлен и настроен выбранный начальный загрузчик. |
10 | Только что установленное окружение Gentoo готово к изучению. |
Каждый раз, когда будет предоставлен выбор, в Руководстве будут приведены все плюсы и минусы каждого варианта. Хотя текст будет продолжаться с использованием выбора по умолчанию (он помечен как «По умолчанию: » в заголовке), другие возможности также документированы (они помечены как «Альтернатива: » в заголовке). Не думайте, что выбор по умолчанию является рекомендацией Gentoo. Это всего лишь тот вариант, который, по мнению Gentoo, будет использовать наибольшее число пользователей.
Иногда есть возможность выполнить необязательный шаг. Такие шаги помечены как «Необязательно: » и не требуются для установки Gentoo. Однако, некоторые из них будут зависеть от ранее принятого решения. Мы будем сообщать об этом, как в момент выбора, так и непосредственно перед описанием необязательных шагов.
Варианты установки Gentoo
Gentoo можно установить разными способами. Вы можно загрузить и установить Gentoo с помощью официальных установочных носителей, таких как наши загрузочные ISO-образы. Установочный носитель можно записать на USB-носитель или предоставить к нему доступ из загруженного с сети окружения. Gentoo также можно установить с неофициального носителя, например, из уже установленного дистрибутива или не-Gentoo загрузочного диска (например, Knoppix).
В этом руководстве описывается установка с официального установочного носителя Gentoo, или, в некоторых случаях, с помощью сетевой загрузки.
Для помощи по другим вариантам установки, включая использование не-Gentoo загрузочных носителей, прочитайте статью Альтернативные методы установки.
Также существует статья Полезные советы по установке Gentoo, которая в некоторых случаях может быть полезна.
Проблемы
Если при установке вы столкнулись с проблемой (или с ошибкой в документации по установке), посетите нашу систему отслеживания ошибок и проверьте, известно ли об этой ошибке. Если это не так, то создайте отчет об ошибке, чтобы мы о ней позаботились. Не бойтесь разработчиков, которым выпадает работа над вашими ошибками — людей они (обычно) не едят.
Хотя этот документ посвящён определенной архитектуре, в нём могут упоминаться и другие архитектуры, так как значительная часть Руководства Gentoo использует общий текст для всех архитектур (чтобы не дублировать работу). Во избежание путаницы, такие упоминания сокращены до минимума.
Если есть сомнения в том, является ли ошибка пользовательской (сделана какая-то погрешность, хотя внимательно прочитали документацию) или программной (какую-то ошибку совершили мы, несмотря на тщательное тестирование установки/документации), то не стесняйтесь, заходите на канал #gentoo (webchat) сервера irc.libera.chat. Разумеется, мы будем рады пообщаться и по любым другим вопросам, так как наш канал освещает всё, что связано с Gentoo.
Кстати говоря, если у вас есть вопрос, касающийся Gentoo, сначала загляните в статью Часто задаваемые Вопросы. Также существуют списки Часто задаваемых Вопросов на форумах Gentoo.
Аппаратные требования
Прежде чем начать, перечислим аппаратные требования, необходимые для успешной установки Gentoo на компьютере с архитектурой ia64.
Практически любой компьютер с архитектурой IA64 может загрузить Gentoo. В данный момент для загрузки у нас есть только Live CD, поэтому в компьютере должен быть установленный CDROM.
Установочный носитель Gentoo Linux
Вы можете использовать и другие установочные носители, отличающиеся от Gentoo, хотя всё же рекомендуется использовать официальные. Установочный носитель Gentoo гарантирует наличие необходимых инструментов. При использовании других установочных носителей можно сразу перейти в раздел Подготовка дисков.
Минимальный установочный компакт-диск Gentoo
Минимальный установочный CD — это загрузочный образ: самодостаточная среда Gentoo. Он позволяет загружать Linux прямо с компакт-диска или других установочных носителей. При запуске определяются устройства и загружаются соответствующие драйверы. Этот образ сопровождается разработчиками Gentoo и позволяет установить Gentoo при наличии активного Интернет-соединения.
Минимальный установочный диск называется install-ia64-minimal-<release>.iso.
Нерегулярный Gentoo LiveDVD
Иногда создается специальный образ DVD, который можно использовать для установки Gentoo. Инструкции в этой главе предназначены для минимального установочного CD, поэтому при загрузке с LiveDVD что-то может отличаться в деталях. Однако LiveDVD (или любое другое официальное окружение Gentoo Linux) поддерживает выход в командую строку просто командой sudo su - или sudo -i в терминале.
Что такое stage?
Архив stage3 — это архив, содержащий минимальное окружение Gentoo. Архивы stage3 предназначены для продолжения установки Gentoo в соответствии с инструкциями данного руководства. Когда-то в Руководстве Gentoo описывались варианты установки с использованием любого из трех существующих архивов stage. Gentoo больше не предлагает для загрузки архивы stage1 и stage2, поскольку они предназначены (в основном) для внутреннего использования и для начального развёртывания Gentoo на новые архитектуры.
Архивы stage3 можно загрузить из releases/ia64/autobuilds/ или с любого из официальных зеркал Gentoo. Файлы stage часто обновляются и не поставляются в официальном установочном образе.
Скачивание
Получение образа
Основной установочный образ, используемый Gentoo Linux — это минимальный установочный CD, на котором находится загружаемое, очень маленькое окружение Gentoo Linux. Это окружение содержит все необходимые утилиты для установки Gentoo Linux. Сами образы CD можно скачать со страницы загрузки (рекомендуется) или самостоятельно найдя образ ISO, доступном на одном из множества зеркал.
При загрузке с зеркала минимальные установочные компакт-диски можно найти следующим образом:
- Перейдите в каталог releases/
- Выберите подходящую архитектуру (как архитектуру ia64/)
- Выберите каталог autobuilds/
- Для архитектур amd64 и x86 выберите либо каталог current-install-amd64-minimal/, либо каталог current-install-x86-minimal/ (соответственно). Для всех других архитектур выберите каталог current-iso/.
У некоторых архитектур, таких как arm, mips и s390, нет минимального установочного компакт-диска. На данный момент проект Gentoo Release Engineering не создаёт .iso файлы для этих архитектур.
В этом каталоге находится файл установочного образа, который оканчивается на .iso. Например, посмотрите на следующий список:
[DIR] hardened/ 05-Dec-2014 01:42 -
[ ] install-ia64-minimal-20141204.iso 04-Dec-2014 21:04 208M
[ ] install-ia64-minimal-20141204.iso.CONTENTS 04-Dec-2014 21:04 3.0K
[ ] install-ia64-minimal-20141204.iso.DIGESTS 04-Dec-2014 21:04 740
[TXT] install-ia64-minimal-20141204.iso.asc 05-Dec-2014 01:42 1.6K
[ ] stage3-ia64-20141204.tar.bz2 04-Dec-2014 21:04 198M
[ ] stage3-ia64-20141204.tar.bz2.CONTENTS 04-Dec-2014 21:04 4.6M
[ ] stage3-ia64-20141204.tar.bz2.DIGESTS 04-Dec-2014 21:04 720
[TXT] stage3-ia64-20141204.tar.bz2.asc 05-Dec-2014 01:42 1.5K
В приведённом примере файл install-ia64-minimal-20141204.iso и есть минимальный установочный компакт-диск. Но как можно увидеть, существуют и другие связанные с ним файлы:
- Текстовый файл .CONTENTS, содержащий список всех файлов на установочном образе. Данный файл может использоваться для проверки того, существует ли конкретная прошивка или конкретный драйвер на установочном образе без его загрузки.
- Файл .DIGESTS, содержащий контрольные суммы файла ISO, с использованием различных форматов/алгоритмов хэширования. Данный файл можно использовать для проверки, поврежден ли скачанный файл ISO.
- Файл .asc, содержащий криптографическую цифровую подпись файла ISO. Это может использоваться как для проверки того, поврежден ли скачанный файл ISO, так и для проверки того, что данная закачка действительно предоставлена командой Gentoo Release Engineering, и не была подделана.
Пока не обращайте внимания на остальные файлы, находящиеся в данном каталоге — про них мы поговорим по мере установки системы. Скачайте файл .iso, и, если нужна проверка скачанных файлов, также соответствующий ему файл .iso.asc. Файл .CONTENTS скачивать необязательно, так как инструкции по установке не описывают его использования, а файл .DIGESTS необязателен, если цифровая подпись в файле .iso.asc проверена.
Проверка скачанных файлов
Это необязательный шаг и не требуется для установки Gentoo Linux. Однако его рекомендуется выполнить, чтобы удостовериться, что скачанный файл не поврежден и действительно был предоставлен командой Gentoo Infrastructure.
Файл .asc содержит криптографическую подпись для файла ISO. Проверив его, можно убедиться, что что установочный файл предоставлен командой Gentoo Release Engineering и он не повреждён или изменён.
Проверка на Microsoft Windows
Чтобы проверить криптографическую подпись, можно использовать такие программы, как GPG4Win. После установки необходимо импортировать открытые ключи команды Gentoo Release Engineering. Список ключей находится на странице сигнатур. После импорта пользователь может проверить подпись, указанную в файле .asc.
Проверка на Linux
На системе с Linux самым распространённым способом проверки криптографической подписи является использование программы app-crypt/gnupg. После установки данного пакета, можно использовать следующую команду для проверки криптографической подписи, указанной в файле .asc.
Сначала скачайте правильный набор ключей со страницы сигнатур:
user $
gpg --keyserver hkps://keys.gentoo.org --recv-keys 0xBB572E0E2D182910
gpg: ключ BB572E0E2D182910: импортирован открытый ключ "Gentoo Linux Release Engineering (Automated Weekly Release Key) <releng@gentoo.org>" gpg: Всего обработано: 1 gpg: импортировано: 1
Либо вы можете использовать WKD для загрузки ключа:
user $
gpg --auto-key-locate=clear,nodefault,wkd --locate-key releng@gentoo.org
gpg: ключ 9E6438C817072058: импортирован открытый ключ "Gentoo Linux Release Engineering (Gentoo Linux Release Signing Key) <releng@gentoo.org>" gpg: ключ BB572E0E2D182910: импортирован открытый ключ "Gentoo Linux Release Engineering (Automated Weekly Release Key) <releng@gentoo.org>" gpg: Всего обработано: 2 gpg: импортировано: 2 gpg: абсолютно доверенных ключей не найдено pub dsa1024 2004-07-20 [SC] [ годен до: 2024-01-01] D99EAC7379A850BCE47DA5F29E6438C817072058 uid [ неизвестно ] Gentoo Linux Release Engineering (Gentoo Linux Release Signing Key) <releng@gentoo.org> sub elg2048 2004-07-20 [E] [ годен до: 2024-01-01]
Если вы используете официальный установочный носитель Gentoo, вы можете импортировать ключ /usr/share/openpgp-keys/gentoo-release.asc (предоставляется пакетом sec-keys/openpgp-keys-gentoo-release):
user $
gpg --import /usr/share/openpgp-keys/gentoo-release.asc
gpg: создан каталог '/home/larry/.gnupg' gpg: создан щит с ключами '/home/larry/.gnupg/pubring.kbx' gpg: ключ DB6B8C1F96D8BF6D: 2 подписи не проверены за отсутствием ключа gpg: /home/servers/.gnupg/trustdb.gpg: создана таблица доверия gpg: ключ DB6B8C1F96D8BF6D: импортирован открытый ключ "Gentoo ebuild repository signing key (Automated Signing Key) <infrastructure@gentoo.org>" gpg: ключ 9E6438C817072058: 3 подписи не проверены за отсутствием ключа gpg: ключ 9E6438C817072058: импортирован открытый ключ "Gentoo Linux Release Engineering (Gentoo Linux Release Signing Key) <releng@gentoo.org>" gpg: ключ BB572E0E2D182910: 1 подпись не проверена за отсутствием ключа gpg: ключ BB572E0E2D182910: импортирован открытый ключ "Gentoo Linux Release Engineering (Automated Weekly Release Key) <releng@gentoo.org>" gpg: ключ A13D0EF1914E7A72: 1 подпись не проверена за отсутствием ключа gpg: ключ A13D0EF1914E7A72: импортирован открытый ключ "Gentoo repository mirrors (automated git signing key) <repomirrorci@gentoo.org>" gpg: Всего обработано: 4 gpg: импортировано: 4 gpg: абсолютно доверенных ключей не найдено
Далее проверьте криптографическую подпись:
user $
gpg --verify install-ia64-minimal-20141204.iso.asc
gpg: Signature made Fri 05 Dec 2014 02:42:44 AM CET gpg: using RSA key 0xBB572E0E2D182910 gpg: Good signature from "Gentoo Linux Release Engineering (Automated Weekly Release Key) <releng@gentoo.org>" [unknown] gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: 13EB BDBE DE7A 1277 5DFD B1BA BB57 2E0E 2D18 2910
Чтобы быть абсолютно уверенным в том, что всё верно, сверьте указанные отпечатки с отпечатками на странице сигнатур Gentoo.
Запись диска
Конечно, запустить установку Gentoo Linux загруженного ISO-файла просто так не получится. Файл ISO необходимо записать на компакт-диск для загрузки с него, но таким образом, чтобы записать содержимое файла, а не как файл сам по себе. Ниже есть несколько распространенных способов, более подробные инструкции можно найти в ЧаВо разделе по записи файлов ISO.
Прожиг в Microsoft Windows 7 и выше
Microsoft Windows версии 7 и выше могут как монтировать, так и записывать ISO-образы на оптические носители без использования стороннего программного обеспечения. Просто вставьте записываемый диск, перейдите к загруженным файлам ISO, щелкните правой кнопкой мыши файл по файлу и выберите "Записать образ диска".
Прожиг в Linux
В Linux ISO-образы можно записать командой cdrecord из пакета app-cdr/cdrtools.
Чтобы прожечь файл ISO на CD в устройстве /dev/sr0 (это первое устройство для CD в системе — замените его на правильное, если необходимо):
user $
cdrecord dev=/dev/sr0 install-ia64-minimal-20141204.iso
Пользователи, которые предпочитают графический интерфейс, могут использовать K3B из пакета kde-apps/k3b. В K3B перейдите в раздел Tools и выберите Burn CD Image.
Загрузка
Загрузка с установочного компакт-диска
Как только вы записали установочный компакт-диск, пришло время с него загрузиться. Удалите все компакт-диски из приводов, и вставьте установочный компакт-диск Gentoo. Перезагрузите систему, и подождите, пока прошивка EFI загрузится на консоли. Опция, которую необходимо выбрать, различается в зависимости от оборудования.
В большинстве реализаций опция будет присутствовать непосредственно в первом меню (Менеджер загрузки EFI, EFI Boot Manager). Слова могут быть разными, но обычно будет что-либо вроде "CD Boot", "Removable Media Boot" или "Internal Bootable DVD". Выберите данную опцию.
Если реализация EFI не предоставляет такой опции, загрузитесь с компакт-диска, используя консоль EFI. Все реализации имеют опцию для того, чтобы войти в консоль из меню менеджера загрузки. Выберите данную опцию. Консоль EFI покажет список блочных устройств, которые можно использовать (blkn:), а также список файловых систем, к которым консоль EFI может получить доступ (fsn:)
В большинстве случаев необходимо выбрать fs0:. Если система опознала CD-привод, то будет присутствовать одна запись fsn для привода компакт-дисков (путь устройства для компакт-диска в EFI будет содержать в себе слово CDROM). Введите fsn:, заменив n на необходимое число, и не забыв про двоеточие, а затем нажмите клавишу Enter. Затем просто введите elilo
, и нажмите клавишу Enter.
Появится загрузочное сообщение ELILO и попросит ввести ядро для загрузки, а также дополнительные параметры для передачи командной строке ядра. В большинстве случаев просто нажмите клавишу Enter или подождите пять секунд. На загрузочном компакт-диске IA64 поставляется только одно ядро - ядро Gentoo.
Представлены также несколько псевдонимов для ядра, которые добавляют некоторые опции в командную строку ядра. Их можно использовать вместо ядра Gentoo по умолчанию, в зависимости от оборудования:
- Опция gentoo-serial включает последовательную консоль на первом последовательном порту (ttyS0) на скорости 9600 бод. Это может быть необходимым на некоторых старых реализациях EFI, где ядро не может определить, какую консоль использовать. Попробуйте использовать данную опцию, если при загрузке с ядром Gentoo по умолчанию на вывод ничего не попадает, или если используется последовательная консоль. Если последовательная консоль подсоединена не к первому последовательному порту, выберите консоль вручную, набрав gentoo console=ttyS#,9600 где # это номер последовательного порта.
- Опция gentoo-ilo включает последовательную консоль на последовательном порту ttyS3 со скоростью 9600 бод. Этот вариант необходимо использовать при установке с использованием возможности удаленной консоли HP iLO.
- Опция gentoo-sgi включает последовательную консоль на последовательном порту ttySG0 на скорости 115200 бод. Это необходимо только на компьютерах SGI; если консоль правильно выбрана в настройках EFI по умолчанию, либо если используется видео-консоль, данная опция не требуется.
Также возможно использование дополнительных опций ядра. Они представляют из себя необязательные настройки, чтобы (де)активировать что-либо по вашему желанию.
Опции железа | |
---|---|
acpi=on | Это загружает поддержку ACPI, а также запускает демон acpid при загрузке. Это необходимо только если ваша система требует ACPI для нормальной работы. Это не необходимо для поддержки Hyperthreading. |
acpi=off | Полностью отключает ACPI. Это полезно на некоторых старых системах, а также необходимо для использования APM. Это также отключит любую поддержку HyperThreading вашего процессора. |
console=X | Эта опция устанавливает доступ по последовательной консоли. Первая опция это устройство, обычно ttyS0 на x86, за которой следуют любые опции соединения, разделенные запятами. Опции по умолчанию 9600,8,n,1. |
dmraid=X | Это позволяет передавать опции в устройство-распределяющую RAID-подсистему. Опции должны находиться в кавычках. |
doapm | Это загружает поддержку APM драйвера. Для этого вы также должны использовать acpi=off .
|
dopcmcia | Это загружает поддержку для PCMCIA и железа Cardbus, а также запускает cardmgr для PCMCIA при загрузке. Это необходимо только при загрузке с устройств PCMCIA/Cardbus. |
doscsi | Это загружает поддержку для большинства SCSI-контроллеров. Также это требование для загрузки большинства USB-устройств, так как они используют подсистему SCSI ядра. |
sda=stroke | Это позволяет вам распределять место на всем жестком диске, даже если BIOS не поддерживает большие диски. Данная опция используется только на машинах со старым BIOS. Замените sda на устройство, для которого нужно включить данную опцию. |
ide=nodma | Это заставляет отключить DMA в ядре, что необходимо некоторым чипсетам IDE, а также некоторым устройствам CDROM. Если ваша система испытывает трудности при чтении с вашего IDE CDROM, попробуйте данную опцию. Кроме того, это также отключает выполнение настроек hdparm по умолчанию. |
noapic | Это отключает Advanced Programmable Interrupt Controller (APIC), который присутствует на новых материнских платах. Известно, что это вызывает некоторые проблемы на старом железе. |
nodetect | Это отключает все автоопределение, проводимое при загрузке с CD, включая автоопределение устройств и опрос DHCP. Это полезно для выполнения отладки неработающего CD или драйвера. |
nodhcp | Это отключает опрос DHCP на найденных сетевых картах. Это полезно в сетях только со статическими адресами. |
nodmraid | Отключает поддержку устройство-распределителя RAID, такого, который используется для IDE/SATA RAID-контроллеров. |
nofirewire | Это отключает загрузку модулей Firewire. Это должно быть необходимо только если ваше железо FireWire вызывает проблемы при загрузке с CD. |
nogpm | Это отключает поддежку мыши в консоли, gpm. |
nohotplug | Это отключает загрузку инициализационных скриптов hotplug и coldplug при загрузке. Это полезно для выполнения отладки неработающего CD или драйвера. |
nokeymap | Это отключает выбор раскладки клавиатуры, используемой для выбора не-US раскладок. |
nolapic | Это отключает локальный APIC на однопроцессорных ядрах. |
nosata | Это отключает загрузку модулей Serial ATA. Это используется, если ваша система испытывает проблемы с подсистемой SATA. |
nosmp | Это отключает SMP, или Symmetric Multiprocessing, на ядрах, которые поддерживают SMP. Это полезно для отладки проблем, связанных с SMP на некоторых драйверах и материнских платах. |
nosound | Это отключает поддержку звука и настроек громкости. Это полезно для систем где поддержка звука вызывает проблемы. |
nousb | Это отключает автозагрузку USB-модулей. Это полезно для отладки проблем с USB. |
slowusb | Это добавляет некоторые дополнительные паузы в процесс загрузки для медленных USB-CDROM'ов, например в IBM BladeCenter. |
Работа с томом/устройством | |
dolvm | Данная опция включает поддержку Linux's Logical Volume Management (LVM). |
Другие опции | |
debug | Включает отладочный код. Это может стать проблемой, так как выводит множество данных на экран. |
docache | Это кэширует всю запускаемую часть CD в ОЗУ, что позволяет вам размонтировать /mnt/cdrom, и смонтировать другой CDROM. Данная опция требует, чтобы у вас было по крайней мере в два раза больше памяти, чем размер CD. |
doload=X | Это заставляет начальный рамдиск загрузить любой обозначенный модуль, а также его зависимости. Замените X на имя модуля. Несколько модулей можно задать через запятую. |
dosshd | Запускает при загрузке sshd, что полезно для автоматических установок. |
passwd=foo | Устанавливает то, что следует за знаком равенства как пароль root, что необходимо для dosshd, так как по умолчанию выбирается случайный пароль root. |
noload=X | Это заставляет начальный рамдиск пропустить загрузку любого обозначенного модуля который может вызывать проблемы. Синтаксис совпадает с опцией doload. |
nonfs | Отключает запуск portmap/nfsmount при загрузке. |
nox | Это заставляет LiveCD, в котором есть X-сервер не запускать X автоматически, а перейти в командную строку. |
scandelay | Это заставляет CD остановиться на 10 секунд в некоторых местах загрузочного процесса, чтобы позволить медленным устройствам инициализироваться и быть доступными для использования. |
scandelay=X | Это позволяет вам задать некоторую задержку, в секундах, которую нужно добавить в некоторые места загрузочного процесса, чтобы позволить медленным устройствам инициализироваться и быть доступными для использования. Замените X на число секунд для паузы. |
Компакт-диск будет проверять опции
no*
до опций do*
, так что опции можно задавать в порядке, в котором они приведены выше.Далее пользователь увидит экран загрузки и индикатор хода выполнения. Если установка происходит на системе, которая использует не американскую раскладку клавиатуры, сразу же нажмите Alt+F1 для переключения в расширенный режим, и следуйте инструкциям. Если за 10 секунд не было сделано никакого выбора, будет выбрана раскладка по умолчанию (US-клавиатура), и процесс загрузки продолжится. Как только процесс загрузки завершится, пользователь автоматически войдет в "живое" окружение Gentoo Linux как пользователь root, суперпользователь. Подсказка для пользователя root отображается на текущей консоли, а переключиться на другую консоль можно нажатием клавиш Alt+F2, Alt+F3 и Alt+F4. Вернитесь к той консоли, с которой вы начинали, нажав Alt+F1.
Дополнительная настройка оборудования
При загрузке с установочного образа определяются все аппаратные устройства и загружаются соответствующие модули ядра для их поддержки. В подавляющем большинстве случаев этого достаточно. Тем не менее в некоторых случаях может не происходить автоматической загрузки модулей ядра, необходимых для системы. Если автоопределение PCI пропустило некоторые аппаратные части системы, соответствующие модули можно загрузить вручную.
В следующем примере загружается модуль 8139too (который поддерживает определенные виды сетевых интерфейсов):
root #
modprobe 8139too
Опционально: Учётные записи пользователей
Если другим людям необходим доступ к среде установки, или есть необходимость запускать команды без прав суперпользователя root на установочном образе (например, общаться с помощью irssi без прав суперпользователя по соображениям безопасности), то необходимо создать дополнительную учётную запись пользователя, а пользователю root задать сложный пароль.
Для изменения пароля root используйте утилиту passwd:
root #
passwd
New password: (Enter the new password) Re-enter password: (Re-enter the password)
Для создания учётной записи пользователя сначала введите учетные данные, следом задайте пароль аккаунту. Для этой задачи используйте команды useradd и passwd.
В следующем примере создаем пользователя с именем john:
root #
useradd -m -G users john
root #
passwd john
New password: (Enter john's password) Re-enter password: (Re-enter john's password)
Для переключения с (текущего) пользователя root на вновь созданный аккаунт пользователя используйте команду su:
root #
su - john
Опционально: Просмотр документации во время установки
TTY
Для просмотра Gentoo Handbook во время установки, необходимо сначала создать учётную запись пользователя, как описано выше. Нажмите Alt+F2 для перехода в новое окно терминала (TTY).
Во время установки можно использовать команду links для просмотра Руководства Gentoo — конечно, только с того момента, как заработает подключение к Интернет.
user $
links https://wiki.gentoo.org/wiki/Handbook:IA64/ru
Чтобы вернуться к первоначальному терминалу, нажмите Alt+F1.
После загрузки в минимальное окружение/образ Gentoo (или версию для администраторов) будут доступны семь окон терминала (TTY). Их можно переключать, удерживая кнопку Alt, а затем нажимая одну из функциональных клавиш от F1 до F7 (по номеру терминала). Это может быть полезно для переключения в другой терминал во время ожидания завершения работы, для открытия документации и т.д.
GNU Screen
Утилита Screen по умолчанию установлена на официальном установочном носителе Gentoo. Для опытных пользователей Linux просмотр инструкций по установке будет более удобен в разных панелях screen, а в разных консолях TTY, как это было описано выше.
Опционально: Запуск демона SSH
Чтобы разрешить другим пользователям доступ к системе во время установки (возможно, для поддержки во время установки, или даже выполнить её удаленно), необходимо предварительно создать учётную запись пользователя (как описывалось ранее) и запустить демон SSH.
Чтобы запустить демон SSH, при использовании системы инициализации OpenRC, выполните следующую команду:
root #
rc-service sshd start
При входе пользователь увидит сообщение о необходимости подтвердить ключ узла этой системы (называемый отпечатком). Такое поведение вполне обычно и происходит при первом подключении к SSH-серверу. Однако позднее, когда когда система будет уже установлена, пользователь, ранее входивший в систему, при повторной попытке получит предупреждение о том, что ключ узла изменился. Это происходит потому, что с точки зрения SSH пользователь теперь входит в другой сервер (а именно в новую систему, а не в живое окружение, использованное при установке). Чтобы заменить ключ узла на клиентской системе, следуйте следующим инструкциям.
Для возможности использования sshd необходимо, чтобы сеть работала должным образом. Для этого перейдите к главе Настройка сети.
Автоматическое определение параметров сети
Может быть, всё уже работает?
Если система подключена к сети Ethernet, в которой есть DHCP-сервер, весьма вероятно, что конфигурация сетевых настроек уже была выполнена автоматически. Если это так, то различные сетевые команды с установочного носителя (например: ssh, scp, ping, irssi, wget, links и многие другие) сразу же будут работать.
Определение имен сетевых интерфейсов
Команда ifconfig
Если сеть была настроена, команда ifconfig должна отобразить один или несколько сетевых интерфейсов (кроме lo). В примере ниже показан eth0:
root #
ifconfig
eth0 Link encap:Ethernet HWaddr 00:50:BA:8F:61:7A inet addr:192.168.0.2 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::50:ba8f:617a/10 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1498792 errors:0 dropped:0 overruns:0 frame:0 TX packets:1284980 errors:0 dropped:0 overruns:0 carrier:0 collisions:1984 txqueuelen:100 RX bytes:485691215 (463.1 Mb) TX bytes:123951388 (118.2 Mb) Interrupt:11 Base address:0xe800
В результате перехода на предсказуемые имена для сетевых интерфейсов название интерфейса может отличаться от старого соглашения о именовании (eth0). В последних установочных носителях сетевые интерфейсы могут отображаться по-другому, например eno0, ens1 или enp5s0. Поищите интерфейс в выводе команды ifconfig IP-адрес которого связан с локальной сетью.
Если в выводе ifconfig нет интерфейсов, попробуйте использовать ту же команду с параметром
-a
. Это параметр выводит все обнаруженные системой сетевые интерфейсы, независимо от их состояния. Если ifconfig -a не даёт никаких результатов, значит либо аппаратное обеспечение неисправно, либо драйвер для сетевого интерфейса не был загружен в ядро. Обе ситуации не рассматриваются данным Руководством. Обратитесь в #gentoo (webchat) для поддержки.Команда ip
Взамен ifconfig для определения сетевых интерфейсов можно использовать ip. В следующем примере показан вывод ip addr (вывод с другой системы, так что показанная информация отличается от предыдущего примера):
root #
ip addr
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether e8:40:f2:ac:25:7a brd ff:ff:ff:ff:ff:ff inet 10.0.20.77/22 brd 10.0.23.255 scope global eno1 valid_lft forever preferred_lft forever inet6 fe80::ea40:f2ff:feac:257a/64 scope link valid_lft forever preferred_lft forever
В приведённом выше примере имя интерфейса следует непосредственно после номера: это eno1.
В оставшейся части данного документа будет считаться, что рабочий сетевой интерфейс называется eth0.
Дополнительно: настройка прокси
Если доступ к Интернету осуществляется через прокси-сервер, необходимо указать настройки прокси во время установки. Указать прокси очень просто: определите переменную, содержащую информацию о прокси-сервере.
Certain text-mode web browsers such as links can also make use of environment variables that define web proxy settings; in particular for the HTTPS access it also will require the https_proxy environment variable to be defined. While Portage will be influenced without passing extra run time parameters during invocation, links will require proxy settings to be set.
В большинстве случаев, достаточно указать переменные с использованием имени сервера. В этом примере мы предположим, что прокси-сервером является proxy.gentoo.org, доступным на порту 8080.
The
#
symbol in the following commands is a comment. It has een added for clarity only and does not need to be typed when entering the commands.Определение HTTP-прокси (для HTTP- и HTTPS-трафика):
root #
export http_proxy="http://proxy.gentoo.org:8080" # Применяется для portage и ссылок
root #
export https_proxy="http://proxy.gentoo.org:8080" # Применяется только для ссылок
Если для прокси требуется имя пользователя и пароль, используйте следующий синтаксис в переменной:
root #
export http_proxy="http://username:password@proxy.gentoo.org:8080" # Применяется для portage и ссылок
root #
export https_proxy="http://username:password@proxy.gentoo.org:8080" # Применяется только для ссылок
Start links using the following parameters for proxy support:
user $
links -http-proxy ${http_proxy} -https-proxy ${https_proxy}
Настройка FTP-прокси:
root #
export ftp_proxy="ftp://proxy.gentoo.org:8080" # Применяется для portage и ссылок
Start links using the following parameter for a FTP proxy:
user $
links -ftp-proxy ${ftp_proxy}
Настройка RSYNC-прокси:
root #
export RSYNC_PROXY="proxy.gentoo.org:8080" # Применяется для portage; ссылки не поддерживают прокси rsync
Проверка сети
Попробуйте проверить DNS-сервер своего провайдера (его адрес можно найти в /etc/resolv.conf) и любой веб-сайт. Эта проверка покажет, что сеть функционирует в полном объёме, и сетевые пакеты достигают сети, разрешение имён работает правильно и так далее.
root #
ping -c 3 www.gentoo.org
Если всё работает правильно, то оставшуюся часть главы можно пропустить и перейти сразу к следующему шагу (Подготовка дисков).
Автоматическая конфигурация сети
Если сеть не работает с первого раза, то в некоторых установочных носителях есть утилиты net-setup (для обычных и беспроводных сетей), pppoe-setup (для пользователей ADSL) или pptp (для пользователей PPTP).
Если же в установочном носителе нет этих утилит, продолжайте чтение с раздела Ручная конфигурация сети.
- Пользователям обычной сети Ethernet следует продолжить чтение с раздела По умолчанию: использование net-setup
- Пользователям ADSL следует продолжить чтение с раздела Альтернатива: использование PPP
- Пользователям PPTP следует продолжить чтение с раздела Альтернатива: использование PPTP
По умолчанию: использование net-setup
Простейшим способом настроить сеть (если она не была настроена автоматически) является запуск сценария net-setup:
root #
net-setup eth0
net-setup задаст несколько вопросов о сетевом окружении. Когда всё будет готово, сетевое подключение должно заработать. Проверьте подключение, как это было показано выше. Если все проверки успешны, поздравляем! Пропустите оставшуюся часть раздела и продолжите с раздела Подготовка дисков.
Если сеть всё равно не работает, продолжайте чтение с раздела Ручная конфигурация сети.
Альтернатива: использование PPP
На случай, когда для подключения к Интернету требуется PPPoE, для упрощения настройки в установочный CD любой версии были добавлены программы, включая ppp. Для настройки подключения воспользуйтесь сценарием pppoe-setup. Во время настройки будут запрошены устройство Ethernet, к которому подключен ADSL-модем, имя и пароль, IP-адреса DNS-серверов и, если требуется, базовая настройка брандмауэра.
root #
pppoe-setup
root #
pppoe-start
Если что-то пошло не так, то повторно проверьте правильность имени и пароля в файлах /etc/ppp/pap-secrets или /etc/ppp/chap-secrets и убедитесь, что используется правильное устройство Ethernet. Если устройство Ethernet не существует, проверьте, загружены ли необходимые сетевые модули. В этом случае перейдите к разделу Ручная конфигурация сети, в котором описан процесс загрузки подходящих модулей.
Если всё работает, то продолжайте чтение с раздела Подготовка дисков.
Альтернатива: использование PPTP
Для обеспечения работы PPTP на установочном CD присутствует сценарий pptpclient. Но сначала убедитесь, что конфигурация правильная. Отредактируйте /etc/ppp/pap-secrets или /etc/ppp/chap-secrets так, что бы в них была правильная комбинация имени и пароля:
root #
nano -w /etc/ppp/chap-secrets
При необходимости проверьте /etc/ppp/options.pptp:
root #
nano -w /etc/ppp/options.pptp
Когда всё будет сделано, запустите pptp (вместе с параметрами, которые могут быть установлены в options.pptp) для подключения к серверу:
root #
pptp <server ipv4 address>
Продолжайте чтение с раздела Подготовка дисков.
Ручная конфигурация сети
Загрузка сетевых модулей ядра
Когда установочный CD загружается, он пытается обнаружить все устройства и пытается загрузить подходящие модули ядра (драйверы) для их поддержки. В подавляющем большинстве случаев этого достаточно. Тем не менее, в некоторых случаях он может не загрузить нужные драйвера для сетевого оборудования.
Если net-setup или pppoe-setup завершились ошибкой, возможно, что сетевая карта не была найдена. Это означает, что может понадобиться загрузить соответствующие модули ядра вручную.
Чтобы узнать, какие есть модули ядра для сетей, используйте команду ls:
root #
ls /lib/modules/`uname -r`/kernel/drivers/net
Если драйвер сетевого устройства присутствует, то для его загрузки используйте modprobe. Например, для загрузки модуля pcnet32:
root #
modprobe pcnet32
Чтобы проверить, определилась ли сетевая карта, наберите ifconfig. Если сетевая карта определилась, то результат будет выглядеть так (опять же, eth0 это только пример):
root #
ifconfig eth0
eth0 Link encap:Ethernet HWaddr FE:FD:00:00:00:00 BROADCAST NOARP MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Если показано сообщение об ошибке, то сетевая карта не определена:
root #
ifconfig eth0
eth0: error fetching interface information: Device not found
Имена доступных сетевых интерфейсов в системе можно увидеть через файловую систему /sys:
root #
ls /sys/class/net
dummy0 eth0 lo sit0 tap0 wlan0
В примере выше найдено 6 интерфейсов. eth0, скорее всего, проводной Ethernet-адаптер, а wlan0 — беспроводной.
Исходя из того, что сетевая карта была обнаружена, повторите net-setup или pppoe-setup снова (скорее всего они будут работать), но, для тех, кто хочет сделать всё самостоятельно, мы опишем, как настроить сеть вручную.
Выберите один из следующих разделов, в зависимости от настроек сети:
- Использование DHCP для автоматической настройки IP
- Подготовка беспроводного доступа, если используется беспроводная сеть
- Сетевая терминология объясняет основные понятия сети
- Использование ifconfig и route объясняет, как настроить сеть вручную
Использование DHCP
DHCP (Dynamic Host Configuration Protocol) позволяет автоматически получать данные о сети (IP-адрес, маску подсети, широковещательный адрес, шлюз, сервера имен и прочее). Данный сценарий возможен только в том случае, если в сети присутствует DHCP-сервер (или если Интернет-провайдер предоставляет службу DHCP). Чтобы сетевой интерфейс получал эти сведения автоматически, используйте dhcpcd:
root #
dhcpcd eth0
Некоторые сетевые администраторы требуют, чтобы имя узла и домена, назначенное сервером DHCP, использовались самой системой. В этом случае используйте:
root #
dhcpcd -HD eth0
Если это сработало (попробуйте опросить командой ping какой-нибудь сервер в Интернете, например, 8.8.8.8 компании Google или 1.1.1.1 Cloudflare), то всё установлено, и можно продолжать. Пропустите оставшуюся часть раздела и приступайте к Подготовке дисков.
Подготовка беспроводного доступа
Поддержка команды iw может быть архитектурно-зависимой. Если команда недоступна, проверьте, доступен ли пакет net-wireless/iw для данной архитектуры. Команда iw будет не доступна, если пакет net-wireless/iw не был установлен.
Беспроводные карты (стандарта 802.11) перед использованием необходимо предварительно настроить. Для отображения текущих настроек можно воспользоваться командой iw, вывод которой может быть таким:
root #
iw dev wlp9s0 info
Interface wlp9s0 ifindex 3 wdev 0x1 addr 00:00:00:00:00:00 type managed wiphy 0 channel 11 (2462 MHz), width: 20 MHz (no HT), center1: 2462 MHz txpower 30.00 dBm
Чтобы проверить текущее подключение:
root #
iw dev wlp9s0 link
Not connected.
или
root #
iw dev wlp9s0 link
Connected to 00:00:00:00:00:00 (on wlp9s0) SSID: GentooNode freq: 2462 RX: 3279 bytes (25 packets) TX: 1049 bytes (7 packets) signal: -23 dBm tx bitrate: 1.0 MBit/s
Некоторые беспроводные карты могут иметь имена wlan0 или ra0 вместо wlp9s0. Запустите ip link, чтобы определить правильное имя устройства.
В большинстве случаев, для подключения необходимо только два параметра: ESSID (название беспроводной сети) и ключ WEP (необязательно).
- Сперва удостоверьтесь, что интерфейс включён:
root #
ip link set dev wlp9s0 up
- Чтобы подключиться к открытой сети с именем GentooNode:
root #
iw dev wlp9s0 connect -w GentooNode
- Чтобы подключиться с шестнадцатеричным ключом WEP, добавьте к нему префикс
d:
:
root #
iw dev wlp9s0 connect -w GentooNode key 0:d:1234123412341234abcd
- Чтобы подключиться с ключом ASCII WEP:
root #
iw dev wlp9s0 connect -w GentooNode key 0:some-password
Если в беспроводной сети применяются протоколы WPA или WPA2, то необходимо использовать wpa_supplicant. Больше информации по настройке беспроводной сети в Gentoo Linux можно прочитать в разделе Беспроводная сеть Руководства Gentoo.
Для подтверждения беспроводных настроек используйте iw dev wlp9s0 link. Как только беспроводная сеть заработает, продолжите настройку сетевых параметров, как описано в следующем разделе (Сетевая терминология) или с помощью инструмента net-setup, как описано ранее.
Сетевая терминология
Если IP-адрес, широковещательный адрес, сетевая маска и сервера имён известны, то пропустите этот раздел и продолжайте с Использование ifconfig и route.
Если вышеперечисленные попытки были неудачными, то придётся настроить сеть вручную. Это совсем нетрудно. Однако для этого понадобятся некоторые знания и основные понятия в области сетевой терминологии. Прочитав данный раздел, вы узнаете, что такое шлюз, зачем нужна маска подсети, как формируется широковещательный адрес и почему системе нужны серверы имён.
В сети узлы идентифицируются по их IP-адресам (Internet Protocol адрес). Такой адрес воспринимается как сочетание четырех чисел от 0 до 255 (по крайней мере, при при использовании IP версии 4). В действительности IPv4-адрес состоит из 32 бит (единиц и нулей). Давайте рассмотрим пример:
IP-адрес (числа): 192.168.0.2
IP-адрес (биты): 11000000 10101000 00000000 00000010
-------- -------- -------- --------
192 168 0 2
В IPv6, преемнике IPv4, используется 128 бит (единиц и нулей). Данный раздел посвящён исключительно адресам IPv4.
Такой IP-адрес уникален для узла в рамках всех доступных сетей (то есть каждый доступный узел в сети должен иметь уникальный IP-адрес). Для того, чтобы различать узлы, находящиеся внутри и извне сети, IP-адрес состоит из двух частей: сетевой части и части узла.
Разделение записывается с помощью маски подсети — набора единиц и следующих за ними нулей. Часть IP-адреса, которая может быть отображена на единицы, является сетевой частью, другая часть — узла. Обычно, маска подсети записываться в виде IP-адреса.
IP-адрес: 192 168 0 2
11000000 10101000 00000000 00000010
Маска: 11111111 11111111 11111111 00000000
255 255 255 0
+--------------------------+--------+
Сеть Узел
Другими словами, 192.168.0.14 является частью сети, а 192.168.1.2 таковым не является.
Широковещательный адрес — это IP-адрес, у которого сетевая часть такая же, как у сети, а в часть узла записаны единицы. Каждый узел в сети прослушает этот IP-адрес. Он предназначен для широковещательной рассылки пакетов.
IP-адрес: 192 168 0 2
11000000 10101000 00000000 00000010
Широковещательный адрес: 11000000 10101000 00000000 11111111
192 168 0 255
+--------------------------+--------+
Сеть Узел
Чтобы иметь возможность выходить в глобальную сеть, каждый компьютер в сети должен знать, через какой узел происходит подключение к Интернету. Этот узел называется шлюзом. Так как это обычный узел, у него есть обычный IP-адрес (например, 192.168.0.1).
Ранее мы говорили, что каждый узел имеет свой собственный IP-адрес. Для того, чтобы связываться с узлом по имени (вместо IP-адреса) нам нужен сервис, который переводит имя (например, dev.gentoo.org) в IP-адрес (например, 64.5.62.82). Такой сервис называется службой имён. Чтобы использовать этот сервис, необходимо определить сервера имён в файле /etc/resolv.conf.
В некоторых случаях шлюз также может выполнять функцию сервера имён. В противном случае сервера имён, предоставляемые провайдером, должны быть указаны в этом файле.
Соберём всю информацию, которая нам понадобится далее:
Сетевой параметр | Пример |
---|---|
IP-адрес системы | 192.168.0.2 |
Маска подсети | 255.255.255.0 |
Широковещательный адрес | 192.168.0.255 |
Шлюз | 192.168.0.1 |
Сервер(ы) имён | 195.130.130.5, 195.130.130.133 |
Использование ifconfig и route
При использовании утилит из пакета sys-apps/net-tools, настройка сети обычно состоит из трёх шагов:
- Назначение IP-адреса с помощью команды ifconfig
- Настройка маршрутизации с помощью команды route
- Размещение IP-адресов серверов имён (DNS) в /etc/resolv.conf
Для назначения необходимы сам IP-адрес, широковещательный адрес и маска подсети. Выполните следующую команду, заменив ${IP_ADDR} на правильный IP-адрес, ${BROADCAST} — на широковещательный адрес и ${NETMASK} — на маску подсети:
root #
ifconfig eth0 ${IP_ADDR} broadcast ${BROADCAST} netmask ${NETMASK} up
Для того, чтобы настроить маршрутизацию используя route, подставьте вместо ${GATEWAY} IP-адрес шлюза:
root #
route add default gw ${GATEWAY}
Теперь откройте /etc/resolv.conf, используя текстовый редактор:
root #
nano -w /etc/resolv.conf
Укажите сервера имён, используя следующий пример в качестве шаблона, и замените ${NAMESERVER1} и ${NAMESERVER2} на подходящие адреса. Вы можете добавить более одного сервера имён:
/etc/resolv.conf
Шаблон по умолчанию /etc/resolv.confnameserver ${NAMESERVER1}
nameserver ${NAMESERVER2}
Вот и всё. Теперь проверьте сеть, выполнив команду ping для какого-нибудь сервера в Интернете (например Google 8.8.8.8 или Cloudflare 1.1.1.1). Если всё работает, то поздравляем с настройкой сети. Продолжайте чтение с раздела Подготовка дисков.
Введение в блочные устройства
Блочные устройства
Теперь взглянем на аспекты работы 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, это почти никогда не делается на практике. Вместо этого, блочное устройство разбивается на меньшие, более управляемые блочные устройства. В системах IA64 они называются разделами.
Itanium systems use EFI, the Extensible Firmware Interface, for booting. The partition table format that EFI understands is called GPT, or GUID Partition Table. The partitioning program that understands GPT is called "parted", so that is the tool used below. Additionally, EFI can only read FAT filesystems, so that is the format to use for the EFI boot partition, where the kernel will be installed by "elilo".
Продвинутая организация хранилища
Установочный CD IA64 предоставляет поддержку LVM2, которая обеспечивает большую гибкость в создании разделов. Во время инструкций по установке мы будем рассматривать «обычные» разделы, но все же хорошо знать, что LVM2 также поддерживается.
Разработка схемы разделов
Сколько разделов и насколько больших?
Расположение разделов на диске сильно зависит от потребностей системы и файловой системы (файловых систем). Если в ней будет много пользователей, рекомендуется разместить /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. Также вы можете использовать файлы подкачки вместо разделов подкачки; в основном это необходимо для систем с очень ограниченным дисковым пространством.
Non-default example partition scheme
An example partitioning for a 20GB disk is shown below, used as a demonstration laptop (containing webserver, mailserver, gnome, ...):
root #
df -h
Filesystem Type Size Used Avail Use% Mounted on /dev/sda5 ext4 509M 132M 351M 28% / /dev/sda2 ext4 5.0G 3.0G 1.8G 63% /home /dev/sda7 ext4 7.9G 6.2G 1.3G 83% /usr /dev/sda8 ext4 1011M 483M 477M 51% /opt /dev/sda9 ext4 2.0G 607M 1.3G 32% /var /dev/sda1 ext2 51M 17M 31M 36% /boot /dev/sda6 swap 516M 12M 504M 2% <not mounted> (Unpartitioned space for future usage: 2 GB)
/usr/ is rather full (83% used) here, but once all software is installed, /usr/ doesn't tend to grow that much. Although allocating a few gigabytes of disk space for /var/ may seem excessive, remember that portage uses this partition by default for compiling packages. To keep /var/ at a more reasonable size, such as 1GB, alter the PORTAGE_TMPDIR variable in /etc/portage/make.conf to point to the partition with enough free space for compiling extremely large packages such as LibreOffice.
Использование parted для создания разделов диска
The following parts explain how to create the example partition layout used in the remainder of the installation instructions, namely:
Раздел | Описание |
---|---|
/dev/sda1 | Загрузочный раздел EFI |
/dev/sda2 | Раздел подкачки |
/dev/sda3 | Корневой раздел |
Измените структуру разделов в соответствии с личными предпочтениями.
Просмотр текущей разметки разделов
parted is the GNU partition editor. Fire up parted on the disk (in our example, we use /dev/sda):
root #
parted /dev/sda
Once in parted, a prompt that looks like this shows up:
(parted)
At this point one of the available commands is help, to see the other available commands. Another command is print to display the disk's current partition configuration:
(parted)
print
Disk geometry for /dev/sda: 0.000-34732.890 megabytes Disk label type: gpt Minor Start End Filesystem Name Flags 1 0.017 203.938 fat32 boot 2 203.938 4243.468 linux-swap 3 4243.469 34724.281 ext4
This particular configuration is very similar to the one recommended above. Note on the second line that the partition table is type is GPT. If it is different, then the ia64 system will not be able to boot from this disk. To explain how partitions are created, let's first remove the partitions and recreate them.
Удаление всех разделов
Unlike fdisk and some other partitioning programs which postpone committing changes until the write instruction is given, parted commands take effect immediately. So once partitions are added or removed, there is no undo.
The easy way to remove all partitions and start fresh, which guarantees that we are using the correct partition type, is to make a new partition table using the mklabel command. This results in an empty GPT partition table.
(parted) mklabel
gpt
(parted) mklabel
print
Disk geometry for /dev/sda: 0.000-34732.890 megabytes Disk label type: gpt Minor Start End Filesystem Name Flags
Now that the partition table is empty, we're ready to create the partitions. We will use a default partitioning scheme as discussed previously. Of course, don't follow these instructions to the letter but adjust to personal preference.
Создание загрузочного раздела EFI
First create a small EFI boot partition. This is required to be a FAT filesystem in order for the IA64 firmware to read it. Our example makes this 32 MB, which is appropriate for storing kernels and elilo configuration. Expect each IA64 kernel to be around 5 MB, so this configuration leaves some room to grow and experiment.
(parted)
mkpart primary fat32 0 32
(parted)
print
Disk geometry for /dev/sda: 0.000-34732.890 megabytes Disk label type: gpt Minor Start End Filesystem Name Flags 1 0.017 32.000 fat32
Создание раздела подкачки
Let's now create the swap partition. The classic size to make the swap partition was twice the amount of RAM in the system. In modern systems with lots of RAM, this is no longer necessary. For most desktop systems, a 512 megabyte swap partition is sufficient. For a server, consider something larger to reflect the anticipated needs of the server.
(parted)
mkpart primary linux-swap 32 544
(parted)
print
Disk geometry for /dev/sda: 0.000-34732.890 megabytes Disk label type: gpt Minor Start End Filesystem Name Flags 1 0.017 32.000 fat32 2 32.000 544.000
Создание корневого раздела
Finally, create the root partition. Our configuration will make the root partition to occupy the rest of the disk. We default to ext4, but it is possible to use ext2, jfs, reiserfs or xfs. The actual filesystem is not created in this step, but the partition table contains an indication of what kind of filesystem is stored on each partition, and it's a good idea to make the table match the intentions.
(parted)
mkpart primary ext4 544 34732.890
(parted)
print
Disk geometry for /dev/sda: 0.000-34732.890 megabytes Disk label type: gpt Minor Start End Filesystem Name Flags 1 0.017 32.000 fat32 2 32.000 544.000 3 544.000 34732.874
Выход из parted
To quit from parted, type quit. There's no need to take a separate step to save the partition layout since parted has been saving it all along. Parted will give a reminder to update the /etc/fstab file, which is done later in the installation instructions.
(parted)
quit
Information: Don't forget to update /etc/fstab, if necessary.
Создание файловых систем
При использовании SSD или NVMe диска, пожалуйста, проверьте наличие обновлений для прошивки. В частности, некоторые SSD от Intel (600p и 6000p) нуждаются в обновлении прошивки для исправления критических ошибок, чтобы не допустить повреждение данных из-за особенностей использования I/O в XFS (не по вине самой файловой системы). Программа smartctl умеет отображать модель и версию прошивки.
Введение
Теперь, когда разделы созданы, пора разместить на них файловые системы. В следующем разделе описаны различные поддерживаемые в Linux файловые системы. Те из читателей, кто уже знает, какую файловую систему будет использовать, могут продолжить с раздела Создание файловой системы на разделе. Остальным стоит продолжить чтение, чтобы узнать о доступных вариантах…
Файловые системы
Linux поддерживает несколько десятков файловых систем, хотя для большинства из них необходимы достаточно веские причины их использовать. Лишь только некоторые из них можно считать стабильными на архитектуре ia64. Рекомендуется прочитать информацию о файловых системах и об их состоянии поддержки перед тем, как останавливать свой выбор на экспериментальных. 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 (обратите внимание на акцент слова только).
Более подробную информацию о файловых системах можно найти в (поддерживаемой сообществом) статье Файловая система.
Создание файловой системы на разделе
Пожалуйста, не забудьте, что в конце установки (перед перезагрузкой системы) вам необходимо установить соответствующий пакет с инструментами для выбранной файловой системы.
Для создания файловых систем на разделе или томе существуют пользовательские утилиты для каждого возможного типа файловой системы. Нажмите на имя файловой системы в таблице ниже для получения дополнительной информации о каждой файловой системе:
Файловая система | Команда для создания | Присутствует на минимальном CD? | Пакет |
---|---|---|---|
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 |
Например, чтобы отформатировать корневой раздел (/dev/sda3) в xfs при использовании структуры разделов из примера, используются следующие команды:
root #
mkfs.xfs /dev/sda3
При использовании ext4 на малых разделах (менее 8 ГиБ) файловая система должна быть создана с особыми параметрами для резервирования достаточного количества индексных дескрипторов (inodes). Для этого используется одна из следующих команд:
root #
mkfs.ext4 -T small /dev/<раздел>
Данная команда учетверит количество индексных дескрипторов для такой ФС, так как мы уменьшили количество байт на каждый дескриптор («bytes-per-inode») с 16 кб до 4 кб.
Теперь создайте файловые системы на только что созданных томах (или логических разделах).
Активация раздела подкачки
Для инициализации разделов подкачки используется команда mkswap:
root #
mkswap /dev/sda2
Чтобы активировать раздел подкачки, используйте swapon:
root #
swapon /dev/sda2
Создайте и активируйте раздел подкачки командами выше.
Монтирование корневого раздела
Если в качестве установочного носителя используется не Gentoo-образ, необходимо дополнительно создать точку монтирования:
root #
mkdir --parents /mnt/gentoo
Теперь, когда созданы разделы и размещённые на них файловые системы, настало время их смонтировать. Используйте команду mount, только не забудьте предварительно создать каталоги для монтирования каждого созданного раздела. В качестве примера мы смонтируем корневой раздела:
root #
mount /dev/sda3 /mnt/gentoo
Если /tmp/ находится на отдельном разделе, не забудьте после монтирования изменить права доступа:
root #
chmod 1777 /mnt/gentoo/tmp
Позже в инструкции будут смонтированы файловая система proc (виртуальный интерфейс к ядру) и другие псевдофайловые системы ядра. Но сначала мы установим установочные файлы Gentoo.
Установка архива stage
Установка даты и времени
Перед установкой Gentoo необходимо правильно установить системные часы. Поскольку веб-сервисы Gentoo используют сертификаты безопасности, загрузка установочных файлов может оказаться невозможной, если системные часы будут сдвинуты слишком сильно. Кроме того, файлы, сохранённые с датой из будущего, могут вызвать странные ошибки после завершения начальной установки, если часы будут скорректированы после неё.
Проверьте текущую дату и время с помощью команды date:
root #
date
Mon Oct 3 13:16:22 PDT 2021
Если время и дата отличаются более чем на несколько минут, их следует обновить в точности, используя один из приведенных ниже способов.
Автоматическая настройка
Большинство читателей захотят, чтобы их система автоматически обновляла время с помощью сервера времени.
На некоторых материнских платах отсутствуют часы реального времени (RTC), которые поддерживают относительно точное время даже при выключенном питании системы. Для таких систем очень важно автоматически синхронизировать системные часы с сервером времени при каждом запуске системы и периодически после этого. Это так же важно для систем, в которых есть RTC, но у которых вышла из строя батарея.
Живая среда загрузки (live environment) Gentoo включает в себя команду chronyd (поставляется в пакете net-misc/chrony) и конфигурационный файл, настроенный для синхронизации с серверами времени ntp.org. Его можно использовать для автоматической синхронизации системных часов в UTC-время. Для этого метода необходима настроенная сеть, кроме того, он может быть недоступен на некоторых архитектурах.
Автоматическая синхронизация времени имеет свою цену. Сведения об IP-адресе и связанная с сетевыми настройками информация будет отправляться на сервер времени (в данном примере — на ntp.org). Пользователи, озабоченные безопасностью, должны быть осведомлены об этом до настройки системных часов с помощью указанного метода.
root #
chronyd -q
Ручная настройка
В системах, где нет доступа к серверу времени, для ручной установки системных часов можно использовать команду date. Она принимает параметр в следующем формате: code>MMDDhhmmYYYY (M — месяц, D — день, h — час, m — минута и Y — год).
Для всех систем Linux рекомендуется использовать время UTC. Часовой пояс будет установлен позже в процессе установки, что позволит изменить отображение часов с учётом местного времени.
Например, чтобы установить дату на 13:16 3 октября 2021 года, выполните:
root #
date 100313162021
Выбор архива stage
Не все архитектуры имеют поддержку multilib. Много архитектур выполняют код в «родном» режиме. Multilib по большей части относится к amd64.
Multilib (32 и 64 бит)
Выбор правильного базового архива для системы впоследствии может сэкономить значительное количество времени, затраченное на установку, особенно в тот момент, когда понадобится выбирать системный профиль. Выбранный архив будет непосредственно влиять на конфигурацию будущей системы и не будет стоить зря потраченных нервов. В архиве multilib предпочтение отдаётся 64-битным библиотекам, но, если необходимо обеспечение совместимости, есть возможность использовать 32-битные версии. Это великолепный выбор для большинства установок, так как он обеспечивает большую гибкость конфигурации в будущем. Если необходимо, чтобы система могла легко переключаться с профиля на профиль, то следует выбирать архив multilib для своей процессорной архитектуры.
Большинству пользователей не следует использовать «продвинутые» варианты архивов; они предназначены для конкретных программных или аппаратных конфигураций.
No-multilib (чистый 64-bit)
Выбор no‐multilib архива в качестве основы для системы позволяет получить полностью 64‐битное окружение операционной системы. Это существенно снижает возможность перехода на multilib‐профили, но по‐прежнему технически осуществимо.
Имейте в виду, пользователям, которые только начинают знакомиться с Gentoo, следует избегать использование архива no-multilib (если только это не продиктовано другими соображениями). Миграция с no-multilib на multilib потребует чрезвычайно хорошего знания Gentoo и наличия набора инструментов разработки более низкого уровня (от которых наших разработчиков Toolchain может даже бросить дрожь). Данный процесс не для слабонервных и выходит за рамки данного руководства.
OpenRC
OpenRC — это система инициализации на основе зависимостей (ответственна за загрузку системных сервисов после загрузки ядра), которая поддерживает совместимость с системной программой для загрузки (обычно расположенная в /sbin/init). Она является основной и оригинальной в Gentoo, но она также используется в некоторых других дистрибутивах Linux и системах BSD.
По умолчанию, OpenRC не заменяет файл /sbin/init и на 100% совместим с инит-скриптами Gentoo. Это означает, что вы получите готовые сервисы для множества програм в репозиториях Gentoo.
systemd
systemd — это современная система инициализации для систем на базе Linux. Она используется как основная система инициализации в большинстве дистрибутивов Linux. systemd полностью поддерживается в Gentoo и работает по своему прямому назначению. Если вам кажется, что чего–то не хватает в Руководстве для поддержки установки с systemd, просмотрите статью systemd перед тем, как попросить поддержки.
Технически, вы можно переключить Gentoo уже после установки с OpenRC на systemd и обратно. Однако, переключение потребует определённых усилий и выходит за рамки данного руководства по установке. Перед загрузкой stage3 архива решите, будет ли использоваться OpenRC или systemd в качестве целевой системы инициализации, и загрузите соответствующий stage3 архив.
Скачивание архива stage
Перейдите к точке монтирования Gentoo, где размещается корневая файловая система (скорей всего это /mnt/gentoo):
root #
cd /mnt/gentoo
Графические веб-браузеры
У пользователей, использующих среду с полноценными веб-браузерами, не будет никаких проблем с копированием URL файла stage из раздела загрузки главного веб-сайта. Просто выберите подходящую вкладку, щёлкните правой кнопкой по ссылке файла stage, выберите Копировать ссылку, скопировав её в буфер обмена. Затем вставьте ссылку в командной строке после команды wget для скачивания архива:
root #
wget <PASTED_STAGE_URL>
Веб-браузер в командной строке
Более опытные пользователи или «старики» Gentoo, которые работают исключительно из командной строки, могут воспользоваться links (www-client/links) — консольным веб-браузером на основе меню. Чтобы загрузить файл архива stage, просмотрите список зеркал Gentoo:
root #
links https://www.gentoo.org/downloads/mirrors/
Чтобы использовать HTTP-прокси в links, введите URL с параметром -http-proxy
:
root #
links -http-proxy proxy.server.com:8080 https://www.gentoo.org/downloads/mirrors/
Наряду с links так же есть браузер lynx (www-client/lynx). Как и links, он не имеет графического интерфейса, но у него нет меню.
root #
lynx https://www.gentoo.org/downloads/mirrors/
Если прокси нужно сохранить, экспортируйте переменные http_proxy и/или ftp_proxy:
root #
export http_proxy="http://proxy.server.com:port"
root #
export ftp_proxy="http://proxy.server.com:port"
В списке зеркал выберите зеркало, которое находится рядом. Обычно достаточно HTTP-зеркала, но другие протоколы также доступны. Перейдите в каталог releases/ia64/autobuilds/. Там отображаются все доступные stage-файлы (они могут находиться в подкаталогах с названиями отдельных субархитектур). Выберите нужный и нажмите d для скачивания.
После завершения скачивания можно проверить целостность и достоверность содержимого архива stage. Если вам это интересно, перейдите к следующему разделу.
Тем, кому не интересно проверять архив stage, могут закрыть браузер в командной строке с помощью клавиши q и сразу перейти к разделу Распаковка архива stage.
Проверка и валидация
Многие stage архивы теперь явно содержат суффикс с типом системы инициализации (openrc или systemd), хотя у некоторых архитектур они могут пока отсутствовать.
Как и в случае с минимальными установочными компакт-дисками, доступно несколько файлов, необходимых для проверки и валидации файла stage. Хотя этот шаг может быть пропущен, эти файлы могут пригодиться пользователям, которым важна достоверность только что скачанных файлов.
root #
wget https://distfiles.gentoo.org/releases/
- Файл .CONTENTS содержит список всех файлов внутри stage архива.
- Файл .DIGESTS содержит контрольные суммы в разных алгоритмах для файла stage.
Для сравнения контрольных сумм из файла .DIGESTS можно использовать openssl.
Например, для проверки контрольной суммы SHA512:
root #
openssl dgst -r -sha512 stage3-ia64-<release>-<init>.tar.xz
dgst
instructs the openssl command to use the Message Digest sub-command, -r
prints the digest output in coreutils format, and -sha512
selects the SHA512 digest.
Для проверки контрольной суммы Whirlpool:
root #
openssl dgst -r -blake2b512 stage3-ia64-<release>-<init>.tar.xz
Сравните вывод этих команд со значением в файле .DIGESTS. Значения должны совпадать, иначе загруженный файл может быть поврежден (или сам файл digest).
Также можно использовать команду sha512sum:
root #
sha256sum --check stage3-ia64-<release>-<init>.tar.xz.sha256
The --check
option instructs sha256sum to read a list of expected files and associated hashes, and then print an associated "OK" for each file that calculates correctly or a "FAILED" for files that do not.
Как и в случае с файлом ISO, можно проверить криптографическую подпись файла tar.xz с помощью gpg, чтобы убедиться, что архив не был подделан:
For official Gentoo live images, the sec-keys/openpgp-keys-gentoo-release package provides PGP signing keys for automated releases. The keys must first be imported into the user's session in order to be used for verification:
root #
gpg --import /usr/share/openpgp-keys/gentoo-release.asc
For all non-official live images which offer gpg and wget in the live environment, a bundle containing Gentoo keys can be fetched and imported:
root #
wget -O - https://qa-reports.gentoo.org/output/service-keys.gpg | gpg --import
Verify the signature of the tarball and, optionally, associated checksum files:
root #
gpg --verify stage3-ia64-<release>-<init>.tar.xz.asc
root #
gpg --verify stage3-ia64-<release>-<init>.tar.xz.DIGEST
root #
gpg --verify stage3-ia64-<release>-<init>.tar.xz.sha256
If verification succeeds, "Good signature from" will be in the output of the previous command(s).
Отпечатки ключей OpenPGP, используемые для подписи релизов, можно найти на странице сигнатур.
Распаковка архива stage
Теперь распакуем загруженный stage архив в систему. Используйте утилиту tar:
root #
tar xpvf stage3-*.tar.xz --xattrs-include='*.*' --numeric-owner
Убедитесь, что в команде указаны те же самые параметры (xpf
и --xattrs-include='*.*'
). x
указывает на извлечение (extract), p
для сохранения (preserve) прав доступа и f
для обозначения, что мы хотим извлечь файл (file), а не стандартный ввод. --xattrs-include='*.*'
позволит также сохранить расширенные атрибуты во всех пространствах имен, хранящиеся в архиве. Наконец, --numeric-owner
используется для того, чтобы убедиться, что идентификаторы пользователей и групп распаковываемых файлов останутся такими же, как и задумывались командой Gentoo по подготовке релизов (даже если предприимчивые пользователи не используют официальное живое окружение Gentoo).
The options starting with the double dash (--
) do not have a short parameters. --xattrs-include='*.*'
is to include preservation of the the extended attributes in all namespaces stored in the archive. Finally, --numeric-owner
is used to ensure that the user and group IDs of the files being extracted from the tarball will remain the same as Gentoo's release engineering team intended (even if adventurous users are not using official Gentoo live environments for the installation process).
Теперь, когда stage распакован, перейдём к настройке параметров компиляции.
Настройка параметров компиляции
Введение
Для оптимизации системы можно установить переменные, которые влияют на поведение Portage, официально поддерживаемого менеджера пакетов Gentoo. Все эти переменные могут быть установлены как переменные окружения (с помощью export), но установка через export не будет постоянной.
Технически, переменные можно экспортировать через профиль shell или файлы rc, однако это не лучшая практика для базового администрирования системы.
При запуске Portage читает файл make.conf, который изменяет поведение во время выполнения в зависимости от значений, записанных в этом файле. make.conf можно считать основным конфигурационным файлом для Portage, поэтому будьте внимательнее с его содержимым.
Cписок всех возможных переменных с комментариями можно найти в /mnt/gentoo/usr/share/portage/config/make.conf.example. Дополнительная документация по файлу make.conf доступна через справочную страницу man 5 make.conf.
Для успешной установки Gentoo необходимо установить только те переменные, которые указаны ниже.
Запустите редактор (в этом руководстве мы используем nano) для изменения параметров оптимизации, о которых написано далее.
root #
nano /mnt/gentoo/etc/portage/make.conf
В файле make.conf.example показано, как файл должен быть структурирован: строки комментариев начинаются с #
, другие строки описывают переменные вида ПЕРЕМЕННАЯ="содержание"
. Некоторые из этих переменных мы обсудим в следующем разделе.
CFLAGS и CXXFLAGS
Переменные CFLAGS и CXXFLAGS определяют параметры оптимизации для компиляторов GCC C и C++ соответственно. Хотя они и указаны здесь, для достижения максимальной производительности можно было бы указать флаги оптимизации для каждой программы отдельно. Причина этого в том, что все программы различны. Но этим тяжело управлять, следовательно, запишем эти переменные в make.conf файл.
В make.conf следует указывать параметры оптимизации, которые сделают систему наиболее отзывчивой в целом. Не нужно использовать экспериментальные настройки; излишняя оптимизация может привести к непредсказуемому поведению программ (аварийному завершению, или ещё хуже, к неправильной работе).
Мы не будем описывать все возможные параметры оптимизации. За более подробной информацией обратитесь к Документации GNU или к инфо-странице gcc (info gcc — работает только на работающей системе Linux). Сам файл make.conf.example содержит множество примеров и информации; не забудьте прочитать его тоже.
Первым параметром обычно является флаг -march=
или -mtune=
, который указывает имя целевой архитектуры. Возможные варианты описаны в файле make.conf.example (в комментариях). Обычно используется значение native, который сообщает компилятору, чтобы он использовал целевую архитектуру существующей системы (той, на которую будет установлена Gentoo).
Второй параметр оптимизации — это флаг -О
(это заглавная буква О, а не ноль), который определяет класс оптимизации для gcc. Возможные классы: s (оптимизация по размеру), 0 (ноль — без оптимизации), 1, 2 или даже 3 для более лучшей оптимизация по скорости (в каждый класс входят все флаги предыдущего, и некоторые дополнительные). -O2
является рекомендованным значением по умолчанию. -O3
может вызывать проблемы при глобальном использовании на уровне системы, так что мы рекомендуем придерживаться -O2
.
Ещё одним популярным флагом оптимизации является -pipe
(использование конвейера вместо временных файлов для взаимодействия между различными стадиями компиляции). Это не имеет никакого влияния на сгенерированный код, при этом использует больше памяти. В системах с небольшим объемом памяти gcc может аварийно завершиться из-за нехватки памяти. В этом случае не используйте этот флаг.
Использование -fomit-frame-pointer
(не хранить указатель фрейма в регистре для функций, которым он не нужен) может привести к серьезным последствиям во время отладки приложений.
Определение переменных CFLAGS и CXXFLAGS позволяет комбинировать несколько флагов оптимизации в одной строке. Значений по умолчанию, содержащихся в архиве stage3, обычно более чем достаточно. Ниже приведён пример конфигурации:
# Флаги компилятора, используемые для всех языков
COMMON_FLAGS="-O2 -pipe"
# Используйте те же настройки для обеих переменных
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
Хотя руководство по оптимизации GCC имеет больше информации о том, как различные параметры компиляции могут повлиять на систему, статья Safe CFLAGS будет более полезной для начинающих пользователей, желающих оптимизировать свою систему.
MAKEOPTS
Переменная MAKEOPTS определяет, сколько параллельных процессов компиляции должно запускаться при установке пакета. На момент Portage версии 3.0.31[1], если переменная не определена, то по умолчанию Portage устанавливает её значение равным количеству потоков, получая информацию от nproc.
Лучше всего выбрать наименьшее из следующих значений: количество потоков у процессора или общий объем ОЗУ системы, разделённый на 2 ГиБ.
Использование большого количества процессов может значительно повлиять на потребление памяти. Хорошая рекомендация — имейте не менее 2 Гб свободной оперативной памяти на каждый поток (так, например, для
-j6
потребуется не менее 12 ГиБ). Чтобы избежать нехватки памяти, уменьшите количество процессов.Когда вы используете параллельный emerge (
--jobs
), количество потоков может вырасти в разы (до количества make потоков, помноженное на количество emerge потоков). Это можно обойти, запустив distcc только для localhost, с конфигурацией, которая ограничит количество экземпляров компилятора на хосте./etc/portage/make.conf
Пример объявления переменной MAKEOPTS# Если переменная не определена, то по умолчанию Portage устанавливает её значение равным количеству потоков, получая информацию от `nproc`
MAKEOPTS="-j4"
Для получения более подробной информации прочтите о переменной MAKEOPTS в man 5 make.conf.
На старт, внимание, марш!
Обновите файл /mnt/gentoo/etc/portage/make.conf в соответствии с личными предпочтениями и сохраните изменения (в nano нужно нажать Ctrl+o, чтобы записать изменения, и затем Ctrl+x для выхода).
Переходите к установке базовой системы Gentoo.
Примечания
Переход в изолированную среду
Необязательно: Выбор зеркала
Распределение файлов
Можно пропустить этот шаг при использовании установочных носителей, отличных от Gentoo. Пакет app-portage/mirrorselect может быть установлен позже, вместе с stage3 (после шага Переход в новое окружение) и действия, определённые в этом разделе, могут быть выполнены в этот момент.
Для быстрой загрузки исходного кода рекомендуется выбрать быстрое зеркало. Portage будет искать в файле make.conf переменную GENTOO_MIRRORS и использовать перечисленные в ней зеркала. Можно просмотреть список зеркал Gentoo и найти зеркало (или зеркала), наиболее близко расположенное к месту физического расположения (чаще всего они и есть самые быстрые). Тем не менее, инструмент под названием mirrorselect предлагает удобный интерфейс для быстрой проверки и выбора подходящего зеркала. Просто перейдите на нужное зеркало и нажмите пробел для выбора одного или нескольких.
root #
mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
Gentoo репозиторий ebuild-файлов
Вторым важным шагом в выборе зеркала является настройка репозитория ebuild-файлов Gentoo в /etc/portage/repos.conf/gentoo.conf. Этот файл содержит информацию, необходимую для обновления репозитория пакетов (коллекции ebuild и связанных с ними файлов, содержащих всю необходимую Portage информацию для загрузки и установки пакетов программного обеспечения).
Настройка репозитория выполняется простыми действиями. Сперва создайте каталог repos.conf (если он ещё не существует):
root #
mkdir --parents /mnt/gentoo/etc/portage/repos.conf
Далее, скопируйте файл конфигурации репозитория Gentoo, предоставляемый Portage, в (только что созданный) каталог repos.conf:
root #
cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
Просмотрите его с помощью текстового редактора или команды cat. Содержание в формате .ini должно выглядеть следующим образом:
/mnt/gentoo/etc/portage/repos.conf/gentoo.conf
[DEFAULT]
main-repo = gentoo
[gentoo]
location = /var/db/repos/gentoo
sync-type = rsync
sync-uri = rsync://rsync.gentoo.org/gentoo-portage
auto-sync = yes
sync-rsync-verify-jobs = 1
sync-rsync-verify-metamanifest = yes
sync-rsync-verify-max-age = 24
sync-openpgp-key-path = /usr/share/openpgp-keys/gentoo-release.asc
sync-openpgp-key-refresh-retry-count = 40
sync-openpgp-key-refresh-retry-overall-timeout = 1200
sync-openpgp-key-refresh-retry-delay-exp-base = 2
sync-openpgp-key-refresh-retry-delay-max = 60
sync-openpgp-key-refresh-retry-delay-mult = 4
sync-webrsync-verify-signature = yes
sync-git-verify-commit-signature = yes
Значение переменной sync-uri по умолчанию будет определять местоположение зеркала на основе ротации. Это позволяет ослабить сетевую нагрузку на инфраструктуру Gentoo и повышает отказоустойчивость в случаях, когда конкретное зеркало недоступно. Рекомендуется придерживаться URI по умолчанию, если не используется локальное или частное зеркало Portage.
Спецификации API плагинов синхронизации Portage можно найти в статье Portage Sync.
Копирование информации о DNS
Единственное, что ещё осталось сделать перед входом в новое окружение, это скопировать информацию о DNS из файла /etc/resolv.conf. Это нужно сделать, чтобы сеть всё ещё будет работать даже после входа в новое окружение. Файл /etc/resolv.conf содержит сервера имён.
Чтобы скопировать эту информацию, рекомендуется ввести ключ --dereference
для команды cp. Благодаря этому /etc/resolv.conf будет скопирован как файл, если является символьной ссылкой. В противном случае в новом окружении символическая ссылка будет ссылаться на несуществующий файл (так как цель ссылки, скорее всего, будет недоступна внутри нового окружения).
root #
cp --dereference /etc/resolv.conf /mnt/gentoo/etc/
Монтирование необходимых файловых систем
Через несколько мгновений корневая система Linux будет перемещена в новое место.
Файловые системы, которые должны быть доступны:
- /proc/ — псевдофайловая система. Она выглядит как обычные файлы, но на самом деле генерируется на лету ядром Linux
- /sys/ — псевдофайловая система, как и /proc/, которую она когда-то должна была заменить, и более структурированнее, чем /proc/
- /dev/ — это обычная файловая система, которая содержит все файлы устройств. Она частично управляемется менеджером устройств Linux (обычно udev)
- /run/ — временная файловая система, которая содержит генерируемые на лету файлы по типу файлов PID или файлов блокировки (locks)
Каталог /proc/ монтируется в /mnt/gentoo/proc/, остальные — через перепривязку точки монтирования. Это означает, что, например, /mnt/gentoo/sys/ на самом деле будет /sys/ (это просто вторая точка входа в ту же файловую систему), тогда как /mnt/gentoo/proc/ является новой точкой монтирования (так сказать, экземпляром) файловой системы.
При использовании установочного носителя Gentoo этот шаг можно заменить простой командой: arch-chroot /mnt/gentoo.
root #
mount --types proc /proc /mnt/gentoo/proc
root #
mount --rbind /sys /mnt/gentoo/sys
root #
mount --make-rslave /mnt/gentoo/sys
root #
mount --rbind /dev /mnt/gentoo/dev
root #
mount --make-rslave /mnt/gentoo/dev
root #
mount --bind /run /mnt/gentoo/run
root #
mount --make-slave /mnt/gentoo/run
Параметр
--make-rslave
необходим для дальнейшей поддержки systemd в ходе установки.Если при установке используется не дистрибутив Gentoo, то этого может быть недостаточно. Некоторые дистрибутивы делают /dev/shm символьной ссылкой на /run/shm/, которая после перехода в изолированную среду станет недействительной. Создание правильного подключения /dev/shm/ в tmpfs поможет избежать этой проблемы:
root #
test -L /dev/shm && rm /dev/shm && mkdir /dev/shm
root #
mount --types tmpfs --options nosuid,nodev,noexec shm /dev/shm
Также проверьте, что права доступа установлены в 1777:
root #
chmod 1777 /dev/shm /run/shm
Переход в новое окружение
Теперь, когда все разделы инициализированы и базовое окружение установлено, настало время войти в новое установочное окружение (выполнить chroot). Это означает, что сессия изменит свой корневой каталог (наивысший каталог, в который можно перейти) из текущей установочного окружения (CD или другого установочного носителя) в систему установки (где находятся размеченные разделы).
Переход в изолированное окружение делается в три шага:
- Изменение корневого каталога с / (который находится на установочном носителе) в /mnt/gentoo/ (на разделах диска) с помощью команды chroot
- Загрузка в память некоторых параметров из /etc/profile с помощью команды source
- Изменение приглашения командной строки, чтобы не забыть, что эта сессия находится в изолированном окружении.
root #
chroot /mnt/gentoo /bin/bash
root #
source /etc/profile
root #
export PS1="(chroot) ${PS1}"
С этого момента все действия выполняются непосредственно в новом окружении Gentoo Linux.
Если установка Gentoo будет прервана где-то после этой точки, можно «продолжить» установку с последнего состояния. Не нужно разбивать диск снова! Просто смонтируйте корневой раздел снова и проделайте предыдущие шаги, начиная с копирования информации о DNS, для повторного входа в рабочее окружение. Эти шаги подойдут и для решения проблем с загрузчиком. Больше информации можно найти в статье chroot.
Настройка Portage
Установка снимка Gentoo репозитория ebuild-файлов
Следующим шагом будет установка снимка репозитория ebuild-файлов Gentoo. Этот снимок содержит коллекцию файлов, которая сообщает Portage о доступных программах (для установки), какой профиль может выбрать системный администратор, о новостях о конкретных пакетах или профилях и так далее.
emerge-webrsync рекомендуется использовать в случаях, когда система находится за межсетевым экраном (для загрузки снимка используется только протоколы HTTP/HTTPS), а также когда необходимо снизить нагрузку канал сети. У кого нет ограничений с сетью или шириной канала, могут счастливо перейти к следующему разделу.
Команда ниже загрузит последний снимок (которые выпускаются каждый день), с одного из зеркал Gentoo, и распакует его в системе:
root #
emerge-webrsync
Во время этой операции, emerge-webrsync может жаловаться на отсутствие /var/db/repos/gentoo/. В этом нет ничего страшного — инструмент сам создаст этот каталог.
Начиная с этого места, Portage может попросить установить некоторые рекомендуемые обновления: некоторые системные пакеты, установленные из архива stage, могут иметь новые доступные версии. Пакетному менеджеру теперь известно о новых пакетах благодаря снимку репозитория. Обновление пакетов можно проигнорировать, этот процесс можно отложить до завершения установки Gentoo.
Необязательно: Обновление Gentoo репозитория ebuild-файлов
Также можно обновить репозиторий ebuild-файлов Gentoo до текущего состояния. Предыдущая команда emerge-webrsync устанавливает относительно недавний снимок (обычно не старше суток), поэтому этот шаг совершенно необязателен.
Если необходимо установить последние обновления пакетов (выпущенных не более 1 часа назад), то используйте emerge --sync. Эта команда использует rsync-протокол для обновления репозитория ebuild-файлов Gentoo (которое было получено ранее с помощью emerge-webrsync) до самой свежей версии.
root #
emerge --sync
На медленных терминалах (с медленным кадровым буфером или через последовательный порт), рекомендуется использовать параметр --quiet
для ускорения процесса:
root #
emerge --sync --quiet
Чтение новостей
После обновления репозитория ebuild-файлов Gentoo, Portage может вывести похожие сообщения:
* IMPORTANT: 2 news items need reading for repository 'gentoo'.
* Use eselect news to read news items.
Новостные сообщения были созданы для обеспечения коммуникационного канала и оповещения пользователей о важных событиях через репозиторий ebuild-файлов Gentoo. Для управления оповещениями используйте команду eselect news. Приложение eselect предоставляет общий интерфейс для системного администрирования. В данном случае eselect используется совместно с модулем news
.
Для модуля news
есть три наиболее распространенных операций:
list
отображает общий список новостей.- с помощью
read
можно прочитать какую-либо новость. purge
удалит прочитанные новости, поэтому перечитать новость снова уже будет нельзя.
root #
eselect news list
root #
eselect news read
Более подробную информацию о чтении новостей можно найти на странице man:
root #
man news.eselect
Выбор подходящего профиля
Профили desktop (для настольных систем) можно использовать не только со средами рабочего стола. Они подходят и для минимальных менеджеров окон, таких как are i3 или sway.
Профиль — это важная часть любой системы Gentoo. Он не только определяет такие важные переменные, как USE, CFLAGS и многие другие, а также фиксирует версии для определённых пакетов. Все эти нюансы поддерживаются разработчиками Portage в Gentoo.
Для того, чтобы увидеть, какой профиль использует система на данный момент, запустите eselect с модулем profile
:
root #
eselect profile list
Available profile symlink targets: [1] default/linux/ia64/ * [2] default/linux/ia64//desktop [3] default/linux/ia64//desktop/gnome [4] default/linux/ia64//desktop/kde
Вывод команды является только примером и может меняться время от времени.
Для использования systemd выберите профиль, в котором содержится слово «systemd» (или его отсутствие в обратном случае).
Для некоторых архитектур есть субпрофиль для настольных систем.
Не стоит халатно относиться к обновлениям профиля. Выбирая изначальный профиль, используйте тот, что соответствует той же версии, которая была использована в stage3 (к примеру, ). Каждая новая версия профиля объявляется через элемент новостей с инструкциями по миграции. Следуйте им, прежде чем перейти на новый профиль.
После просмотра доступных профилей для архитектуры ia64, пользователи могут выбрать другой системный профиль:
root #
eselect profile set 2
Подпрофиль
developer
сделан специально для разработки Gentoo Linux и не предназначен для использования обычными пользователями.Обновление набора @world
На данный момент разумно будет обновить @world, чтобы базовая часть системы изменилась.
Это действие необходимо, чтобы система могла применить какие-либо обновления с момента сборки stage3 и обновления профиля:
root #
emerge --ask --verbose --update --deep --newuse @world
Если до этого был выбран профиль для полноценной графической оболочки, процесс установки может занять значительное время. Оценить время установки очень просто: чем короче имя профиля, тем меньше будет набор @world; чем меньше набор @world, тем меньше пакетов системе потребуется. Другими словами:
- При выборе
default/linux/amd64/
потребует обновления небольшого количества пакетов, когда как - При выборе
default/linux/amd64//desktop/gnome/systemd
потребует обновления гораздо большего числа пакетов, так как система инициализации поменяется с OpenRC на systemd, и будут установлены пакеты рабочего стола GNOME.
Настройка переменной USE
USE — это одна из самых мощных переменных Gentoo, доступная пользователям. Разные программы могут быть скомпилированы с или без поддержки некоторых элементов. Например, некоторые программы могут быть собраны с поддержкой GTK+ или Qt. Другие могут быть собраны с или без поддержки SSL. Некоторые программы можно даже собрать с поддержкой кадрового буфера (svgalib) вместо X11 (X-сервера).
Большинство дистрибутивов компилируют свои пакеты с поддержкой всего, что возможно, увеличивая размер и время запуска программ, не говоря уже о чрезмерных зависимостях. Благодаря Gentoo пользователь может определить с какими параметрами пакет должен быть скомпилирован. И здесь переменная USE вступает в игру.
В переменной USE пользователи могут определить ключевые слова, которые сказываются на параметрах сборки. Например, ssl
компилирует SSL-поддержку в программах, которые её поддерживают. -X
уберёт поддержку X-сервера (обратите внимание на знак минус перед X). gnome gtk -kde -qt5
скомпилирует программы с поддержкой GNOME (и GTK+), но без поддержки KDE (и Qt), что делает систему более оптимальной для использования GNOME (если архитектура поддерживает его).
Настройки по умолчанию для USE находятся в файле make.defaults профиля Gentoo, который используется на данный момент системой. Gentoo использует сложную систему наследования для своих профилей, которая не будет подробно рассматриваться во время установки. Простой способ проверить, какие настройки используются для USE — запустить emerge --info и просмотреть строку, начинающуюся с USE:
root #
emerge --info | grep ^USE
USE="X acl alsa amd64 berkdb bindist bzip2 cli cracklib crypt cxx dri ..."
В приведённом выше примере список укорочен. Настоящий список USE флагов намного больше.
Полное описание всех доступных USE-флагов можно найти в файле /var/db/repos/gentoo/profiles/use.desc.
root #
less /var/db/repos/gentoo/profiles/use.desc
При использовании команды less можно использовать прокрутку с помощью клавиш ↑ и ↓, для выхода нажмите клавишу q.
В качестве примера мы покажем настройки USE для системы ориентированной для использования KDE с поддержкой DVD, ALSA и записи CD:
root #
nano /etc/portage/make.conf
/etc/portage/make.conf
Настройки переменной USE для системы, ориентированной на использование KDE/Plasma с поддержкой DVD, ALSA и записи CDUSE="-gtk -gnome qt5 kde dvd alsa cdr"
Если USE-флаг определён в /etc/portage/make.conf, он будет добавлен (или удалён, если перед USE-флагом написан знак -) в список по умолчанию. USE флаги могут быть удалены добавлением знака - перед флагом. Например, чтобы выключить поддержку для графических окружений X, нужно задать -X
:
/etc/portage/make.conf
Игнорирование USE-флагов по умолчаниюUSE="-X acl alsa"
Пусть это и возможно, но установка
-*
(что уберёт все USE флаги, кроме указанных в make.conf) не одобряется. Писатели ebuild'ов подбирают нужные флаги по умолчанию, для того, чтобы избежать конфликтов, улучшить безопасность, и по другим причинам. Удаление всех USE флагов нарушит поведение по умолчанию и может вызвать серьезные проблемы.CPU_FLAGS_*
Некоторые архитектуры (включая AMD64/X86, ARM, PPC) имеют переменную USE_EXPAND под названием CPU_FLAGS_<ARCH> (где <ARCH> заменяется на соответствующую архитектуру системы).
Не перепутайте! Системы AMD64 и X86 имеют общую архитектуру, поэтому для систем AMD64 правильной переменной является CPU_FLAGS_X86.
Это используется для настройки сборки на компиляцию в определённый ассемблерный код или другие интринсики, обычно написанные вручную или каким-нибудь другим дополнительным способом, и это не то же самое, что попросить компилятор вывести оптимизированный код для определенной характеристики процессора (как, например, -march=
).
Пользователям рекомендуется установить эту переменную, по желанию одновременно с настройкой COMMON_FLAGS.
Для настройки необходимо выполнить несколько шагов:
root #
emerge --ask app-portage/cpuid2cpuflags
Если интересно, проверьте вывод вручную:
root #
cpuid2cpuflags
Затем скопируйте вывод в package.use:
root #
echo "*/* $(cpuid2cpuflags)" > /etc/portage/package.use/00cpu-flags
VIDEO_CARDS
Переменная VIDEO_CARDS USE_EXPAND должна быть настроена соответствующим образом в зависимости от доступного графического процессора (процессоров). В руководстве Xorg описано, как это сделать. Настройка VIDEO_CARDS не требуется при установке только для режима консоли.
Необязательно: Настройка переменной ACCEPT_LICENSE
Лицензии пакета Gentoo хранятся в переменной LICENSE в ebuild-файле. Разрешенные лицензии или группы лицензий для системы определяются в следующих файлах:
- Для всей системы в выбранном профиле.
- Для всей системы в файле /etc/portage/make.conf.
- По-пакетно в файле /etc/portage/package.license.
- По-пакетно в каталоге /etc/portage/package.license/ с файлами.
Portage просматривает в ACCEPT_LICENSE, пакеты с какими лицензияи разрешены для установки. Чтобы вывести текущее системное значение, выполните команду:
user $
portageq envvar ACCEPT_LICENSE
@FREE
По желанию переопределите принятое в системе значение по умолчанию в профилях, изменив /etc/portage/make.conf. /etc/portage/make.conf.
/etc/portage/make.conf
Пример разрешения лицензий с помощью ACCEPT_LICENSE в масштабах всей системыACCEPT_LICENSE="-* @FREE @BINARY-REDISTRIBUTABLE"
По желанию системные администраторы могут также определить разрешаемые лицензии по-пакетно, как показано в следующем примере для каталога с файлами. Обратите внимание, что каталог package.license должен быть создан, если он ещё не существует:
root #
mkdir /etc/portage/package.license
/etc/portage/package.license/kernel
Пример по-пакетного разрешения лицензииapp-arch/unrar unRAR
sys-kernel/linux-firmware @BINARY-REDISTRIBUTABLE
sys-firmware/intel-microcode intel-ucode
Переменная LICENSE в ebuild-файле является только ориентиром для разработчиков и пользователей Gentoo. Она не является юридически значимым заявлением и не гарантирует, что условия использования соответствуют действительности. Не стоит доверять ей безоговорочно и при необходимости следует проводить полный аудит всех файлов, которые были установлены на системе.
Группы лицензий, определённые в Gentoo репозитории проектом Gentoo Licenses:
Название группы | Описание |
---|---|
@GPL-COMPATIBLE | Совместимые с GPL лицензии, одобренные Free Software Foundation [a_license 1] |
@FSF-APPROVED | Лицензии свободного ПО, одобренные FSF (включает @GPL-COMPATIBLE) |
@OSI-APPROVED | Лицензии, одобренные Open Source Initiative [a_license 2] |
@MISC-FREE | Различные лицензии, которые, вероятнее всего, тоже относятся к свободному ПО, то есть следуют Определению Свободного ПО [a_license 3], но не одобрены ни FSF, ни OSI |
@FREE-SOFTWARE | Сочетание @FSF-APPROVED, @OSI-APPROVED и @MISC-FREE |
@FSF-APPROVED-OTHER | Одобренные FSF лицензии для «свободной документации» и «работ для практического применения, не являющихся ПО или документацией» (включая шрифты) |
@MISC-FREE-DOCS | Различные лицензии для свободных документов и прочих работ (включая шрифты), следующие определению свободного произведения [a_license 4], но НЕ включены в @FSF-APPROVED-OTHER |
@FREE-DOCUMENTS | Сочетание @FSF-APPROVED-OTHER и @MISC-FREE-DOCS |
@FREE | Надмножество всех лицензий, обладающих свободой использования, распространения, изменения и распространения изменений. Сочетание @FREE-SOFTWARE и @FREE-DOCUMENTS |
@BINARY-REDISTRIBUTABLE | Лицензии, разрешающие по крайней мере свободное распространение ПО в двоичной форме. Включает в себя @FREE |
@EULA | Лицензионные соглашения, которые пытаются отобрать ваши права. Они более строги, чем «все права защищены», или могут требовать явного согласия. |
Часовой пояс
Этот раздел неприменим к пользователям стандартной библиотеки C musl. Если вы не знаете, что это такое, то к вам это не относится и вы должны следовать этому разделу.
Выберите часовой пояс для системы. Просмотрите список всех доступных часовых поясов в каталоге /usr/share/zoneinfo/:
root #
ls /usr/share/zoneinfo
Предположим, что необходимо установить часовой пояс Europe/Brussels:
OpenRC
Мы записываем название часового пояса в файл /etc/timezone.
root #
echo "Europe/Brussels" > /etc/timezone
Старайтесь не использовать часовые пояса, начинающиеся с /usr/share/zoneinfo/Etc/GMT*, так как их названия не отражают настоящий часовой пояс. Например, GMT-8 на самом деле является GMT+8.
Далее перенастроим пакет sys-libs/timezone-data, что обновит файл /etc/localtime, основываясь на записи в /etc/timezone. Файл /etc/localtime используется системной библиотекой C, чтобы узнать, в каком часовом поясе находится система.
root #
emerge --config sys-libs/timezone-data
systemd
При использовании systemd процесс немного отличается. Мы создаём символьную ссылку:
root #
ln -sf ../usr/share/zoneinfo/Europe/Brussels /etc/localtime
Впоследствии, вы можете настроить часовой пояс и связанные настройки с помощью команды timedatectl.
Настройка локалей
Этот раздел неприменим к пользователям musl libc. Если вы не знаете, что это такое, то к вам это не относится и вы должны следовать этому разделу.
Генерация локалей
Большинству пользователей достаточно иметь одну или две локали на своих системах.
Локаль указывает не только язык, который использует пользователь при взаимодействии с системой, но и правила для сортировки строк, формат вывода даты и времени, и так далее. Локали являются регистрозависимыми и должны использоваться так, как они описаны. Полный список доступных локалей можно найти в файле /usr/share/i18n/SUPPORTED.
Локали, поддерживаемые системой, должны быть указаны в /etc/locale.gen.
root #
nano /etc/locale.gen
Следующие локали являются примером для создания английской (США) и русской (Россия) локалей с поддержкой формата символов (например, UTF-8).
/etc/locale.gen
Включение US и RU локалей с поддержкой формата символовen_US ISO-8859-1
en_US.UTF-8 UTF-8
ru_RU.UTF-8 UTF-8
Для сборки многих приложений наличие хотя бы одной локали с поддержкой UTF-8 является обязательным требованием.
Далее, запустим команду locale-gen, которая создаст все перечисленные в файле /etc/locale.gen локали.
root #
locale-gen
Чтобы убедится, что выбранные локали теперь доступны, запустите команду locale -a.
На установках с systemd можно использовать localectl, т.е. команды localectl set-locale ... или localectl list-locales.
Выбор локали
Теперь настало время установить локаль для всей системы. И снова используется eselect для этого, только теперь с модулем locale
.
Команда eselect locale list выведет список доступных локалей:
root #
eselect locale list
Available targets for the LANG variable: [1] C [2] C.utf8 [3] en_US [4] en_US.iso88591 [5] en_US.utf8 [6] de_DE [7] de_DE.iso88591 [8] de_DE.utf8 [9] POSIX [ ] (free form)
Команда eselect locale set <NUMBER> установит необходимую локаль:
root #
eselect locale set 8
Это всё ещё можно сделать вручную с помощью файла /etc/env.d/02locale (для systemd с помощью файла /etc/locale.conf):
/etc/env.d/02locale
Ручная настройка системной локалиLANG="ru_RU.UTF-8"
LC_COLLATE="C.UTF-8"
Установка локали предотвратит появление предупреждений и ошибок в процессе компиляции ядра и программ.
Заново перезагрузите окружение:
root #
env-update && source /etc/profile && export PS1="(chroot) ${PS1}"
Для получения дополнительных рекомендаций по выбору локали см. также руководство по локализации и статью UTF-8.
Необязательно: Установка файлов прошивки и/или микрокода
Файлы прошивки
Перед тем, как приступить к настройке ядра, полезно будет помнить, что некоторые аппаратные устройства требуют установки в систему дополнительной, иногда не совместимой с принципами FOSS (free (as in freedom) and open source software/свободное и открытое программное обеспечение), прошивки, прежде чем они будут работать правильно. Чаще всего это касается беспроводных сетевых интерфейсов, обычно встречающихся как в настольных, так и в портативных компьютерах. Современные видеочипы от таких производителей, как AMD, Nvidia и Intel также часто требуют установки внешней прошивки для обеспечения полной функциональности. Большинство прошивок для современных аппаратных устройств можно найти в пакете sys-kernel/linux-firmware.
Рекомендуется установить пакет sys-kernel/linux-firmware перед первоначальной перезагрузкой системы, чтобы прошивка была доступна в случае необходимости:
root #
emerge --ask sys-kernel/linux-firmware
Установка определённых пакетов прошивок часто требует принятия соответствующих лицензий на прошивку. При необходимости посетите раздел руководства о принятии лицензии для получения помощи.
Важно отметить, что символы ядра, собранные как модули (M), при загрузке ядром загружают связанные с ними файлы прошивок из файловой системы. Нет необходимости встраивать в двоичный образ ядра файлы прошивок для них.
Микрокод
Вдобавок к сетевому оборудованию и видеокартам, процессоры также могут требовать обновления прошивки. Обычно подобный вид прошивок называется микрокодом. Обновления микрокода иногда нужны, чтобы исправить нестабильность, улучшить безопасность, или исправить прочие разнообразные баги в процессоре.
Обновления микрокода для процессоров AMD распространяются в вышеупомянутом пакете sys-kernel/linux-firmware. Обновления микрокода для процессоров Intel находятся в пакете sys-firmware/intel-microcode, который необходимо установить отдельно. См. статью Микрокол для получения дополнительной информации о том, как применять обновления микрокода.
Конфигурация и компиляция ядра
Теперь настало время сконфигурировать и скомпилировать исходные тексты ядра. Для целей процесса установки будут представлены три способа управления ядром, однако в любой момент после установки можно выбрать другой способ.
От наименьшего вмешательства к наибольшему:
- Полностью автоматический подход: Distribution-ядра
- Проект Distribution Kernel используется для конфигурации, автоматической сборки и установки ядра Linux, связанных с ним модулей и (опционально, но по умолчанию включено) файла initramfs. Новые обновления ядра полностью автоматизированы, поскольку они обрабатываются через менеджер пакетов, как и любой другой системный пакет. В случае необходимости можно предоставить пользовательский конфигурационный файл ядра. Это наименее сложный процесс и идеально подходит для новых пользователей Gentoo, так как работает "из коробки" и требует минимального участия системного администратора.
- Гибридный подход: Genkernel
- Новые обновления ядра устанавливаются через системный менеджер пакетов. Системные администраторы могут использовать инструмент Gentoo genkernel для общей конфигурации, автоматической сборки и установки ядра Linux, связанных с ним модулей и (опционально, но не включено по умолчанию) файла initramfs. Можно предоставить пользовательский файл конфигурации ядра, если необходима кастомизация. Будущая конфигурация, сборка и установка ядра требуют участия системного администратора в виде выполнения eselect kernel, genkernel и, возможно, других команд для каждого обновления.
- Полностью ручная настройка
- Новые исходные тексты ядра устанавливаются с помощью системного менеджера пакетов. Ядро конфигурируется, собирается и устанавливается вручную с помощью команды eselect kernel и множества команд make. С новыми обновлениями ядра повторяется ручной процесс конфигурирования, сборки и установки файлов ядра. Это самый сложный процесс, но он обеспечивает максимальный контроль над процессом обновления ядра.
Основой, вокруг которой строятся все дистрибутивы, является ядро Linux. Оно является прослойкой между пользовательскими программами и аппаратным обеспечением системы. Хотя руководство предоставляет своим пользователям несколько возможных источников ядра, более подробная информация с более детальным описанием доступна на странице {{|Link|Kernel/Overview|Общие сведения о ядре}}.
Установка исходного кода ядра
Этот раздел актуален только при использовании следующих методов genkernel (гибридного) или ручного подхода к управлению ядром.
При установке и компиляции ядра для систем на базе ia64 Gentoo рекомендует использовать пакет sys-kernel/gentoo-sources.
Выберите подходящий исходный код ядра и установите его с помощью emerge:
root #
emerge --ask sys-kernel/gentoo-sources
Данная команда установит исходный код ядра Linux в /usr/src/, используя в названии версию ядра. Эта команда не установит автоматически символьную ссылку, пока вы не укажете USE=symlink
для выбранного исходного кода ядра.
Обычно, символьная ссылка /usr/src/linux указывает на исходный код текущего работающего ядра. Однако, эта символьная ссылка не создаётся по умолчанию. Создать её поможет kernel модуль для eselect.
Чтобы подробнее узнать, зачем нужна эта символьная ссылка и как ею управлять, смотрите Kernel/Upgrade.
Для начала, просмотрите список установленных ядер (в виде исходного кода):
root #
eselect kernel list
Available kernel symlink targets: [1] linux-3.16.5-gentoo
Для того, чтобы создать символьную ссылку linux, используйте:
root #
eselect kernel set 1
root #
ls -l /usr/src/linux
lrwxrwxrwx 1 root root 20 мар 3 22:44 /usr/src/linux -> linux-3.16.5-gentoo
Альтернатива: Genkernel
Если полностью ручная настройка кажется слишком сложной, системным администраторам следует рассмотреть возможность использования утилиты genkernel в качестве гибридного подхода к обслуживанию ядра.
Genkernel предоставляет базовый файл конфигурации ядра и соберет ядро и initramfs, а затем устанавливает полученные двоичные файлы в соответствующие места. Это обеспечивает минимальную и базовую аппаратную поддержку при первой загрузке системы, а в дальнейшем позволяет дополнительно контролировать обновление и настраивать конфигурацию ядра.
Учтите: хотя использование genkernel для поддержки ядра обеспечивает системным администраторам больший контроль над обновлением ядра системы, initramfs и других опций, это требует затрат времени и усилий для выполнения будущих обновлений ядра по мере выпуска новых источников. Тем, кто ищет автоматический подход к обслуживанию ядра, следует использовать distribution-ядра.
Для большей ясности, это является заблуждением, что genkernel автоматически генерирует специальную конфигурацию ядра для оборудования, на котором он запущен; он использует определённую конфигурацию ядра, которая поддерживает большинство оборудования и автоматически обрабатывает команды make, необходимые для сборки и установки ядра, сопутствующих модулей и файла initramfs.
Группа лицензий на "программное обеспечение, распространяемое в бинарном виде"
Если пакет linux-firmware был уже установлен, перейдите к разделу установки.
Поскольку по умолчанию для пакета sys-kernel/genkernel включен USE-флаг firwmare
, пакетный менеджер также попытается установить пакет sys-kernel/linux-firmware. Перед установкой linux-firmware необходимо принять лицензии на "программное обеспечение, распространяемое в бинарном виде".
Эта группа лицензий может быть принята для всей системы путем добавления @BINARY-REDISTRIBUTABLE
в переменную ACCEPT_LICENSE в файле /etc/portage/make.conf. Лицензия также может быть принята только для пакета linux-firmware с помощью добавления в файле /etc/portage/package.license/linux-firmware.
При необходимости ознакомьтесь с методами разрешения лицензий на программное обеспечение, о которых говорится в главе руководства Установка базовой системы , а затем внесите некоторые изменения для допустимых лицензий на программное обеспечение.
Для упрощения, примеры разрешения лицензий:
root #
mkdir /etc/portage/package.license
/etc/portage/package.license/linux-firmware
Разрешения лицензий на "программное обеспечение, распространяемое в бинарном виде" для linux-firmwaresys-kernel/linux-firmware @BINARY-REDISTRIBUTABLE
Установка
Итак, установите пакет sys-kernel/genkernel:
root #
emerge --ask sys-kernel/genkernel
Генерация
Скомпилируйте исходные тексты ядра, выполнив команду genkernel all. Имейте в виду, что, поскольку genkernel компилирует ядро, поддерживающее широкий набор аппаратных средств для различных архитектур компьютеров, процесс компиляции может занять довольно много времени.
Если для корневого раздела/тома используется файловая система, отличная от ext4, может потребоваться вручную настроить ядра с помощью genkernel --menuconfig all, чтобы добавить встроенную поддержку ядра для данной файловой системы (т.е. не собирать файловую систему как модуль).
Пользователи LVM2 должны добавить
--lvm
в качестве аргумента к команде genkernel ниже.
root #
genkernel --mountboot --install all
По завершению работы genkernel будут сформированы ядро, полный набор модулей и файловая система инициализации (initramfs). Ядро и initrd нам понадобятся позднее. Запишите название файлов ядра и initrd, так как они нам понадобятся при настройке загрузчика. Initrd запускается сразу после ядра для определения оборудования (как при загрузке установочного CD), перед запуском самой системы.
После завершения работы genkernel, ядро и начальная файловая система ram (initramfs) будут сформированы и установлены в каталог /boot. Соответствующие модули будут установлены в каталог /lib/modules. initramfs будет запущена сразу после загрузки ядра для автоматического определения оборудования (как при загрузке "живого" (live) загрузочного диска).
root #
ls /boot/vmlinu* /boot/initramfs*
root #
ls /lib/modules
Альтернатива: Ручная настройка
Введение
Согласно расхожему мнению, настройка ядра — наиболее сложная процедура, с которой может столкнуться пользователь Linux. Это совсем не так — после нескольких настроек ядра, не всякий вспомнит, что это было сложно!
Однако одна вещь является истиной: при ручной конфигурации ядра очень важно понимать свою систему. Большую часть сведений можно почерпнуть, установив пакет sys-apps/pciutils, который содержит в команду lspci:
root #
emerge --ask sys-apps/pciutils
Находясь внутри изолированного окружения chroot, можно спокойно игнорировать любые предупреждения pcilib (например, pcilib: cannot open /sys/bus/pci/devices), которые могут появляться в выводе lspci.
Другим источником информации о системе может стать вывод команды lsmod, по которому можно понять, какие модули ядра использует установочный носитель, чтобы потом включить аналогичные настройки.
Остаётся перейти в каталог с ядром и выполнить make menuconfig, который запустит экран меню конфигурации.
root #
cd /usr/src/linux
root #
make menuconfig
В конфигурации ядра Linux есть много-много разделов. Сначала пройдёмся по пунктам, которые должны быть обязательно включены (иначе Gentoo будет работать неправильно или же вовсе не запустится). Также в вики есть Руководство по настройке ядра Gentoo, которое поможет понять более тонкие детали.
Включение обязательных параметров
При использовании sys-kernel/gentoo-sources, строго рекомендуется включить Gentoo-специфичные настройки. С помощью них включается необходимый минимум настроек ядра для корректной работы:
Gentoo Linux --->
Generic Driver Options --->
[*] Gentoo Linux support
[*] Linux dynamic and persistent device naming (userspace devfs) support
[*] Select options required by Portage features
Support for init systems, system and service managers --->
[*] OpenRC, runit and other script based systems and managers
[*] systemd
Выбор в последних двух строках зависит от того, какую систему инициализации вы выбрали — OpenRC или systemd. Ничего страшного не случится, если вы включите поддержку обоих систем.
При использовании sys-kernel/vanilla-sources, этих вспомогательных настроек не будет. Вы можете включить нужные настройки вручную, но это выходит за рамки данного руководства.
Включение поддержки основных компонентов системы
Убедитесь, что все драйверы, необходимые для загрузки системы (такие как контроллер SATA, поддержка блочных устройств NVMe, поддержка файловой системы и другие) собраны прямо в ядре, а не в виде модуля. В противном случае, система может не загрузиться.
Далее следует выбрать тип процессора. Также рекомендуется включить возможности MCE (если они доступны), чтобы пользователи системы могли получать оповещение о любых проблемах с оборудованием. На некоторых архитектурах (например, x86_64) подобные ошибки выводятся не в dmesg, а в /dev/mcelog. А для него понадобится пакет app-admin/mcelog.
Также включите Maintain a devtmpfs file system to mount at /dev, чтобы критически важные файлы устройств были доступны на самом раннем этапе загрузки (CONFIG_DEVTMPFS и CONFIG_DEVTMPFS_MOUNT):
Device Drivers --->
Generic Driver Options --->
[*] Maintain a devtmpfs filesystem to mount at /dev
[*] Automount devtmpfs at /dev, after the kernel mounted the rootfs
Убедитесь, что поддержка SCSI-дисков включена (CONFIG_BLK_DEV_SD):
Device Drivers --->
SCSI device support --->
<*> SCSI device support
<*> SCSI disk support
Device Drivers --->
<*> Serial ATA and Parallel ATA drivers (libata) --->
[*] ATA ACPI Support
[*] SATA Port Multiplier support
<*> AHCI SATA support (ahci)
[*] ATA BMDMA support
[*] ATA SFF support (for legacy IDE and PATA)
<*> Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support (ata_piix)
Убедитесь, что включена базовая поддержка NVMe:
Device Drivers --->
<*> NVM Express block device
Device Drivers --->
NVME Support --->
<*> NVM Express block device
Не помешает включить следующую дополнительную поддержку NVMe:
[*] NVMe multipath support
[*] NVMe hardware monitoring
<M> NVM Express over Fabrics FC host driver
<M> NVM Express over Fabrics TCP host driver
<M> NVMe Target support
[*] NVMe Target Passthrough support
<M> NVMe loopback device support
<M> NVMe over Fabrics FC target driver
< > NVMe over Fabrics FC Transport Loopback Test driver (NEW)
<M> NVMe over Fabrics TCP target support
Теперь перейдите в раздел File Systems и выберите те файловые системы, которые планируете использовать. Файловая система, используемая в качестве корневой, должна быть включена в ядро (не модулем), иначе система не сможет подключить раздел при загрузке. Также включите Virtual memory и /proc file system. При необходимости выберите один или несколько параметров, необходимых системе:
File systems --->
<*> Second extended fs support
<*> The Extended 3 (ext3) filesystem
<*> The Extended 4 (ext4) filesystem
<*> Btrfs filesystem support
<*> XFS filesystem support
DOS/FAT/NT Filesystems --->
<*> MSDOS fs support
<*> VFAT (Windows-95) fs support
Pseudo Filesystems --->
[*] /proc file system support
[*] Tmpfs virtual memory file system support (former shm fs)
Если для подключения к Интернету используется PPPoE или модемное соединение, то включите следующие параметры (CONFIG_PPP, CONFIG_PPP_ASYNC и CONFIG_PPP_SYNC_TTY):
Device Drivers --->
Network device support --->
<*> PPP (point-to-point protocol) support
<*> PPP over Ethernet
<*> PPP support for async serial ports
<*> PPP support for sync tty ports
Два параметра сжатия не повредят, но и не являются обязательными, как и PPP over Ethernet. Фактически, последний используется в случае, если ppp сконфигурирован на использование ядерный PPPoE режим.
Не забудьте настроить поддержку сетевых карт (Ethernet или беспроводных).
Поскольку большинство современных систем являются многоядерными, важно включить Symmetric multi-processing support (CONFIG_SMP):
Processor type and features --->
[*] Symmetric multi-processing support
Во многоядерных системах каждое ядро считается за один процессор.
Если используются USB-устройства ввода (например, клавиатура и мышь) или другие устройства, то не забудьте включить и эти параметры:
Device Drivers --->
HID support --->
-*- HID bus support
<*> Generic HID driver
[*] Battery level reporting for HID devices
USB HID support --->
<*> USB HID transport layer
[*] USB support --->
<*> xHCI HCD (USB 3.0) support
<*> EHCI HCD (USB 2.0) support
<*> OHCI HCD (USB 1.1) support
<*> Unified support for USB4 and Thunderbolt --->
Конфигурация ядра, специфичная для архитектуры
Выберите правильный тип системы и процессора. Хорошим выбором по умолчанию будет DIG-совместимый. При установке на систему SGI удостоверьтесь, что вы выбрали тип системы SGI. В противном случае ядро может зависнуть и отказаться загружаться.
System type --->
(Change according to the system)
DIG-compliant
Processor type --->
(Change according to the system)
Itanium 2
Компиляция и установка
Когда ядро настроено, настало время его скомпилировать и установить. Выйдите из настройки и запустите процесс компиляции:
root #
make && make modules_install
Можно включить параллельную сборку, используя make -jX, где
X
— это число параллельных задач, которые может запустить процесс сборки. Это похоже на инструкции, которые были даны ранее относительно файла /etc/portage/make.conf в части переменной MAKEOPTSКогда компиляция ядра будет закончена, скопируйте образ ядра в /. Используйте любое имя, которое вы считаете приемлемым, и запомните его, так как оно понадобится позже при настройке начального загрузчика. Помните, что необходимо заменить vmlinuz на имя и версию установленного ядра.
root #
cp vmlinux.gz /boot/vmlinuz
Необязательно: Сборка initramfs
В некоторых случаях необходимо собрать initramfs — файловую систему инициализации, размещаемую в оперативной памяти. Самая частая причина — когда важные части системных путей (например, /usr/ или /var/) находятся на отдельных разделах. Эти разделы могут быть смонтированы средствами, расположенными внутри initramfs.
Без initramfs есть большой риск того, что система не загрузится правильно, так как программам, необходимым для монтирования файловых систем, нужна информация, которая находится на этих самых разделах. initramfs вытянет все необходимые файлы в архив, который загружается в память сразу же после загрузки ядра, но до того, как управление будет передано системе инициализации. Сценарии initramfs выполнят все необходимые операции для правильного монтирования разделов до того, как продолжится загрузка системы.
Если вы используете genkernel, вы должны использовать его для сборки и ядра, и initramfs. Если вы используете genkernel только для сборки initramfs, вы должны добавить аргумент
--kernel-config=/путь/к/ядру.config
к genkernel, иначе собранный initramfs может не заработать с вручную собранным ядром. Обратите внимание, что вручную собранные ядра выходят за рамки данного руководства. Смотрите страницу про настройку ядра для более подробной информации.Чтобы установить initramfs, сперва установите sys-kernel/dracut, затем сгенерируйте initramfs:
root #
emerge --ask sys-kernel/dracut
root #
dracut --kver=3.16.5-gentoo
initramfs будет сохранён в /boot/ под названием, начинающимся с «initramfs»:
root #
ls /boot/initramfs*
Теперь продолжите с раздела Модули ядра.
Модули ядра
Список доступных модулей ядра
Модули оборудования не обязательно указывать вручную. В большинстве случаев, udev автоматически загрузит все необходимые модуля для обнаруженных устройств. Однако, не будет никакого вреда, если добавить автоматически загружаемые модули в список. Модули не могут быть загружены дважды; они либо загружаются, либо выгружаются. Иногда очень специфическим устройствам необходима помощь, чтобы загрузить их драйвера.
Модули, которые должны загружаться при каждой загрузке, могут быть добавлены в файлы /etc/modules-load.d/*.conf, по одному модулю в строке. Если для модулей необходимы дополнительные параметры, их следует указывать в файлах /etc/modprobe.d/*.conf.
Чтобы просмотреть все модули, доступные для определённой версии ядра, выполните следующую команду find. Не забудьте заменить "<kernel version>" на соответствующую версию ядра для поиска:
root #
find /lib/modules/<kernel version>/ -type f -iname '*.o' -or -iname '*.ko' | less
Принудительная загрузка отдельных модулей ядра
Чтобы принудительно загрузить в систему модуль 3c59x.ko (драйвер для определённого семейства сетевых карт от 3Com), отредактируйте файл /etc/modules-load.d/network.conf и добавьте туда имя модуля.
root #
mkdir -p /etc/modules-load.d
root #
nano -w /etc/modules-load.d/network.conf
Обратите внимание, что суффикс в имени файла модуля .ko несущественен для механизма загрузки и не включается в файл:
/etc/modules-load.d/network.conf
Принудительная загрузка модуля 3c59x3c59x
Продолжите установку с раздела Настройка системы.
Информация о файловой системе
Метки файловых систем и 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
/dev/sr0: BLOCK_SIZE="2048" UUID="2023-08-28-03-54-40-00" LABEL="ISOIMAGE" TYPE="iso9660" PTTYPE="PMBR" /dev/loop0: TYPE="squashfs" /dev/sda2: UUID="12c37dea-624b-48b6-88b8-fba427f5f341" TYPE="swap" PARTLABEL="swap" PARTUUID="0657fd6d-a4ab-43c4-84e5-0933c84b4f4f" /dev/sda3: UUID="9bd83a8f-75c6-4a04-b155-6f6b748509a9" BLOCK_SIZE="512" TYPE="xfs" PARTLABEL="rootfs" PARTUUID="4f68bce3-e8cd-4db1-96e7-fbcaf984b709" /dev/sda1: UUID="166F-2917" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="efi" PARTUUID="c12a7328-f81f-11d2-ba4b-00a0c93ec93b"
Хотя это не всегда верно для меток разделов, использование UUID для идентификации раздела в fstab обеспечивает гарантию того, что загрузчик не собьётся при поиске определённого тома, даже если файловая система будет изменена в будущем. Использование по умолчанию старых файлов блочных устройств (/dev/sd*N) для определения разделов в fstab будет рискованно в системах, которые часто перезагружаются и в которых регулярно добавляются и удаляются блочные устройства SATA.
Именование файлов блочных устройств зависит от ряда факторов, включая то, как и в каком порядке диски подключены в системе. Они могут отображаться в другом порядке, в зависимости от того, какое из устройств обнаруживается ядром первым в начале загрузки. При этом, если вы не намерены постоянно переключать жесткие диски, использование файлов блочных устройств по умолчанию является простым и удобным подходом.
О файле fstab
В Linux все разделы, используемые системой, должны быть записаны в файле /etc/fstab. Этот файл содержит информацию о точках монтирования разделов (где они должны быть видны в структуре файловой системы), как они должны быть подключены, а также специальные параметры (автоматическое подключение или нет, может ли пользователь их подключать или нет и так далее).
Создание файла fstab
В файле /etc/fstab используется синтаксис, напоминающий таблицу. Каждая строка состоит из шести полей, которые разделены пропусками (пробелами, отступами или смесь этого). Каждое поле имеет своё значение:
- Первое поле содержит блочное устройство (или удалённую файловую систему), которое следует примонтировать. Для экземпляров блочных устройств возможно использование различных идентификаторов, включая путь к устройству, метки файловой системы, метки раздела и UUID
- Второе поле содержит точку монтирования, к которой следует монтировать раздел.
- Третье поле содержит тип файловой системы, используемой разделом.
- Четвёртое поле содержит параметры, используемые командой mount во время монтирования. Так как у каждой файловой системы могут быть собственные уникальные параметры, рекомендуется прочитать man-страницу команды mount (man mount), чтобы получить полный список всех возможных параметров. Параметры монтирования разделяются запятыми.
- Пятое поле используется командой dump для определения того, нуждается ли раздел в дампе или нет. Обычно это поле содержит
0
(ноль). - Шестое поле используется командой fsck для определения порядка проведения проверки ошибок файловой системы, если система была отключена некорректно. Для корневой файловой системы необходимо указывать
1
, для остальных —2
(или0
, если проверка не требуется вовсе).
Файл /etc/fstab, который предоставляется в файлах stage Gentoo по умолчанию, не является валидным файлом fstab, а представлен в качестве шаблона, который может быть использован для ввода актуальных значений.
root #
nano /etc/fstab
For a DOS/Legacy BIOS system
Добавьте правила, которые соответствуют ранее запланированной схеме разметки диска, а также правила для таких устройств, как компакт-диски, и других устройств (если они есть в системе).
Ниже приведён более подробный пример файла /etc/fstab:
/etc/fstab
Полный пример /etc/fstab# Исправьте все различия в форматировании и добавьте дополнительные разделы, созданные на этапе "Подготовка дисков".
/dev/sda2 none swap sw 0 0
/dev/sda3 / xfs defaults,noatime 0 1
/dev/cdrom /mnt/cdrom auto noauto,user 0 0
/dev/cdrom /mnt/cdrom auto noauto,user 0 0 }}
For an EFI system
Below is an example of an /etc/fstab file for an system that will boot via EFI firmware:
/etc/fstab
A full /etc/fstab example for a EFI system# Adjust any formatting difference and additional partitions created from the "Preparing the disks" step
defaults 0 2
/dev/sda2 none swap sw 0 0
/dev/sda3 / xfs defaults,noatime 0 1
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
/dev/cdrom /mnt/cdrom auto noauto,user 0 0
При использовании auto
в третьем поле команда mount попытается автоматически определить тип файловой системы. Это рекомендуется для отсоединяемых устройств, которые могут использовать разные файловые системы. Параметр user
в четвертом поле позволяет монтировать компакт-диски обычными пользователями.
To improve performance, most users would want to add the noatime
mount option, which results in a faster system since access times are not registered (those are not needed generally anyway). This is also recommended for systems with solid state drives (SSDs). Users may wish to consider lazytime
instead.
Из–за ухудшения производительности, не рекомендуется устанавливать опцию монтирования
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 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
Настройка для работы DHCPconfig_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
) было неверным, выполните следующие действия для исправления:
- Измените настройки в файле /etc/conf.d/net, используя правильное название интерфейса (например,
enp3s0
илиenp5s0
вместоeth0
). - Создайте новую символьную ссылку (например, /etc/init.d/net.enp3s0).
- Удалите старую символьную ссылку (rm /etc/init.d/net.eth0).
- Добавьте новую в уровень запуска по умолчанию.
- Удалите старую с помощью 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
Сохраните и закройте текстовый редактор для продолжения.
Системная информация
Пароль суперпользователя
Изменить пароль суперпользователя (с именем 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
Затем пользователи должны запустить systemctl, чтобы сбросить все установленные файлы устройств на предустановленные значения правил:
root #
systemctl preset-all --preset-mode=enable-only
Также можно запустить полное изменение предустановленных значений, но это может сбросить все службы, которые уже были настроены во время процесса:
root #
systemctl preset-all
Эти два шага помогут обеспечить плавный переход от среды установщика к первой загрузке системы.
Системный журнал
OpenRC
Некоторые инструменты отсутствуют в архиве stage3, так как одну и ту же функциональность могут предоставлять несколько пакетов. Теперь пользователь может выбрать, какие из них установить.
Во-первых, нужно определиться с механизмом журналирования для системы. Unix и Linux имеют отличную историю возможностей протоколирования — если понадобится, всё, что происходит в системе, может быть записано в файл журнала.
Gentoo предоставляет несколько утилит для ведения системного журнала. Некоторые из них перечислены здесь:
- app-admin/sysklogd — предоставляет традиционный набор возможностей. Настройки по умолчанию работают хорошо из коробки, что делает этот пакет хорошим вариантом для начинающих.
- app-admin/syslog-ng — расширенные возможности ведения системного журнала. Требуются дополнительные настройки для того, чтобы журналировать что-либо в один большой файл. Некоторые продвинутые пользователи могут выбрать этот пакет за его потенциал; имейте ввиду, что дополнительные настройки необходимы для любого вида умного журналирования.
- app-admin/metalog — гибко настраиваемая система журналирования.
В Gentoo репозитории ebuild-файлов могут быть доступны и другие утилиты для ведения системного журнала, поскольку количество доступных пакетов увеличивается ежедневно.
Если планируется использовать syslog-ng, рекомендуется установить пакет и настроить logrotate. syslog-ng не предоставляет механизма ротации системных журналов. Однако, новые версии (>= 2.0) sysklogd управляют своей ротацией системных журналов.
Установите выбранный пакет для ведения системного журнала. Для OpenRC, добавьте его в уровень запуска по умолчанию (default runlevel), используя rc-update. Следующий пример устанавливает и активирует app-admin/sysklogd в качестве системной утилиты для ведения системного журнала:
root #
emerge --ask app-admin/sysklogd
root #
rc-update add sysklogd default
systemd
Хотя для систем на базе OpenRC представлен ряд способов ведения журналов, systemd включает в себя встроенную службу под названием systemd-journald. Служба systemd-journald способна обрабатывать большинство функций ведения журнала, описанных в предыдущем разделе об журналировании. Иными словами, большинство установок, в которых будет использоваться systemd, могут спокойно пропустить установку этих дополнительных утилит.
Смотрите man journalctl для более подробной информации об использовании journalctl для запроса и просмотра системных журналов.
По ряду причин, например, в случае перенаправления журналов на центральный узел, может понадобиться включить лишние механизмы ведения системных журналов в системе на базе systemd. Этот сценарий не характерен для типичной аудитории руководства и считается продвинутым вариантом использования. По этой причине он не рассматривается в данном руководстве.
Необязательно: планировщик задач
OpenRC
Хотя планировщик задач (cron, от греч. χρόνος — время) является необязательной для системы программой, всё-таки рекомендуется его установить.
Демон cron выполняет команды через заданные интервалы времени. Интервалы могут быть ежедневными, еженедельными или ежемесячными, раз в вторник, раз в две недели и т.д. Знающий системный администратор может использовать сron-демон для автоматизации рутинных задач по обслуживанию системы.
Все cron-демоны поддерживают высокий уровень детализации запланированных задач и обычно включают возможность отправки электронного письма или другой формы уведомления, если запланированная задача не выполнилась или выполнилась не так, как ожидалось.
Gentoo предлагает для выбора несколько возможных демонов cron, включая:
- sys-process/cronie — cronie основан на оригинальном cron и содержит улучшения безопасности и конфигурации, такие как возможность использования PAM и SELinux.
- sys-process/dcron — Этот лёгкий демон cron стремится быть простым и безопасным, с достаточным количеством функций, чтобы оставаться полезным.
- sys-process/fcron — Планировщик команд с расширенными возможностями по сравнению с cron и anacron.
- sys-process/bcron — Более современная система cron, разработанная с учетом безопасности операций. Для этого система разделена на несколько отдельных программ, каждая из которых отвечает за отдельную задачу, со жёстко контролируемыми сообщениями между частями.
cronie
Следующий пример использует sys-process/cronie:
root #
emerge --ask sys-process/cronie
Добавьте cronie на уровень запуска по умолчанию, чтобы он запускался при запуске системы:
root #
rc-update add cronie default
Альтернатива: dcron
root #
emerge --ask sys-process/dcron
Если в качестве агента cron используется dcron, необходимо выполнить дополнительную команду инициализации:
root #
crontab /etc/crontab
Альтернатива: fcron
root #
emerge --ask sys-process/fcron
Если в качестве обработчика запланированных задач выбран fcron, потребуется дополнительный шаг для emerge:
root #
emerge --config sys-process/fcron
Альтернатива: bcron
bcron — это более современный агент cron со встроенным разделением привилегий.
root #
emerge --ask sys-process/bcron
systemd
Подобно вышеупомянутому системному журналу, системы на базе systemd включают поддержку запланированных задач из коробки в виде таймеров. Таймеры systemd могут работать на уровне системы или на уровне пользователя и включают ту же функциональность, что и традиционный демон cron. Если нет необходимости в избыточных возможностях, установка дополнительного планировщика задач обычно не нужна и может быть пропущена.
Необязательно: Индексирование файлов
Индексирование файлов поможет искать файлы в системе гораздо быстрее. Для этого установите sys-apps/mlocate.
root #
emerge --ask sys-apps/mlocate
Необязательно: Удалённый доступ к командной оболочке
Конфигурация opensshd по умолчанию не позволяет подключаться суперпользователем в качестве удалённого пользователя. Создайте непривилегированного пользователя и настройте его таким образом, чтобы он смог получить доступ к установленной системе, либо измените /etc/ssh/sshd_config, чтобы разрешить вход суперпользователем.
Для того, чтобы после установки обеспечить удалённый доступ к системе, необходимо, чтобы sshd запускался во время загрузки.
OpenRC
Чтобы добавить скрипт инициализации sshd в уровень выполнения по умолчанию (default) для OpenRC:
root #
rc-update add sshd default
Если требуется доступ через последовательную консоль (что возможно в случае удалённых серверов), необходимо настроить agetty.
Раскомментируйте раздел «serial console» в файле /etc/inittab:
root #
nano -w /etc/inittab
# SERIAL CONSOLES s0:12345:respawn:/sbin/agetty 9600 ttyS0 vt100 s1:12345:respawn:/sbin/agetty 9600 ttyS1 vt100
systemd
Чтобы включить SSH-сервер, введите:
root #
systemctl enable sshd
Чтобы включить поддержку последовательной консоли, введите:
root #
systemctl enable getty@tty1.service
Необязательно: Автодополнения командной строки
Bash
Bash is the default shell for Gentoo systems, and therefore installing completion extensions can aid in efficiency and convenience to managing the system. The app-shells/bash-completion package will install completions available for Gentoo specific commands, as well as many other common commands and utilities:
root #
emerge --ask app-shells/bash-completion
Post installation, bash completion for specific commands can managed through eselect. See the Shell completion integrations section of the bash article for more details.
Синхронизация времени
Важно использовать какой-то метод синхронизации системных часов. Обычно это делается с помощью протокола NTP и программного обеспечения. Существуют и другие реализации протокола NTP, например, Chrony.
Например, чтобы настроить Chrony:
root #
emerge --ask net-misc/chrony
OpenRC
Для OpenRC, запустите:
root #
rc-update add chronyd default
systemd
Для systemd, запустите:
root #
systemctl enable chronyd.service
В качестве альтернативы пользователи systemd могут захотеть использовать более простой SNTP-клиент systemd-timesyncd, установленный по умолчанию.
Утилиты для файловых систем
В зависимости от используемых файловых систем может понадобиться установка соответствующих утилит для их обслуживания (проверки целостности, (пере-)форматирования файловых систем и так далее). Обратите внимание, что пользовательские утилиты для ext4 (sys-fs/e2fsprogs) уже установлены как часть набора @system.
В следующей таблице перечислены утилиты, которые нужно установить, если в устанавливаемой системе понадобятся утилиты определённой файловой системы:
Файловая система | Пакет |
---|---|
XFS | sys-fs/xfsprogs |
ext4 | sys-fs/e2fsprogs |
VFAT (FAT32, ...) | sys-fs/dosfstools |
Btrfs | sys-fs/btrfs-progs |
ZFS | sys-fs/zfs |
JFS | sys-fs/jfsutils |
ReiserFS | sys-fs/reiserfsprogs |
Так же рекомендуется установить пакет sys-block/io-scheduler-udev-rules для правильного поведения планировщика ввода/вывода с, к примеру, NVMe устройствами:
root #
emerge --ask sys-block/io-scheduler-udev-rules
Дополнительная информация о файловых системах в Gentoo доступна на странице о файловых системах.
Сетевые утилиты
Если сеть была уже настроена в разделе Настройка системы и настройка сети завершена, то данный раздел «Сетевые утилиты» можно пропустить. В этом случае, переходите к разделу Настройка загрузчика.
Установка DHCP-клиента
Большинству пользователей понадобится DHCP-клиент для подключения к собственной сети. Если не установить никакой клиент, то впоследствии система не сможет настроить подключение к сети, что сделает невозможным скачивание DHCP-клиента.
DHCP-клиент автоматически получает IP-адрес для одного или нескольких сетевых интерфейсов во время работы сценария netifrc. Мы рекомендуем использовать net-misc/dhcpcd (смотрите также dhcpcd):
root #
emerge --ask net-misc/dhcpcd
Необязательно: Установка клиента PPPoE
Если для подключения к Интернету требуется PPP, установите пакет net-dialup/ppp:
root #
emerge --ask net-dialup/ppp
Необязательно: Установка утилит для беспроводной сети
Если система будет подключатся к беспроводной сети, установите пакет net-wireless/iw (в случае подключения к открытым сетям или защищённым протоколом WEP), и/или пакет net-wireless/wpa_supplicant (в случае подключения к сетям, защищённым WPA или WPA2). iw также является полезной утилитой для сканирования беспроводных сетей.
root #
emerge --ask net-wireless/iw net-wireless/wpa_supplicant
Теперь продолжайте с раздела Настройка начального загрузчика.
Установка elilo
Платформа IA64 является EFI-совместимой. По крайней мере два загрузчика способно работать на ней: elilo и grub.
elilo (старый и проверенный способ)
root #
emerge --ask sys-boot/elilo
Его конфигурационный файл называется /etc/elilo.conf, а файл с примером настроек устанавливается в стандартный каталог с документацией (/usr/share/doc/elilo-<version>/). Вот еще один пример настроек:
/etc/elilo.conf
Пример настроек eliloboot=/dev/sda1
delay=30
timeout=50
default=Gentoo
append="console=ttyS0,9600"
prompt
image=/vmlinuz
label=Gentoo
root=/dev/sda3
read-only
image=/vmlinuz.old
label=Gentoo.old
root=/dev/sda3
read-only
Строка boot сообщает elilo месторасположение корневого раздела (в данном случае, /dev/sda1). Строка delay устанавливает число десятых долей секунды перед тем, как автоматически загрузить то, что указано в строке default при нахождении в неинтерактивном режиме. Строка timeout делает примерно то же самое, что и строка delay, но для интерактивного режима. Строка default устанавливает запись по умолчанию (которая определена ниже). Строка append добавляет дополнительные опции к командной строке ядра. Prompt говорит elilo, что по умолчанию оно должно работать в интерактивном режиме.
Раздел, который начинается с image, определяет различные загружаемые образы. Каждый образ имеет метку (label), корневую файловую систему (root filesystem), и будет монтировать корневую файловую систему только для чтения.
Если при сборке ядра Linux, для загрузки был также настроен initramfs, то необходимо изменить настройки, указав файл initramfs, и сказав initramfs, где находится корневое устройство:
/etc/elilo.conf
Обновленная конфигурация при использовании initramfsimage=/vmlinuz
label=Gentoo
initrd=/initramfs-genkernel-ia64-3.16.5-gentoo
append = "initrd=initramfs-genkernel-ia64-3.16.5-gentoo root=/dev/sda3 console=ttyS0,9600"
read-only
Когда настройка закончена, просто запустите elilo --efiboot. Опция --efiboot
добавляет запись в загрузочном меню Gentoo Linux для Efi Boot Manager.
root #
elilo --efiboot
grub (новый и навороченный способ)
The setup is a generic efi64 process (tested at least on rx3600). Enable efi64 application for grub:
/etc/portage/make.conf
GRUB_PLATFORMS=efi-64
root #
emerge --ask sys-boot/grub
Install grub EFI application:
root #
grub-install
This will install grubia64.efi into /boot/efi (default EFI partition location).
Generate bootloader config with menu entries:
root #
grub-mkconfig --output=/boot/grub/grub.cfg
.
Add an EFI boot entry to run /EFI/gentoo/grubia64.efi as a boot loader. TODO: provide exact Efibootmgr command that adds an entry.
Перезагрузка системы
Выйдите из изолированной среды и размонтируйте все смонтированные разделы. Затем введите ту самую волшебную команду, которая запускает последний, настоящий тест: reboot.
root #
exit
cdimage ~#
cd
cdimage ~#
umount -l /mnt/gentoo/dev{/shm,/pts,}
cdimage ~#
umount -R /mnt/gentoo
cdimage ~#
reboot
Не забудьте вынуть загрузочный компакт-диск, иначе он загрузится снова вместо новой системы Gentoo.
Перезагрузившись во вновь установленную систему, переходите к завершению установки Gentoo.
Управление учётными записями
Добавление учётной записи для повседневной работы
Работа под учётной записью root (суперпользователя) в системе Unix/Linux опасна, и этого следует всячески избегать. Поэтому для повседневной работы настоятельно рекомендуется добавить учётную запись обычного пользователя.
Членством пользователя в группах определяется, какие действия он сможет выполнять. В следующей таблице перечислено несколько важных групп:
Группа | Описание |
---|---|
audio | Возможность доступа к аудиоустройствам. |
cdrom | Возможность прямого доступа к оптическим накопителям. |
floppy | Возможность прямого доступа к гибким дискам. |
games | Возможность играть в игры. |
portage | Возможность получать доступ к ограниченным ресурсам Portage. |
usb | Возможность доступа к устройствам USB. |
video | Возможность доступа к средствам видеозахвата и аппаратному ускорению видео. |
wheel | Возможность использования команды su. |
Например, для создания учетной записи пользователя по имени larry, входящего в группы wheel, users и audio, сначала войдите в систему как root (только root может создавать учетные записи пользователей), а затем запустите useradd:
Login:
root
Password: (Enter the root password)
root #
useradd -m -G users,wheel,audio -s /bin/bash larry
root #
passwd larry
Password: (Enter the password for larry) Re-enter password: (Re-enter the password to verify)
Если пользователю потребуется выполнить задачу от имени root, для временного получения привилегий root можно использовать su -. Другой способ - пользоваться пакетом sudo (app-admin/sudo) или doas (app-admin/doas), которые, при правильной настройке, очень безопасны.
Очистка диска
Удаление архивов
Теперь, когда установка Gentoo закончена и система была благополучно перезагружена, можно удалить скачанный архив stage3 с жёсткого диска. Помните, что он был скачан в каталог /.
root #
rm /stage3-*.tar.*
Что делать дальше
Не уверены что делать дальше? Есть множество путей для исследований… Gentoo даёт своим пользователям богатый выбор, а следовательно, и множество документированных (или не очень) возможностей для изысканий здесь, на вики, а также других ресурсах Gentoo (см. раздел Gentoo в сети).
Дополнительная документация
Важно учитывать, что из-за множества возможностей, доступных в Gentoo, документация, представленная в Руководстве, ограничена по объему — в основном она посвящена основам создания и запуска системы Gentoo и основным действиям по управлению системой. Руководство намеренно не содержит инструкций по работе с графическими средами, подробностей по укреплению системы и других важных административных задач. Тем не менее, в Руководстве есть дополнительные разделы, которые помогут читателям с более базовыми функциями.
Обязательно прочтите следующую часть руководства, Работа с Gentoo, в которой рассказывается, как поддерживать программное обеспечение в актуальном состоянии, как устанавливать дополнительные пакеты программ, даётся дополнительная информация о USE-флагах, системе инициализации OpenRC и многом другом, связанном с администрированием Gentoo после установки.
Кроме Руководства, можно также исследовать другие уголки вики, в которой есть дополнительная документация, созданная сообществом. Команда вики Gentoo предлагает обзор документации по темам, который содержит список статей, отсортированных по категории. Например, там есть руководство по локализации, с помощью которого можно сделать систему более «домашней» (особенно полезно пользователям, для которых английский язык не родной).
Большинство пользователей, использующих настольные компьютеры, устанавливают графические среды, в которых работают изначально. Существует множество поддерживаемых сообществом 'мета' статей для поддерживаемых сред рабочего стола (DE) и оконных менеджеров (WM). Читатели должны знать, что для каждого DE потребуются разные шаги для настройки, что удлинит процесс загрузки.
Существует множество других мета–статей, чтобы предоставить нашим читателям обзоры доступного программного обеспечения в Gentoo.
Gentoo в сети
Важно отметить, что все официальный сайты Gentoo руководствуются правилами поведения Gentoo. Проявлять активность в сообществе Gentoo — это привилегия, а не право, и пользователям следует знать, что для появления правил поведения существуют свои причины.
За исключением IRC, находящегося на серверах Libera.Chat, и почтовых рассылок, на большинстве сайтов Gentoo требуется собственная учетная запись для того, чтобы задавать вопросы, открывать обсуждения или оформлять запросы.
Форумы и IRC
Мы приветствуем каждого пользователя на наших форумах Gentoo или в одном из наших IRC-каналов. На форумах есть удобный поиск, позволяющий искать похожие решённые проблемы, связанные с установкой Gentoo. Ошибки новичков, возникающие при установке системы, удивительно похожи. Перед тем, как попросить помощи на каналах поддержки Gentoo, рекомендуется выполнить поиск похожих проблем на форумах и вики.
Списки рассылок
Существует несколько списков почтовых рассылок, доступных для членов сообщества, предпочитающих вести обсуждения через электронную почту, а не на форумах или IRC. Для подписки на определённый список необходимо следовать указанным на сайте инструкциям.
Отчёты об ошибках
Иногда, даже после посещения страниц вики, поиска на форумах или обсуждения в IRC и почтовой рассылке, не находится подходящего решения для возникшей проблемы. Обычно это является свидетельством того, что необходимо составить отчёт об ошибке на сайте Gentoo Bugzilla.
Руководство по разработке
Те пользователи, которые хотят узнать больше о разработке Gentoo, могут почитать Руководство разработки. Это руководство описывает порядок написания ebuild, работу eclass, предоставляет определение многим понятиям, лежащим в основе разработки Gentoo.
Напутственные слова
Gentoo является надёжным, гибким и отлично сопровождаемым дистрибутивом. Сообщество разработчиков всегда будет радо выслушать обратную связь от пользователей, чтобы сделать Gentoo ещё лучшим дистрибутивом.
В качестве напоминания, запросы, связанные с данным Руководством, должны следовать инструкциями, приведённым в разделе «Как я могу улучшить Руководство?».
Мы ждём с нетерпением новых пользователей Gentoo, которые будут использовать систему для своих уникальных задач и потребностей.
Warning: Display title "Gentoo Linux ia64 Handbook: Установка Gentoo" overrides earlier display title "Handbook:IA64/Full/Installation".