Gentoo Linux amd64 Handbook: Установка Gentoo
Введение
Добро пожаловать
Прежде всего, добро пожаловать в Gentoo! Вы на пороге мира возможностей и высокой производительности. Gentoo всегда даёт свободу выбора. При установке Gentoo вы не раз убедитесь в этом: пользователи могут выбрать объём самостоятельной компиляции, способ установки Gentoo, какую выбрать службу журналирования и прочее.
Gentoo — это быстрый, современный, простой и гибкий метадистрибутив. Он основан на свободном программном обеспечении, и не скрывает от пользователя, «что под капотом». Portage, система управления пакетами Gentoo, написана на языке Python, что позволяет легко просматривать и изменять исходный код. Пакетный менеджер Gentoo использует исходный код (хотя есть и поддержка бинарных пакетов), а настройка 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 можно установить разными способами. Можно скачать и установить с официального установочного CD- или DVD-носителя Gentoo. Установочный носитель можно записать на USB-носитель или предоставить к нему доступ из загруженного с сети окружения. Gentoo также можно установить с любого носителя, например из уже установленного дистрибутива или не-Gentoo загрузочного диска (например, Knoppix).
В этом руководстве описывается установка с официального установочного носителя Gentoo, или, в некоторых случаях, с помощью сетевой загрузки.
Для помощи по другим вариантам установки, включая использование не-Gentoo компакт-дисков, прочитайте статью альтернативные варианты установки.
Также существует статья Полезные советы по установке Gentoo, которая в некоторых случаях может быть полезна.
Проблемы
Если при установке вы столкнулись с проблемой (или с ошибкой в документации по установке), посетите нашу систему распределения запросов (англ.) и проверьте, возможно об этой ошибке уже известно. Если это не так, то создайте отчет об ошибке, чтобы мы о ней позаботились. Не бойтесь разработчиков, которым выпадает работа над вашими ошибками — людей они (обычно) не едят.
Хотя этот документ посвящён определенной архитектуре, в нём могут упоминаться и другие архитектуры, так как значительная часть Руководства Gentoo использует общий текст для всех архитектур (чтобы не дублировать работу). Во избежание путаницы, такие упоминания сокращены до минимума.
Если есть неуверенность, пользовательская ли ошибка (сделана какая-то погрешность, хотя внимательно прочитали документацию), или программная (какую-то ошибку совершили мы, несмотря тщательное тестирование установки/документации), то не стесняйтесь, заходите на канал #gentoo сервера irc.freenode.net. Разумеется, мы будем рады пообщаться и по любым другим вопросам, так как наш канал освещает всё, что связано с Gentoo.
Кстати говоря, если у вас есть вопрос, касающийся Gentoo, сначала загляните в список Часто задаваемых вопросов. Также список FAQ на форумах Gentoo.
Аппаратные требования
Прежде чем начать, перечислим аппаратные требования, необходимые для успешной установки Gentoo на amd64 компьютере.
Минимальный CD | LiveDVD | |
---|---|---|
Центральный процессор | Любой процессор AMD64 или EM64T (процессоры i3, i5 и i7 являются EM64T) | |
Память | 256 МБ | 512 МБ |
Дисковое пространство | 2.5 ГБ (исключая пространство подкачки) | |
Пространство подкачки | Не менее 256 МБ |
На станице проекта AMD64 можно получить больше информации о поддержке amd64 в Gentoo.
Установочный носитель Gentoo Linux
Минимальный установочный компакт-диск Gentoo
С 23 августа 2018 года все версии официальные минимальные CD способны загружаться в UEFI-режиме. Предыдущие версии могли загружаться только в BIOS (MBR) режиме. Для возможности загрузки в UEFI-режиме необходимо скачать последний актуальный ISO.
Минимальный установочный CD — это загрузочный образ, содержащий самодостаточную среду Gentoo. Он позволяет загружать Linux прямо с компакт-диска или других установочных носителей. При запуске определяются устройства и загружаются соответствующие драйверы. Этот образ сопровождается разработчиками Gentoo и позволяет установить Gentoo при наличии активного Интернет-соединения.
Минимальный установочный диск называется install-amd64-minimal-<release>.iso.
Нерегулярный Gentoo LiveDVD
Иногда проектом Gentoo Ten выпускается специальный DVD, который также может использоваться для установки Gentoo. Инструкции, описанные ниже, подразумевают использование минимального установочного CD, поэтому в случае DVD что-то может отличаться в деталях. Однако LiveDVD (или любое другое загружаемое окружение Linux) поддерживает выход в командую строку просто командой sudo su - или sudo -i в терминале.
Что такое stage?
Архив stage3 — это архив, содержащий минимальное окружение Gentoo, пригодное для продолжения установки Gentoo в соответствии с инструкциями данного руководства. Когда-то в Руководстве Gentoo описывались варианты установки с использованием любого из трех существующих архивов stage. Несмотря на то, что в Gentoo до сих представлены архивы stage1 и stage2, в официальном способе установки используется только архив stage3. Если вас интересует установка Gentoo из архивов stage1 или stage2, пожалуйста, обратитесь к Gentoo FAQ, раздел Как установить Gentoo с использованием архива stage1 или stage2?
Архивы stage3 можно загрузить из releases/amd64/autobuilds/ или с любого из официальных зеркал Gentoo. Файлы stage часто обновляются и не поставляются на установочном образе.
Скачивание
Получение образа
Основной установочный образ, используемый Gentoo Linux — это минимальный установочный CD, на котором находится загружаемое, очень маленькое окружение Gentoo Linux. Это окружение содержит все необходимые утилиты для установки Gentoo Linux. Сами образы CD можно скачать со страницы загрузки (рекомендуется) или самостоятельно найдя образ ISO, доступном на одном из множества зеркал.
При загрузке с зеркала минимальные установочные компакт-диски можно найти следующим образом:
- Перейдите в каталог releases/
- Выберите подходящую архитектуру (как архитектуру amd64/)
- Выберите каталог autobuilds/
- Для архитектур amd64 и x86 выберите либо каталог current-install-amd64-minimal/, либо каталог current-install-x86-minimal/ (соответственно). Для всех других архитектур выберите каталог current-iso/.
У некоторых архитектур, таких как arm, mips и s390, нет минимального установочного компакт-диска. На данный момент Gentoo Release Engineering project не создает .iso файлы для этих архитектур.
В этом каталоге находится файл установочного образа, который оканчивается на .iso. Например, посмотрите на следующий список:
[DIR] hardened/ 05-Dec-2014 01:42 - [ ] install-amd64-minimal-20141204.iso 04-Dec-2014 21:04 208M [ ] install-amd64-minimal-20141204.iso.CONTENTS 04-Dec-2014 21:04 3.0K [ ] install-amd64-minimal-20141204.iso.DIGESTS 04-Dec-2014 21:04 740 [TXT] install-amd64-minimal-20141204.iso.DIGESTS.asc 05-Dec-2014 01:42 1.6K [ ] stage3-amd64-20141204.tar.bz2 04-Dec-2014 21:04 198M [ ] stage3-amd64-20141204.tar.bz2.CONTENTS 04-Dec-2014 21:04 4.6M [ ] stage3-amd64-20141204.tar.bz2.DIGESTS 04-Dec-2014 21:04 720 [TXT] stage3-amd64-20141204.tar.bz2.DIGESTS.asc 05-Dec-2014 01:42 1.5K
В приведённом примере файл install-amd64-minimal-20141204.iso и есть минимальный установочный компакт-диск. Но как можно увидеть, существуют и другие связанные с ним файлы:
- Текстовый файл .CONTENTS, содержащий список всех файлов на установочном образе. Данный файл может использоваться для проверки того, существует ли конкретная прошивка или конкретный драйвер на установочном образе без его загрузки.
- Файл .DIGESTS, содержащий контрольные суммы файла ISO, с использованием различных форматов/алгоритмов хэширования. Данный файл можно использовать для проверки, поврежден ли скачанный файл ISO.
- Файл .DIGESTS.asc, содержащий не только хэши файла ISO (как файл .DIGESTS), но и криптографическую цифровую подпись данного файла. Это может использоваться как для проверки того, поврежден ли скачанный файл ISO, так и для проверки того, что данная закачка действительно предоставлена командой Gentoo Release Engineering, и не была подделана.
Пока не обращайте внимания на остальные файлы, находящиеся в данном каталоге — про них мы поговорим по мере установки системы. Скачайте файл .iso, и, если нужна проверка скачанных файлов, также соответствующий ему файл .DIGESTS.asc. Файл .CONTENTS скачивать необязательно, так как инструкции по установке не описывают его использования, а файл .DIGESTS должен содержать ту же информацию, что и файл .DIGESTS.asc кроме того, что последний также содержит в себе цифровую подпись.
Проверка скачанных файлов
Это необязательный шаг и не требуется для установки Gentoo Linux. Однако его рекомендуется выполнить, чтобы удостовериться, что скачанный файл не поврежден и действительно был предоставлен командой Gentoo Infrastructure.
При наличии файлов .DIGESTS и .DIGESTS.asc можно проверить целостность файла ISO с использованием различных программ. Данная проверка обычно делается в два шага:
- Сначала проверяется криптографическая подпись, чтобы удостовериться, что данный установочный файл предоставлен командой Gentoo Release Engineering
- Если криптографическая подпись верна, то проверяется контрольная сумма, чтобы удостовериться, что сам скачанный файл не поврежден
Проверка на Microsoft Windows
На системе Microsoft Windows вероятнее всего, не будет подходящих инструментов для проверки контрольных сумм и криптографических подписей.
Чтобы вначале проверить криптографическую подпись, можно использовать такие программы, как GPG4Win. После установки необходимо импортировать открытые ключи команды Gentoo Release Engineering. Список ключей находится на странице сигнатур. После импорта пользователь может проверить подпись, указанную в файле .DIGESTS.asc.
Это не удостоверяет, что файл .DIGESTS является верным, только файл .DIGESTS.asc. Это также значит, что контрольную сумму необходимо проверять со значениями, взятыми из файла .DIGESTS.asc. Именно поэтому инструкции, данные выше, просят скачать только файл .DIGESTS.asc.
Сама контрольная сумма может быть проверена с использованием приложения Hashcalc, хотя существуют и многие другие. Большинство из данных приложений покажут пользователю вычисленную контрольную сумму, которую необходимо сличить со значением, находящимся в файле .DIGESTS.asc.
Проверка на Linux
На системе с Linux самым распространённым способом проверки криптографической подписи является использование программы app-crypt/gnupg. После установки данного пакета, можно использовать следующие команды для проверки криптографической подписи, указанной в файле .DIGESTS.asc.
Сначала скачайте правильный набор ключей со страницы сигнатур:
user $
gpg --keyserver hkps://hkps.pool.sks-keyservers.net --recv-keys 0xBB572E0E2D182910
gpg: requesting key 0xBB572E0E2D182910 from hkp server pool.sks-keyservers.net gpg: key 0xBB572E0E2D182910: "Gentoo Linux Release Engineering (Automated Weekly Release Key) <releng@gentoo.org>" 1 new signature gpg: 3 marginal(s) needed, 1 complete(s) needed, classic trust model gpg: depth: 0 valid: 3 signed: 20 trust: 0-, 0q, 0n, 0m, 0f, 3u gpg: depth: 1 valid: 20 signed: 12 trust: 9-, 0q, 0n, 9m, 2f, 0u gpg: next trustdb check due at 2018-09-15 gpg: Total number processed: 1 gpg: new signatures: 1
Далее проверьте криптографическую подпись файла .DIGESTS.asc:
user $
gpg --verify install-amd64-minimal-20141204.iso.DIGESTS.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.
После проверки сигнатуры проверите контрольную сумму, чтобы убедиться, что загруженный ISO-файл не повреждён. Файл .DIGESTS.asc содержит несколько алгоритмов хеширования, проверять можно по любому из приглянувшихся вам. Например, чтобы получить контрольную сумму SHA512:
user $
grep -A 1 -i sha512 install-amd64-minimal-20141204.iso.DIGESTS.asc
# SHA512 HASH 364d32c4f8420605f8a9fa3a0fc55864d5b0d1af11aa62b7a4d4699a427e5144b2d918225dfb7c5dec8d3f0fe2cddb7cc306da6f0cef4f01abec33eec74f3024 install-amd64-minimal-20141204.iso -- # SHA512 HASH 0719a8954dc7432750de2e3076c8b843a2c79f5e60defe43fcca8c32ab26681dfb9898b102e211174a895ff4c8c41ddd9e9a00ad6434d36c68d74bd02f19b57f install-amd64-minimal-20141204.iso.CONTENTS
В выводе выше показаны две контрольные суммы SHA512 — одна для файла install-amd64-minimal-20141204.iso и одна для сопровождающего его файла .CONTENTS. Нас интересует только первая контрольная сумма, так как её надо сравнить с рассчитываемой контрольной суммой SHA512, которую можно получить так:
user $
sha512sum install-amd64-minimal-20141204.iso
364d32c4f8420605f8a9fa3a0fc55864d5b0d1af11aa62b7a4d4699a427e5144b2d918225dfb7c5dec8d3f0fe2cddb7cc306da6f0cef4f01abec33eec74f3024 install-amd64-minimal-20141204.iso
Если контрольные суммы совпадают, то файл не повреждён, и установку можно продолжать.
Запись диска
Конечно, запустить установку Gentoo Linux загруженного ISO-файла просто так не получится. Файл ISO необходимо записать на компакт-диск для загрузки с него, но таким образом, чтобы записать содержимое файла, а не как файл сам по себе. Ниже есть несколько распространенных способов, более подробные инструкции можно найти в FAQ по записи файлов ISO.
Прожиг в Microsoft Windows
В Microsoft Windows существует ряд инструментов для записи файлов ISO на CD.
- В EasyCD Creator, в меню File, выберите Record CD from CD image. Затем измените Files of type на ISO image file. Затем откройте ISO файл с помощью Open. После проверки нажмите на Start recording ISO образ будет записан на CD-R.
- В Nero Burning ROM откажитесь от автоматического мастера и выберите Burn Image и меню File. Выберите образ для записи и нажмите Open. Теперь нажмите кнопку Burn и подождите пока новый CD диск запишется.
Прожиг в Linux
В Linux файл ISO можно записать на CD командой cdrecord, из пакета app-cdr/cdrtools.
Например, что бы прожечь файл ISO на CD в устройстве /dev/sr0 (это первое устройство для CD в системе — замените его на правильное, если необходимо):
user $
cdrecord dev=/dev/sr0 install-amd64-minimal-20141204.iso
Пользователи, которые предпочитают графический интерфейс, могут использовать K3B из пакета kde-apps/k3b. В K3B перейдите в раздел Tools и выберите Burn CD Image. Затем следуйте инструкциям K3B.
Загрузка
Загрузка с установочного носителя
Пора загрузиться с готового установочного носителя. Вставьте носитель, перезагрузите компьютер и войдите в пользовательский интерфейс прошивки материнской платы. Это можно сделать, нажав одну из клавиш на клавиатуре, такие как DEL, F1, F10 или ESC, в процессе Power-On Self-test (POST). «Подходящая» клавиша зависит от системы и материнской платы. Если подходящая клавиша не так очевидна, поищите в Интернете, используя название и модель материнской платы в качестве ключевых слов. После входа в меню прошивки материнской платы измените порядок загрузки так, чтобы внешний загрузочный носитель (диски CD/DVD или USB-носители) оказался перед внутренними дисками. Без этого изменения система, скорее всего, перезагрузится с использованием внутреннего диска, игнорируя внешний загрузочный носитель.
Если после установки Gentoo планируется использовать UEFI вместо BIOS, рекомендуется загрузиться сразу же с UEFI. Если этого не сделать, то может понадобиться создать загрузочный UEFI USB-носитель (или другой носитель информации) перед окончанием установки Gentoo Linux.
Вставьте или подключите установочный носитель (если это ещё не было сделано), а затем перезагрузите систему. Должно появиться загрузочное приглашение. На этом экране можно нажать Enter, чтобы запустить процесс загрузки с параметрами по умолчанию. Чтобы изменить параметры загрузки, укажите ядро, потом загрузочные параметры, а затем нажмите Enter.
В загрузочной командной строке у вас есть выбор — показать все доступные ядра (F1) и параметры загрузки (F2). Если выбор не сделан в течение 15 секунд (не была выбрана ни одна из команд), то установочный носитель продолжит загрузку с диска. Это позволяет перезагружаться и пробовать установленное окружение без необходимости удалять CD из привода (что очень хорошо для удаленных установок).
На минимальном установочном носителе есть только два определенных параметра загрузки ядра. Параметр по умолчанию называется gentoo. Другой заканчивается на -nofb; он отключает поддержку кадрового буфера в ядре.
Следующий раздел даст краткий обзор доступных ядер и их описание:
Выбор ядра
- gentoo
- Ядро по умолчанию с поддержкой процессоров K8 (включая поддержку NUMA) и EM64T.
- gentoo-nofb
- Аналогично gentoo, но без поддержки кадрового буфера.
- memtest86
- Тест оперативной памяти на ошибки.
Кроме выбора ядра, с помощью загрузочных параметров можно дополнительно настроить процесс загрузки.
Аппаратные параметры
- acpi=on
- Загружает поддержку ACPI, а также запускает демон acpid при загрузке. Это необходимо только если система требует ACPI для нормальной работы. Это не нужно для поддержки Hyperthreading.
- acpi=off
- Полностью отключает ACPI. Это полезно на некоторых старых системах, а также необходимо для использования APM. Это также отключит любую поддержку HyperThreading вашего процессора.
- console=X
- Создает консоль на CD с последовательным доступом. Первый параметр это устройство, обычно ttyS0 на x86, за которой следуют любые параметры соединения, разделенные запятыми. Параметры по умолчанию 9600,8,n,1.
- dmraid=X
- Позволяет передавать параметры в device-mapper 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
- Отключает поддержку device-mapper RAID, такого, который используется для IDE/SATA RAID-контроллеров.
- nofirewire
- Отключает загрузку модулей Firewire. Это должно быть необходимо только если ваше железо FireWire вызывает проблемы при загрузке с CD.
- nogpm
- Отключает поддержку мыши в консоли, gpm.
- nohotplug
- Отключает загрузку init-скриптов 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 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*
, так что параметры могут быть переопределены в порядке, в котором они приведены выше.Теперь загрузите систему с накопителя, выберите ядро (если не устраивает ядро по умолчанию gentoo) и дополнительные параметры загрузки. В качестве примера мы загрузим ядро gentoo с параметром ядра dopcmcia
:
boot:
gentoo dopcmcia
Появится заставка с полосой индикатора загрузки. Если вы устанавливаете Gentoo на машину с неамериканской раскладкой клавиатуры, нужно немедленно нажать Alt+F1, чтобы переключиться в подробный режим, и следовать появившимся указаниям. Если ничего не выбрано в течение 10 секунд, устанавливается раскладка по умолчанию (клавиатура США), после чего продолжится загрузка. По окончании загрузки будет выполнен автоматический вход в «живое» окружение 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 для перехода в новое окно терминала.
Во время установки можно использовать команду links для просмотра Руководства Gentoo — конечно, только с того момента, как заработает подключение к Интернет.
user $
links https://wiki.gentoo.org/wiki/Handbook:AMD64
Чтобы вернуться к первоначальному терминалу, нажмите Alt+F1.
GNU Screen
Утилита GNU 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 для поддержки.Команда 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.
Дополнительно: настройка прокси
Если доступ к Интернету осуществляется через прокси-сервер, необходимо указать настройки прокси во время установки. Указать прокси очень просто: определите переменную, содержащую информацию о прокси-сервере.
В большинстве случаев, достаточно указать переменные с использованием имени сервера. В этом примере мы предположим, что прокси-сервером является proxy.gentoo.org, доступным на порту 8080.
Настройка HTTP-прокси (для HTTP- и HTTPS-трафика):
root #
export http_proxy="http://proxy.gentoo.org:8080"
Настройка FTP-прокси:
root #
export ftp_proxy="ftp://proxy.gentoo.org:8080"
Настройка RSYNC-прокси:
root #
export RSYNC_PROXY="proxy.gentoo.org:8080"
Если для прокси требуется имя пользователя и пароль, используйте следующий синтаксис в переменной:
http://username:password@proxy.gentoo.org:8080
Проверка сети
Попробуйте проверить 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 ip>
Продолжайте чтение с раздела Подготовка дисков.
Ручная конфигурация сети
Загрузка сетевых модулей
При загрузке установочного 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
Настройка сети состоит из трёх шагов:
- Назначение IP-адреса с помощью ifconfig
- Настройка маршрутизации с помощью route
- Размещение IP-адресов серверов имён в /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, разделы и блочные устройства. Как только основные понятия о дисках и файловых системах будут изучены, можно будет приступать к созданию разделов и файловых систем для установки Gentoo Linux.
Для начала, рассмотрим блочные устройства. Наиболее известным блочным устройством можно считать первый диск в системе Linux, именуемый /dev/sda. И SCSI, и Serial ATA диски обозначаются как /dev/sd*; благодаря фреймворку ядра libata даже IDE-диски обозначаются как /dev/sd*. Если же используется старый фреймворк устройств, первым IDE-диском будет /dev/hda.
Данные блочные устройства представляют абстрактный интерфейс к диску. Пользовательские приложения могут использовать их для взаимодействия с диском, не заботясь о том, какой это диск — IDE, SCSI или ещё какой-либо. Программа просто адресует пространство на диске как совокупность следующих друг за другом 512-байтных блоков с произвольным доступом.
Таблица разделов
Несмотря на то, что теоретически возможно использовать неразбитый диск целиком для размещения системы Linux (например, для создании btrfs RAID), этого почти никогда не случается на практике. Наоборот, блочные устройства диска разбиваются на меньшие, более удобные для обращения, блочные устройства. В системах amd64 они называются разделами. В настоящее время есть две стандартных технологии разметки дисков: MBR и GPT.
MBR
MBR (Master Boot Record, главная загрузочная запись) использует 32-битные идентификаторы для определения начала сектора и длины раздела и поддерживает три типа разделов: основные, расширенные и логические. Информация о расположении основных разделов хранится в самой главной загрузочной записи — очень небольшом (обычно 512 байт) месте в самом начале диска. Из-за её небольшого размера поддерживаются только четыре основных раздела (например, от /dev/sda1 до /dev/sda4).
Для поддержки большего количества разделов один из основных разделов может быть помечен как расширенный. Этот раздел может содержать логические разделы (разделы внутри раздела).
Хотя большинство производителей материнских карт до сих пор поддерживают таблицы разделов, их принято считать устаревшими. Кроме случаев, когда приходится работать с произведённым до 2010 года оборудованием, наилучшим выбором будет таблица разделов GUID. Те, кто всё-таки следует по пути MBR, должны знать о следующих ограничениях:
- В большинстве материнских карт, произведённых после 2010 года, MBR считается устаревшим режимом загрузки (не всегда хорошо поддерживаемым).
- Из-за использования 32-битных идентификаторов таблицы MBR не поддерживают диски размером свыше 2 ТиБ.
- Без использования расширенных разделов MBR поддерживает максимум только четыре раздела.
- MBR не предоставляет никаких средств резервирования главной загрузочной записи, если какое-либо приложение или пользователь затрёт MBR, вся информация будет потеряна.
Авторы Руководства при установке Gentoo рекомендуют использовать GPT везде, где это возможно.
GPT
GPT (GUID Partition Table, таблица разделов GUID) использует 64-битные идентификаторы разделов. Место, в котором хранится информация о разделах, также гораздо больше, чем 512 байт MBR, что означает, что нет почти никаких ограничений на количество разделов для диска с GPT. Также предельный размер раздела был значительно увеличен (почти 8 ЗиБ — да, зебибайт).
Когда программным интерфейсом системы между операционной системой и прошивкой является UEFI (вместо BIOS), GPT является почти обязательным, так как с MBR будут возникать проблемы совместимости.
Также GPT использует контрольные суммы и избыточность. Он содержит контрольные суммы CRC32 для обнаружения ошибок в заголовке и таблице разделов. У GPT есть резервная таблица в конце диска. Её можно использовать для восстановления первичной таблицы GPT, которая располагается в начале диска.
GPT или MBR
Из приведенного выше описания, можно подумать, что использование GPT должно быть априори рекомендуемым, но тем не менее есть несколько оговорок.
GPT можно использовать на компьютерах с BIOS, но тогда может не работать двойная загрузка с операционными системами Microsoft Windows. Причина в том, что Microsoft Windows будет загружаться в режиме UEFI, если обнаружат метку GPT-раздела.
В некоторых сбойных прошивках материнских плат, настроенных на загрузку в режиме BIOS/CSM/legacy, также могут возникать проблемы с загрузкой с дисков помеченных GPT. В этом случае можно обойти проблему, добавив флаг загрузки/активности на защищённом разделе MBR, который должен быть сделан через fdisk с параметром -t dos
. Благодаря этому таблица разделов будет принудительно перечитана в формате MBR.
Для этого запустите fdisk и переключите флаг, используя a. Нажмите 1 для выбора первого раздела, затем нажмите w для записи изменений на диск и выйдите из приложения fdisk:
user $
fdisk -t dos /dev/sda
Welcome to fdisk (util-linux 2.24.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): a Partition number (1-4): 1 Command (m for help): w
Использование UEFI
При установке Gentoo на систему, использующую UEFI для загрузки операционной системы (вместо BIOS) важно, чтобы был создан системный раздел EFI (EFI System Partition, ESP). Расположенные ниже инструкции для parted содержат необходимую для этого информацию.
ESP должен быть одним из вариантов файловой системы FAT (иногда отображаемый как vfat на системах Linux). В официальной спецификации UEFI говориться о том, что прошивка UEFI может работать с FAT12, 16 и 32, но для ESP рекомендуется использовать FAT32. Продолжим, отформатировав ESP в FAT32:
root #
mkfs.fat -F 32 /dev/sda2
Если раздел ESP не отформатирован под один из вариантов FAT, то не гарантируется, что прошивка UEFI сможет найти загрузчик (или ядро Linux) и, скорей всего, не сможет загрузить систему!
Продвинутая организация хранилища
Btrfs RAID
Как было отмечено выше, btrfs может создавать файловые системы на нескольких устройствах. Файловые системы btrfs, созданные таким образом, могут действовать в следующих режимах: raid0, raid1, raid0, raid5 и raid6. Режимы RAID 5 и 6 значительно были улучшены, но по-прежнему считаются нестабильными. После создания нескольких файловых устройств позднее можно будет добавлять новые и удалять старые устройства с помощью нескольких команд. Btrfs активнее других файловых систем вводит новшества, что делает её не таким дружелюбным к новичкам.
Если вы хотите установить Gentoo на стабильную, хорошо испытанную файловую систему и затем постепенно увеличивать свои знания о новых файловых системах экспериментальным путём, то сперва можно использовать ext4, а затем позднее сконвертировать её в btrfs.
LVM
Установочный CD amd64 предоставляет поддержку Logical Volume Manager (LVM). LVM увеличивает гибкость в создании разделов. Инструкции по установке ниже сконцентрируются на использовании «обычных» разделов, но LVM при необходимости также поддерживается. Посетите статью LVM для более подробной информации. Новички, будьте осторожны: полная поддержка LVM выходит за рамки данного руководства.
Схема разделов по умолчанию
Далее, по ходу руководства будет использоваться следующая схема разделов как простой пример разбиения диска:
Раздел | Файловая система | Размер | Описание |
---|---|---|---|
/dev/sda1 | (bootloader) | 2M | Загрузочный раздел BIOS |
/dev/sda2 | ext2 (или fat32, если будет использоваться UEFI) | 128M | Загрузочный/EFI системный раздел |
/dev/sda3 | (swap) | 512M или больше | Раздел подкачки |
/dev/sda4 | ext4 | Оставшаяся часть диска | Корневой раздел |
Если этого достаточно и был выбран путь использования GPT, то можете сразу переходить к разделу По умолчанию: Использование parted для создания разделов диска. Те, кому по-прежнему нужен MBR (такое бывает!), и будут использовать приведённый образец, могут перейти к разделу Альтернатива: Использование fdisk для создания разделов диска.
И fdisk, и parted являются инструментами для создания разделов. fdisk широко известен, стабилен и рекомендован для создания разделов MBR, а parted стал первым в Linux менеджером блочных устройств, имеющим поддержку разделов GPT. Для тех, кому нравится интерфейс fdisk, могут использовать gdisk (GPT fdisk) как альтернативу parted.
Прежде, чем переходить к инструкциям по созданию разделов, сперва опишем более подробно, какие могут быть схемы разделов, и упомянем о распространенных ошибках.
Разработка схемы разделов
Сколько разделов и насколько больших?
Количество разделов очень сильно зависит от назначения системы. Например, если будет много пользователей, скорее всего, захочется отделить /home/ для повышения безопасности и упрощения резервного копирования. Если Gentoo устанавливается для использования в роли почтового сервера, следует отделить /var/, так как вся почта хранится в /var/. Правильный выбор файловой системы увеличит производительность. Для игровых серверов потребуется отдельный раздел /opt/, так как большинство игровых серверов устанавливается туда. Причины выделения те же, что и для /home/: безопасность и резервное копирование. Определенно не помешает побольше места для /usr/: не только потому, что там хранится большинство приложений, обычно там также находится репозиторий ebuild-файлов Gentoo (по умолчанию находится в /var/db/repos/gentoo), который занимает около 650 МБайт. Эта оценка дискового пространства исключает каталоги binpkgs/ и distfiles/, которые по умолчанию хранятся в /var/cache/.
In most situations on Gentoo, /usr and /var should be kept relatively large in size. /usr hosts the majority of applications available on the system and the Linux kernel sources (under /usr/src). By default, /var hosts the Gentoo ebuild repository (located at /var/db/repos/gentoo) which, depending on the file system, generally consumes around 650 MiB of disk space. This space estimate excludes the /var/cache/distfiles and /var/cache/binpkgs directories, which will gradually fill with source files and (optionally) binary packages respectively as they are added to the system.
Все сильно зависит от того, чего хочет достигнуть администратор. Наличие отдельных разделов или томов имеет следующие плюсы:
- Можно выбрать наиболее подходящую файловую систему для каждого раздела или тома.
- Свободное место во всей системе не закончится внезапно из-за того, что одна-единственная сбойная программа постоянно записывает файлы в раздел или том.
- Необходимая проверка файловых систем будет занимать меньше времени, так как проверка разных разделов может выполняться параллельно (еще больший выигрыш времени дает использование нескольких физических дисков).
- Можно повысить безопасность системы, монтируя часть разделов в режиме только для чтения,
nosuid
(игнорируется бит setuid),noexec
(игнорируется бит исполнения) и так далее.
Однако у множества разделов также есть недостатки. Если они не настроены правильно, может получиться так, что будет огромное количество свободного места на одном разделе и отсутствие его на другом. Другой проблемой является то, что отдельные разделы, особенно для важных точек монтирования, например /usr/ или /var/, часто требуют загрузки initramfs, чтобы смонтировать разделы прежде, чем запустятся другие загрузочные сценарии. Это не всегда является проблемой, так что результаты могут быть разные.
Также существует лимит в 15 разделов для SCSI и SATA, если только на диске не используются метки GPT.
Что по поводу пространства подкачки?
Не существует идеального значения для раздела подкачки. Целью пространства подкачки является предоставление дискового пространства ядру в условиях активного использования оперативной памяти. Пространство подкачки позволяет ядру переносить на диск страницы памяти, которые не будут использоваться в ближайшее время, освобождая память (swap или page-out). Конечно, если эта память вдруг неожиданно понадобится, эти страницы должны быть помещены обратно в память (page-in), что займет некоторое время (так как диски — это очень медленные устройства по сравнению с оперативной памятью).
Если на системе не требуется запускать приложения, требовательные к памяти, либо очень много памяти, то, скорее всего, не нужно много пространства подкачки. Однако раздел подкачки также используется для сохранения всей памяти в случае гибернации. Если планируется использовать гибернацию, то нужно больше пространство подкачки, хотя бы равное количеству оперативной памяти, которое есть в системе.
Что такое загрузочный раздел BIOS?
Загрузочный раздел BIOS — очень маленький (1—2 Мб) раздел, в который загрузчики типа GRUB2 могут разместить дополнительные данные, которые не помещаются в выделенное хранилище (в случае MBR — несколько сотен байт) и не могут быть размещены в другом месте.
Такие разделы не всегда необходимы, но, учитывая небольшой размер занимаемого пространства и трудности, связанные с документированием большого количества различий в разбиении разделов, рекомендуется создать его в любом случае.
Также загрузочный раздел BIOS необходим, когда разметка разделов GPT используется совместно с GRUB2 в режиме PC/BIOS. Раздел не нужен, если загрузка происходит в режиме EFI/UEFI.
По умолчанию: Использование parted для создания разделов диска
В этой главе будет использоваться следующий пример разметки разделов:
Раздел | Описание |
---|---|
/dev/sda1 | Загрузочный раздел BIOS |
/dev/sda2 | Загрузочный раздел |
/dev/sda3 | Раздел подкачки |
/dev/sda4 | Корневой раздел |
Измените структуру разделов в соответствии с личными предпочтениями.
Просмотр текущей разметки разделов с помощью parted
Приложение parted предлагает простой интерфейс для разбития дисков и поддерживает очень большие разделы (более 2 ТБ). Запустите parted, указав имя диска в качестве параметра (в нашем примере мы используем /dev/sda). Рекомендуется также для parted указывать оптимальное выравнивание разделов:
root #
parted -a optimal /dev/sda
GNU Parted 2.3 Using /dev/sda Welcome to GNU Parted! Type 'help' to view a list of commands.
Выравнивание разделов означает, что разделы будут начинаться с известных границ в пределах диска, гарантируя, что операции на диске от уровня операционной системы (извлечения страниц с диска) будут использовать наименьшее количество внутренних операций диска. В случае использования невыровненных разделов может потребоваться извлечь две страницы, даже если операционная система запросила только одну.
Чтобы узнать обо всех параметрах, поддерживаемых parted, введите help.
Установка метки GPT
Большинство дисков в архитектурах x86 или amd64 создаются с меткой msdos. Для размещения метки GPT на диске с помощью parted используйте команду mklabel gpt:
Изменение типа разделов удалит все разделы на диске. Вся информация на диске будет потеряна.
(parted)
mklabel gpt
Чтобы сделать структуру разделов MBR, используйте команду mklabel msdos.
Удаление всех разделов с помощью parted
Сначала удалите все разделы на диске, если это не было сделано ранее (например, после операции mklabel, или если диск был недавно отформатирован). Введите print, чтобы посмотреть текущие разделы и rm <N>, где <N>
— номер раздела для удаления.
(parted)
rm 2
Повторите эту операцию для всех других разделов, в которых нет необходимости. Однако, убедитесь, чтобы не совершили ошибку — parted применяет изменения немедленно (в отличии от fdisk, где пользователю дается возможность «отменить» изменения перед сохранением или выходом).
Создание разделов
Теперь с помощью parted создадим разделы со следующими параметрами:
- Используемый тип раздела. Обычно это основной раздел. Если используется метка раздела msdos, то учтите, что основных разделов может быть только 4. Если необходимо больше четырёх, то необходимо сначала создать расширенный раздел, а затем создать внутри него логические.
- Начальная позиция раздела (которая может быть выражена в MB, GB, ...)
- Конечная позиция раздела (которая может быть выражена в MB, GB, ...)
Во-первых, необходимо сказать parted, что единицами объёма, с которыми мы будем работать, являются мегабайты (на самом деле мебибайты, сокращенно МиБ, являющиеся «стандартным» обозначением, но мы будем использовать МБайт в тексте, поскольку это намного более распространено):
(parted)
unit mib
Теперь создайте раздел размером 2 МБ, который позже будет использоваться загрузчиком GRUB2. Используя команду mkpart, сообщите parted, что раздел начинается с 1 МБайт от начала диска и заканчивается на 3 МБайт (для создания раздела размером 2 МБайт).
(parted)
mkpart primary 1 3
(parted)
name 1 grub
(parted)
set 1 bios_grub on
(parted)
print
Model: Virtio Block Device (virtblk) Disk /dev/sda: 20480MiB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 1.00MiB 3.00MiB 2.00MiB grub bios_grub
Сделайте тоже самое для загрузочного раздела (128 МБайт), раздела подкачки (в примере — 512 МБайт) и корневого раздела, который занимает все оставшееся пространство (для него конец помечается как -1, что означает конец диска минус один МБайт, это подходит для последнего раздела).
(parted)
mkpart primary 3 131
(parted)
name 2 boot
(parted)
mkpart primary 131 643
(parted)
name 3 swap
(parted)
mkpart primary 643 -1
(parted)
name 4 rootfs
При использовании интерфейса UEFI для загрузки системы (вместо BIOS), пометьте загрузочный раздел как системный раздел EFI. Parted делает это автоматически, когда для раздела устанавливается параметр boot:
(parted)
set 2 boot on
Итоговый результат выглядит так:
(parted)
print
Model: Virtio Block Device (virtblk) Disk /dev/sda: 20480MiB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 1.00MiB 3.00MiB 2.00MiB grub bios_grub 2 3.00MiB 131MiB 128MiB boot boot 3 131MiB 643MiB 512MiB swap 4 643MiB 20479MiB 19836MiB rootfs
При установке на UEFI, на разделе boot будут отображаться флаги boot и esp.
Используйте команду quit для выхода из parted.
Альтернатива: Использование fdisk для создания разделов диска
Хотя последние версии fdisk поддерживают GPT, в этом функционале до сих пор есть некоторые проблемы. Инструкции, приведённые ниже, предполагают, что для разметки разделов используется MBR.
Следующие части объяснят, как создать структуру разделов из примера с использованием fdisk (пример структуры разделов приводился выше):
Раздел | Описание |
---|---|
/dev/sda1 | Загрузочный раздел BIOS |
/dev/sda2 | Загрузочный раздел |
/dev/sda3 | Раздел подкачки |
/dev/sda4 | Корневой раздел |
Измените структуру разделов в соответствии с личными предпочтениями.
Просмотр текущей разметки разделов
fdisk является популярным и мощным инструментом для создания разделов на диске. Запустите fdisk, передав в качестве параметра имя диска (в нашем примере мы используем /dev/sda):
root #
fdisk /dev/sda
Чтобы использовать поддержку GPT, добавьте
-t gpt
. Рекомендуется внимательно изучить вывод fdisk в случае, если более новые версии fdisk перестанут использовать схему MBR по умолчанию. Дальнейшие инструкции предполагают схему MBR.Нажмите на клавишу p для отображения текущей конфигурации разделов:
Command (m for help):
p
Disk /dev/sda: 240 heads, 63 sectors, 2184 cylinders Units = cylinders of 15120 * 512 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 14 105808+ 83 Linux /dev/sda2 15 49 264600 82 Linux swap /dev/sda3 50 70 158760 83 Linux /dev/sda4 71 2184 15981840 5 Extended /dev/sda5 71 209 1050808+ 83 Linux /dev/sda6 210 348 1050808+ 83 Linux /dev/sda7 349 626 2101648+ 83 Linux /dev/sda8 627 904 2101648+ 83 Linux /dev/sda9 905 2184 9676768+ 83 Linux
Данный диск был разбит на семь файловых систем Linux (каждый раздел соответственно подписан как «Linux»), а также раздел подкачки (названный как «Linux swap»).
Удаление всех разделов с помощью fdisk
Сначала удалите все существующие разделы на диске. Нажмите d для удаления раздела. Например, чтобы удалить существующий /dev/sda1:
Command (m for help):
d
Partition number (1-4): 1
Теперь раздел отмечен для удаления. Он больше не будет отображаться в списке разделов при вводе p, но не будет удален, пока не будут сохранены изменения. Это даёт возможность пользователю прервать операцию, если была допущена ошибка — в этом случае сразу нажмите q и Enter, и раздел не будет удален.
Удалите все разделы, поочерёдно нажимая на p для вывода списка разделов, d и номер раздела — для удаления. В конечном счете, таблица разделов будет пуста:
Command (m for help):
p
Disk /dev/sda: 30.0 GB, 30005821440 bytes 240 heads, 63 sectors/track, 3876 cylinders Units = cylinders of 15120 * 512 = 7741440 bytes Device Boot Start End Blocks Id System
Теперь, когда запомненная в памяти таблица разделов пуста, мы готовы создавать разделы.
Создание загрузочного раздела BIOS
Сначала создадим небольшой загрузочный раздел BIOS. Нажмите n, чтобы создать новый раздел, затем p, чтобы выбрать основной раздел, следом 1 для выбора первого основного раздела. При запросе первого сектора, убедитесь, что он начинается с 2048 (что требуется для загрузчика) и нажмите Enter. При запросе последнего сектора введите +2M для создания раздела размером 2 Мбайт:
Начало с сектора 2048 является подстраховкой на случай, чтобы начальный загрузчик не обнаружил этот раздел в качестве доступного для использования.
Command (m for help):
n
Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First sector (64-10486533532, default 64): 2048 Last sector, +sectors +size{M,K,G} (4096-10486533532, default 10486533532): +2M
Пометьте раздел, в случае использования UEFI:
Command (m for help):
t
Selected partition 1 Hex code (type L to list codes): 4 Changed system type of partition 1 to 4 (BIOS boot)
Использование UEFI со структурой разделов MBR не рекомендуется. Если система поддерживает UEFI, используйте структуру GPT.
Создание загрузочного раздела
Теперь создадим небольшой загрузочный раздел. Введите n, чтобы создать новый раздел, затем p, чтобы выбрать основной раздел, следом 2 для выбора второго основного раздела. При запросе первого сектора, примите предложенное по умолчанию значение, нажав Enter. При запросе последнего сектора введите +128M для создания раздела размером 128 Мбайт:
Command (m for help):
n
Command action e extended p primary partition (1-4) p Partition number (1-4): 2 First sector (5198-10486533532, default 5198): (Hit enter) Last sector, +sectors +size{M,K,G} (4096-10486533532, default 10486533532): +128M
Теперь при нажатии p отображаются следующие разделы:
Command (m for help):
p
Disk /dev/sda: 30.0 GB, 30005821440 bytes 240 heads, 63 sectors/track, 3876 cylinders Units = cylinders of 15120 * 512 = 7741440 bytes Device Boot Start End Blocks Id System /dev/sda1 1 3 5198+ ef EFI (FAT-12/16/32) /dev/sda2 3 14 105808+ 83 Linux
Введите a для переключения флага загрузки и выберите 2. При повторном нажатии на p в столбце «Boot» будет отображён знак звёздочки (*).
Создание раздела подкачки
Для создания раздела подкачки введите n, чтобы создать новый раздел, затем p, чтобы сказать fdisk
, что раздел должен быть основной. Затем введите 3 для создания третьего основного раздела, /dev/sda3. При появлении запроса последнего сектора, наберите +512M (или любой другой размер, необходимый для подкачки) для создания раздела размером 512 Мбайт.
После этого введите t для выбора типа раздела, 3 для выбора только что созданного раздела и введите 82, чтобы установить тип раздела как «Linux Swap».
Создание корневого раздела
Наконец, чтобы создать корневой раздел, введите n, чтобы создать новый раздел, затем p, чтобы сказать fdisk, что создаваемый раздел должен быть основным. Затем введите 4, чтобы создать четвертый основной раздел, /dev/sda4. При запросе первого сектора нажмите Enter. При запросе последнего нажмите Enter, чтобы создать раздел, занимающий все оставшееся доступное пространство диска. После завершения этих шагов введите p для вывода на экран таблицы разделов, которая выглядит например так:
Command (m for help):
p
Disk /dev/sda: 30.0 GB, 30005821440 bytes 240 heads, 63 sectors/track, 3876 cylinders Units = cylinders of 15120 * 512 = 7741440 bytes Device Boot Start End Blocks Id System /dev/sda1 1 3 5198+ ef EFI (FAT-12/16/32) /dev/sda2 * 3 14 105808+ 83 Linux /dev/sda3 15 81 506520 82 Linux swap /dev/sda4 82 3876 28690200 83 Linux
Сохранение разметки разделов
Для сохранения разметки разделов и выхода из fdisk введите w.
Command (m for help):
w
Разделы созданы, теперь настало время создать на них файловые системы.
Создание файловых систем
Введение
Теперь, когда разделы созданы, пора разместить на них файловые системы. В следующем разделе описаны различные поддерживаемые в Linux файловые системы. Те из читателей, кто уже знает, какую файловую систему будет использовать, могут продолжить с раздела Создание файловой системы. Другим стоит продолжить чтение, чтобы узнать о доступных вариантах…
Файловые системы
На выбор доступно несколько файловых систем. Некоторые из них считаются стабильными на архитектуре amd64. Рекомендуется прочитать информацию о файловых системах и об их состоянии поддержки перед тем, как останавливать свой выбор на экспериментальных.
- btrfs
- Файловая система следующего поколения, обеспечивающая множество дополнительных функций, таких как мгновенные снимки, самовосстановление с помощью контрольных сумм, поддержка прозрачного сжатия, субтомов и интегрированный RAID. Некоторые дистрибутивы начали предлагать её из коробки, но она ещё не готова к использованию в промышленной среде. Отчеты о повреждении файловой системы достаточно часты. Ради большей надёжности разработчики призывают пользователей использовать последнюю версию ядра, так как старые версии подвержены известным проблемам. ФС разрабатывается уже много лет и пока далека до завершения. Исправления иногда портируются в более старые версии ядра. Используйте с осторожностью эту файловую систему!
- ext2
- Это проверенная и надежная файловая система Linux, но она не обладает средствами журналирования метаданных, что означает, что проверка файловой системы ext2 при запуске может занимать довольно много времени. Существует достаточно широкий выбор журналируемых файловых систем нового поколения, целостность которых может быть проверена очень быстро, что является преимуществом перед нежурналируемыми системами. Журналирование файловой системы позволяет избежать долгих задержек при загрузке системы, а также избежать её нестабильного состояния.
- ext3
- Журналируемая версия файловой системы ext2, обеспечивающая журналирования метаданных для быстрого восстановления в дополнение к другим режимам журналирования, таким как журналирование всех данных и упорядоченных данных. В данной ФС используются индексы на базе деревьев хешей, что в большинстве случаев обеспечивает высокую производительность. Вкратце, ext3 — это очень хорошая и надёжная файловая система.
- ext4
- Изначально созданная как ответвление от ext3, ext4 реализует новые возможности, повышение производительности и устранение ограничений на размер раздела на диске ценой незначительного изменения формата данных на диске. Она может быть размером до 1 ЭБ, а максимальный размер файла может составлять 16ТБ. Вместо классического ext2/3 блочного распределения ext4 использует экстенты, которые улучшают производительность при работе с большими файлами и уменьшают фрагментацию. Ext4 также обеспечивает более сложные алгоритмы распределения блоков (отложенное распределение и мультиблочное распределение), дающие драйверу файловой системы больше возможностей по оптимизации размещения данных на диске. Ext4 рекомендуется как универсальная файловая система для всех платформ.
- f2fs
- Файловая система (Flash-Friendly File System) была создана Samsung для использования на NAND-накопителях. По состоянию на 2 квартал 2016 года файловая система считается не завершенной, но она может быть достойным выбором при установке на microSD карту, USB-накопитель или другие накопители.
- JFS
- Высокопроизводительная журналируемая файловая система от IBM. JFS — это легкая, быстрая и надежная файловая система, основанная на двоичных деревьях с хорошей производительностью в различных условиях.
- ReiserFS
- Основанная на двоичных деревьях журналируемая файловая система с хорошей общей производительностью, особенно при работе с множеством мелких файлов ценой чутью больших затрат центрального процессора. По сравнению с другими файловыми системами, ReiserFS меньше поддерживается.
- XFS
- Файловая система с журналированием метаданных, которая поставляется с мощным набором функций и оптимизирована для масштабируемости. XFS менее снисходительно относится к различным аппаратным проблемам.
- vfat
- Так же известна как FAT32, поддерживается Linux, но без поддержки разрешений к файлам. В основном используется для взаимодействия с другими операционными системами (в основном Microsoft Windows), но также необходима при использовании некоторых системных прошивок (например, UEFI).
- NTFS
- New Technology Filesystem является основной файловой системой для Microsoft Windows. Как и vfat, она не сохраняет настройки разрешений и расширенные атрибуты, необходимые для нормальной работы BSD или Linux, поэтому она не может быть использована как корневая файловая система. Её необходимо использовать только для взаимодействия с системами Microsoft Windows (обратите внимание на акцент слова только).
При использовании ext2, ext3 или ext4 на малых разделах (менее 8 Гб) файловая система должна быть создана с особыми параметрами для резервирования достаточного количества индексных дескрипторов (inodes). Приложение mke2fs (mkfs.ext2) использует настройки «bytes-per-inode» для вычисления количества необходимых дескрипторов. На небольших разделах рекомендуется увеличивать расчётное количество дескрипторов.
Для ext2, ext3 или ext4 может быть выполнена одна из следующих команд:
root #
mkfs.ext2 -T small /dev/<device>
root #
mkfs.ext3 -T small /dev/<device>
root #
mkfs.ext4 -T small /dev/<device>
Данные команды учетверяют количество индексных дескрипторов для такой ФС, так как «bytes-per-inode» уменьшает количество байт на каждый дескриптор с 16 кб до 4 кб. Это соотношение может быть изменено в любую сторону с помощью команды:
root #
mkfs.ext2 -i <ratio> /dev/<device>
Создание файловой системы
Для создания файловых систем на разделе или томе существуют пользовательские утилиты для каждого возможного типа файловой системы. Нажмите на имя файловой системы в таблице ниже для получения дополнительной информации о каждой файловой системе:
Файловая система | Команда для создания | Есть на минимальном CD? | Пакет |
---|---|---|---|
btrfs | mkfs.btrfs | Да | sys-fs/btrfs-progs |
ext2 | mkfs.ext2 | Да | sys-fs/e2fsprogs |
ext3 | mkfs.ext3 | Да | sys-fs/e2fsprogs |
ext4 | mkfs.ext4 | Да | sys-fs/e2fsprogs |
f2fs | mkfs.f2fs | Да | sys-fs/f2fs-tools |
jfs | mkfs.jfs | Да | sys-fs/jfsutils |
reiserfs | mkfs.reiserfs | Да | sys-fs/reiserfsprogs |
xfs | mkfs.xfs | Да | sys-fs/xfsprogs |
vfat | mkfs.vfat | Да | sys-fs/dosfstools |
NTFS | mkfs.ntfs | Да | sys-fs/ntfs3g |
Например, чтобы создать загрузочный раздел (/dev/sda2) в ext2 и корневой раздел (/dev/sda4) в ext4 при использовании структуры разделов из примера, используются следующие команды:
root #
mkfs.ext2 /dev/sda2
root #
mkfs.ext4 /dev/sda4
Теперь создайте файловые системы на только что созданных томах (или логических разделах).
Активация раздела подкачки
Для инициализации разделов подкачки используется команда mkswap:
root #
mkswap /dev/sda3
Чтобы активировать раздел подкачки, используйте swapon:
root #
swapon /dev/sda3
Создайте и активируйте раздел подкачки командами выше.
Монтирование корневого раздела
Теперь, когда созданы разделы и размещённые на них файловые системы, настало время их смонтировать. Используйте команду mount, только не забудьте предварительно создать каталоги для монтирования каждого созданного раздела. В качестве примера мы смонтируем корневой раздела:
root #
mount /dev/sda4 /mnt/gentoo
Если /tmp/ находится на отдельном разделе, не забудьте после монтирования изменить права доступа:
root #
chmod 1777 /mnt/gentoo/tmp
Позже в инструкции будут смонтированы файловая система proc (виртуальный интерфейс к ядру) и другие псевдофайловые системы ядра. Но сначала мы установим установочные файлы Gentoo.
Установка архива stage
Установка времени и даты
Перед установкой Gentoo было бы неплохо проверить корректность настройки даты и времени. Неправильно настроенные часы могут привести к странным результатам, так как базовые системные файлы должны быть извлечены с правильными временными метками. К тому же, в силу того, что часть сайтов и сервисов использует шифрование (SSL/TLS), может случиться, что будет невозможно скачать установочные файлы из-за большого расхождения системных часов!
Проверьте текущую дату и время с помощью команды date:
root #
date
Mon Oct 3 13:16:22 PDT 2016
Если время и дата неверны, обновите их, используя один из методов ниже.
Материнские платы без Real-Time Clock (RTC) необходимо настроить для автоматической синхронизации системных часов с сервером времени. Это также справедливо для систем у которых есть RTC, но разряжена батарейка.
Автоматическая настройка
Официальный установочный носитель Gentoo включает в себя команду ntpd (поставляется в пакете net-misc/ntp). Официальный установочный носитель включает конфигурационный файл, настроенный для синхронизации с серверами времени ntp.org. Его можно использовать для автоматической синхронизации системных часов в UTC-время. Для этого метода необходима настроенная сеть, кроме того, он может быть не работать на некоторых архитектурах.
Автоматическая синхронизация времени имеет свою цену. Сведения об IP-адресе и связанная с сетевыми настройками информация будет отправляться на сервер времени (в данном примере — на ntp.org). Пользователи, озабоченные безопасностью, должны быть осведомлены об этом до настройки системных часов с помощью указанного метода.
root #
ntpd -q -g
Ручная настройка
Команда date также может использоваться для ручной установки системных часов. Используйте синтаксис MMDDhhmmYYYY
(M — месяц, D — день, h — час, m — минута и Y — год).
Для систем Linux рекомендуется использовать время UTC. Позже, в процессе установки, можно будет установить часовой пояс. Это позволит изменить отображение часов с учётом местного времени.
Например, чтобы установить дату на 13:16 3 октября 2016 года:
root #
date 100313162016
Выбор архива stage
Multilib (32 и 64 бит)
Выбор правильного базового архива для системы впоследствии может сэкономить значительное количество времени, затраченное на установку, особенно в тот момент, когда понадобится выбирать системный профиль. Выбранный архив будет непосредственно влиять на конфигурацию будущей системы и не будет стоить зря потраченных нервов. В архиве multilib предпочтение отдаётся 64-битным библиотекам, но, если необходимо обеспечение совместимости, есть возможность использовать 32-битные версии. Это великолепный выбор для большинства установок, так как он обеспечивает большую гибкость конфигурации в будущем. Если необходимо, чтобы система могла легко переключаться с профиля на профиль, то следует выбирать архив multilib для своей процессорной архитектуры.
Большинству пользователей не следует использовать «продвинутые» варианты архивов; они предназначены для конкретных программных или аппаратных конфигураций.
No-multilib (чистый 64-bit)
no-multilib архив в качестве основы для системы обеспечивает полноценную 64-битную среду. Однако это будет означать, что переключиться на профили multilib будет трудноосуществимо (хотя это и возможно). Пользователям, которые только начинают знакомиться с Gentoo, следует избегать использование архива no-multilib (если только это не продиктовано другими соображениями).
Имейте в виду, миграция с no-multilib на multilib потребует чрезвычайно хорошего знания Gentoo и наличия набора инструментов разработки более низкого уровня (от которых наших разработчиков Toolchain может даже бросить дрожь). Данный процесс не для слабонервных и выходит за рамки данного руководства.
Скачивание архива stage
Перейдите к точке монтирования Gentoo, где размещается корневая файловая система (скорей всего это /mnt/gentoo):
root #
cd /mnt/gentoo
В зависимости от установочного носителя, для скачивания архива stage достаточно простого веб-браузера.
Графические веб-браузеры
У пользователей, использующих среду с полноценными веб-браузерами, не будет никаких проблем с копированием URL файла stage из раздела загрузки главного веб-сайта. Просто выберите подходящую вкладку, щёлкните правой кнопкой по ссылке файла stage, выберите Копировать ссылку (Firefox) или Копировать адрес ссылки (Chromium), скопировав её в буфер обмена. Затем вставьте ссылку в командной строке после команды wget для скачивания архива:
root #
wget <PASTED_STAGE_URL>
Веб-браузер в командной строке
Более опытные пользователи или «старики» Gentoo, которые работают исключительно из командной строки, могут воспользоваться 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. Как и 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/amd64/autobuilds/. Там отображаются все доступные stage-файлы (они могут находиться в подкаталогах с названиями отдельных субархитектур). Выберите нужный и нажмите d для скачивания.
После завершения скачивания можно проверить целостность и достоверность содержимого архива stage. Если вам это интересно, перейдите к следующему разделу.
Тем, кому не интересно проверять архив stage, могут закрыть браузер в командной строке с помощью клавиши q и сразу перейти к разделу #Распаковка архива stage.
Проверка и валидация
Некоторые архивы упакованы с помощью алгоритма сжатия xz. Скачивая архив в формате .tar.xz, измените его имя с .tar.bz2 в последующих командах.
Как и в случае с минимальными установочными компакт-дисками, доступно несколько файлов, необходимых для проверки и валидации файла stage. Хотя этот шаг может быть пропущен, эти файлы могут пригодиться пользователям, которым важна достоверность только что скачанных файлов.
- Файл .CONTENTS содержит список всех файлов внутри stage архива.
- Файл .DIGESTS содержит контрольные суммы в разных алгоритмах для файла stage.
- Файл .DIGESTS.asc, как и .DIGESTS, содержит не только контрольные суммы в различных алгоритмах, но и криптографическую подпись, позволяющую убедиться, что файл был предоставлен проектом Gentoo.
Для сравнения контрольных сумм из файлов .DIGESTS и .DIGESTS.asc можно использовать openssl.
Например, для проверки контрольной суммы SHA512:
root #
openssl dgst -r -sha512 stage3-amd64-<release>.tar.?(bz2|xz)
Также можно использовать команду sha512sum:
root #
sha512sum stage3-amd64-<release>.tar.?(bz2|xz)
Для проверки контрольной суммы Whirlpool:
root #
openssl dgst -r -whirlpool stage3-amd64-<release>.tar.?(bz2|xz)
Сравните вывод этих команд со значением в файле .DIGESTS(.asc). Значения должны совпадать, иначе загруженный файл может быть поврежден (или сам файл digest).
Как и в случае с файлом ISO, можно проверить криптографическую подпись файла .DIGESTS.asc с помощью gpg, чтобы убедиться, что контрольные суммы не были подделаны:
root #
gpg --verify stage3-amd64-<release>.tar.?(bz2|xz){.DIGESTS.asc,}
Распаковка архива stage
Теперь распакуем загруженный stage в систему. Для этого воспользуемся командой tar:
root #
tar xpvf stage3-*.tar.bz2 --xattrs-include='*.*' --numeric-owner
Убедитесь, что указаны те же самые параметры (xpf
и --xattrs-include='*.*'
). x
указывает на извлечение (extract), p
для сохранения (preserve) прав доступа и f
для обозначения, что мы хотим извлечь файл (file), а не стандартный ввод. --xattrs-include='*.*'
позволит также сохранить расширенные атрибуты во всех пространствах имен, хранящиеся в архиве. Наконец, --numeric-owner
используется для того, чтобы убедиться, что идентификаторы пользователей и групп распаковываемых файлов останутся такими же, как и задумывались командой Gentoo по подготовке релизов (даже если предприимчивые пользователи не используют официальный установочный носитель Gentoo).
Теперь, когда stage распакован, перейдём к настройке параметров компиляции.
Настройка параметров компиляции
Введение
Для оптимизации Gentoo можно установить несколько переменных, влияющих на поведение пакетного менеджера Portage. Все переменные могут быть установлены в виде переменных среды (с помощью export), но это не является постоянным решением. Чтобы сохранить изменения, следует изменить /etc/portage/make.conf, являющийся основным конфигурационным файлом Portage.
Список и описание всех допустимых переменных можно найти в /mnt/gentoo/usr/share/portage/config/make.conf.example. Для успешной установки Gentoo достаточно определить только те переменные, которые упомянуты ниже.
Запустите редактор (в этом руководстве мы используем nano) для изменения параметров оптимизации, о которых написано далее.
root #
nano -w /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="-march=native -O2 -pipe" # Используйте те же настройки для обеих переменных CFLAGS="${COMMON_FLAGS}" CXXFLAGS="${COMMON_FLAGS}"
Хотя руководство по оптимизации GCC имеет больше информации о том, как различные параметры компиляции могут повлиять на систему, статья Safe CFLAGS будет более полезной для начинающих пользователей, желающих оптимизировать свою систему.
MAKEOPTS
Переменная MAKEOPTS определяет, сколько параллельных процессов компиляции должно запускаться при установке пакета. Хорошим вариантом будет использовать количество процессоров (или ядер процессора) в системе плюс один, но это вариант не всегда идеален.
MAKEOPTS="-j2"
На старт, внимание, марш!
Обновите /mnt/gentoo/etc/portage/make.conf файл в соответствии с личными предпочтениями и сохраните изменения (в nano нужно нажать Ctrl+X).
Переходите к установке базовой системы Gentoo.
Переход в изолированную среду
Необязательно: Выбор зеркала
Распределение файлов
Для быстрой загрузки исходного кода рекомендуется выбрать быстрое зеркало. Portage будет искать в файле make.conf переменную GENTOO_MIRRORS и использовать перечисленные в ней зеркала. Можно просмотреть список зеркал Gentoo и найти зеркало (или зеркала), наиболее близко расположенное к месту физического расположения (чаще всего они и есть самые быстрые). Тем не менее, мы предоставляем хороший инструмент под названием mirrorselect, который предлагает удобный интерфейс для выбора подходящего зеркала. Просто перейдите на нужное зеркало и нажмите пробел для выбора одного или нескольких.
root #
mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
Репозиторий ebuild-файлов Gentoo
Вторым важным шагом в выборе зеркала является настройка репозитория 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-uri по умолчанию будет определять местоположение зеркала на основе ротации. Это позволяет ослабить сетевую нагрузку на инфраструктуру Gentoo и повышает отказоустойчивость в случаях, когда конкретное зеркало недоступно. Рекомендуется придерживаться URI по умолчанию, если не используется локальное зеркало Portage.
Интересующиеся могут ознакомиться с официальными спецификациями API плагинов синхронизации Portage в статье Sync Portage проекта.
Копирование информации о 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), которая содержит все файлы устройств
Каталог /proc/ монтируется в /mnt/gentoo/proc/, остальные два каталога — через перепривязку точки монтирования. Это означает, что, например, /mnt/gentoo/sys/ на самом деле будет /sys/ (это просто вторая точка входа в ту же файловую систему), тогда как /mnt/gentoo/proc/ является новой точкой монтирования (так сказать, экземпляром) файловой системы.
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
Параметр
--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
Переход в новое окружение
Теперь, когда все разделы инициализированы и базовое окружение установлено, настало время войти в новое установочное окружение (выполнить 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.
Монтирование раздела boot
После входа в новое окружение необходимо смонтировать раздел boot. Он необходим в процессе компиляции ядра и установки загрузчика:
root #
mount /dev/sda2 /boot
Настройка Portage
Установка снимка репозитория ebuild-файлов Gentoo
Следующим шагом будет установка снимка репозитория ebuild-файлов Gentoo. Этот снимок содержит коллекцию файлов, которая сообщает Portage о доступных программах (для установки), какой профиль может выбрать системный администратор, о новостях о конкретных пакетах или профилях и так далее.
emerge-webrsync рекомендуется использовать в случаях, когда система находится за межсетевым экраном (для загрузки снимка используется только протоколы HTTP/HTTPS), а также когда необходимо снизить нагрузку канал сети. У кого нет ограничений с сетью или шириной канала, могут счастливо перейти к следующему разделу.
Команда ниже загрузит последний снимок (которые выпускаются каждый день), с одного из зеркал Gentoo, и распакует его в системе:
root #
emerge-webrsync
Во время этой операции, emerge-webrsync может жаловаться на отсутствие /var/db/repos/gentoo/. В этом нет ничего страшного — инструмент сам создаст этот каталог.
Начиная с этого места, Portage может попросить установить некоторые рекомендуемые обновления: некоторые системные пакеты, установленные из архива stage, могут иметь новые доступные версии. Пакетному менеджеру теперь известно о новых пакетах благодаря снимку репозитория. Обновление пакетов можно проигнорировать, этот процесс можно отложить до завершения установки Gentoo.
Необязательно: Обновление репозитория ebuild-файлов Gentoo
Также можно обновить репозиторий 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
Выбор подходящего профиля
Профиль — это важная часть любой системы Gentoo. Он не только определяет такие важные переменные, как USE, CFLAGS и многие другие, а также фиксирует версии для определённых пакетов. Все эти нюансы поддерживаются разработчиками Portage в Gentoo.
Вы можете увидеть, какой профиль в настоящее время используется в системе, с помощью команды eselect, только теперь с модулем profile
:
root #
eselect profile list
Available profile symlink targets: [1] default/linux/amd64/17.1 * [2] default/linux/amd64/17.1/desktop [3] default/linux/amd64/17.1/desktop/gnome [4] default/linux/amd64/17.1/desktop/kde
Вывод команды является только примером и может меняться время от времени.
Как можно увидеть, для некоторых архитектурах есть субпрофиль для настольных систем.
Не стоит халатно относиться к обновлениям профиля. Выбирая изначальный профиль, убедитесь, что профиль соответствует той же версии, которая была использована в stage3 (к примеру, 17.1). Каждая новая версия профиля объявляется через элемент новостей с инструкциями по миграции. Прочитайте и следуйте им, прежде чем перейти на новый профиль.
После просмотра доступных профилей для архитектуры amd64, пользователи могут выбрать другой системный профиль:
root #
eselect profile set 2
No-multilib
Если необходимо чистое 64-битное окружение, без 32-битных приложений или библиотек, выберите профиль no-multilib:
root #
eselect profile list
Available profile symlink targets: [1] default/linux/amd64/13.0 * [2] default/linux/amd64/13.0/desktop [3] default/linux/amd64/13.0/desktop/gnome [4] default/linux/amd64/13.0/desktop/kde [5] default/linux/amd64/13.0/no-multilib
Далее выберите профиль no-multilib:
root #
eselect profile set 5
root #
eselect profile list
Available profile symlink targets: [1] default/linux/amd64/13.0 [2] default/linux/amd64/13.0/desktop [3] default/linux/amd64/13.0/desktop/gnome [4] default/linux/amd64/13.0/desktop/kde [5] default/linux/amd64/13.0/no-multilib *
systemd
Если вы хотите использовать systemd в качестве системы инициализации, выберите профиль со словом systemd
в названии профиля:
root #
eselect profile set default/linux/amd64/13.0/systemd
root #
eselect profile list
Available profile symlink targets: [10] default/linux/amd64/13.0/developer [11] default/linux/amd64/13.0/no-multilib [12] default/linux/amd64/13.0/systemd * [13] default/linux/amd64/13.0/x32 [14] hardened/linux/amd64
Как показано выше, можно использовать полное имя профиля вместо числового значения.
Подпрофиль
developer
сделан специально для разработки Gentoo Linux и не предназначен для использования обычными пользователями.Обновление набора @world
На данный момент разумно будет обновить @world чтобы базовая часть системы изменилась.
Это действие необходимо, чтобы система могла применить какие-либо обновления с момента сборки stage3 и обновления профиля:
root #
emerge --ask --verbose --update --deep --newuse @world
Если до этого был выбран профиль для полноценной графической оболочки, процесс установки может занять значительное время. Оценить время установки очень просто: чем короче имя профиля, тем меньше будет набор @world; чем меньше набор @world, тем меньше пакетов системе потребуется. Другими словами:
- При выборе
default/linux/amd64/17.1
потребует обновления небольшого количества пакетов, когда как - При выборе
default/linux/amd64/17.1/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 -qt4 -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 -w /etc/portage/make.conf
/etc/portage/make.conf
Настройки USE для системы ориентированной для использования KDE/Plasma с поддержкой DVD, ALSA и записи CDUSE="-gtk -gnome qt4 qt5 kde dvd alsa cdr"
Если USE-флаг определён в /etc/portage/make.conf, он будет добавлен (или удалён, если перед USE-флагом написан знак -) в список по умолчанию. Если вы хотите, чтобы все определённые флаги USE были проигнорированы, и полностью настраивать флаги самостоятельно, то добавьте в начало переменной USE в make.conf комбинацию -*
:
/etc/portage/make.conf
Игнорирование USE-флагов по умолчаниюUSE="-* X acl alsa"
Пусть это и возможно, но установка
-*
(как в примере выше) не одобряется, так как в некоторых пакетах могут присутствовать тщательно подобранные наборы USE-флагов для конкретных пакетов, чтобы избежать конфликтов и прочих ошибок.Необязательно: Настройка переменной ACCEPT_LICENSE
Каждый пакет в Gentoo помечаются лицензией (или лицензиями), под условиями которой возможно его использование. Это даёт пользователям перед установкой возможность выбирать программы с определёнными лицензиями или группами лицензий.
Переменная LICENSE в ebuild является только ориентиром для разработчиков и пользователей Gentoo. Она не является юридически значимым заявлением и не гарантирует, что условия использования соответствуют действительности. Не стоит доверять ей безоговорочно и при необходимости следует проводить полный аудит всех файлов используемого пакета самостоятельно.
Portage использует переменную ACCEPT_LICENSE, чтобы определить пакеты, которые можно установить без вопросов к пользователю о выбранных лицензиях. Также можно делать исключения для определённых пакетов через /etc/portage/package.license.
Группы лицензий, определённые в репозитории Gentoo и Проектом Лицензий Gentoo:
Имя группы | Описание |
---|---|
@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 | Лицензионные соглашения, которые пытаются отобрать ваши права. Они более строги, чем «все права защищены», или могут требовать явного согласия. |
В профилях Gentoo предусмотрено значение по умолчанию, к примеру:
user $
portageq envvar ACCEPT_LICENSE
@FREE
Это можно настроить на уровне системы, изменив /etc/portage/make.conf таким образом, чтобы, к примеру, разрешить пакеты с лицензиями, одобренными Free Software Foundation, the Open Source Initiative или следующими Определению Свободного ПО:
/etc/portage/make.conf
Customizing ACCEPT_LICENSEACCEPT_LICENSE="-* @FREE"
Также можно добавить переопределение допустимых лицензий для конкретных пакетов, например:
/etc/portage/package.license/kernel
Пример переопределения допустимых лицензийapp-arch/unrar unRAR sys-kernel/linux-firmware @BINARY-REDISTRIBUTABLE sys-firmware/intel-microcode intel-ucode
Часовой пояс
Определите, какой часовой пояс будет установлен для системы. Просмотрите список всех доступных часовых поясов в каталоге /usr/share/zoneinfo/, затем запишите выбранный в файл /etc/timezone.
root #
ls /usr/share/zoneinfo
Предположим, что необходимо установить часовой пояс Europe/Brussels:
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
Настройка локалей
Генерация локалей
Большинству пользователей достаточно иметь одну или две локали на своих системах.
Локаль указывает не только язык, который использует пользователь при взаимодействии с системой, но и правила для сортировки строк, формат вывода даты и времени, и так далее. Локали являются регистрозависимыми и должны использоваться так, как они описаны. Полный список доступных локалей можно найти в файле /usr/share/i18n/SUPPORTED.
Локали, поддерживаемые системой, должны быть указаны в /etc/locale.gen.
root #
nano -w /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.
Выбор локали
Теперь настало время установить локаль для всей системы. И снова мы используем 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] POSIX [7] ru_RU.utf8 [8] ru_RU.UTF-8 [ ] (free form)
Команда eselect locale set <NUMBER> установит необходимую локаль:
root #
eselect locale set 8
Это также можно сделать вручную, с помощью файла /etc/env.d/02locale:
/etc/env.d/02locale
Ручная настройка системной локалиLANG="ru_RU.UTF-8" LC_COLLATE="C"
Установка локали предотвратит появление предупреждений и ошибок в процессе компиляции ядра и программ.
Заново перезагрузите окружение:
root #
env-update && source /etc/profile && export PS1="(chroot) ${PS1}"
Полное руководство локализации может дать дополнительную информацию, связанную с работой с локалями. Также стоит взглянуть на статью UTF-8 с очень подробной информацией о том, как включить поддержку UTF-8 в системе.
Установка исходного кода
Все дистрибутивы строятся вокруг ядра Linux. Ядро является слоем между пользовательскими программами и оборудованием системы. Gentoo предоставляет несколько вариантов исходного кода ядра. Полный список с описанием доступен на странице статье Общие сведения о ядре.
Для систем, основанных на amd64 архитектуре, рекомендуется пакет sys-kernel/gentoo-sources.
Выберем подходящий исходный код ядра и установим его с помощью emerge:
root #
emerge --ask sys-kernel/gentoo-sources
Данная команда установит исходный код ядра Linux в /usr/src/, в котором символьная ссылка linux будет указывать на установленную версию:
root #
ls -l /usr/src/linux
lrwxrwxrwx 1 root root 12 Oct 13 11:04 /usr/src/linux -> linux-4.9.16-gentoo
Теперь следует сконфигурировать и собрать ядро. Существует два основных подхода:
- Ядро конфигурируется и собирается вручную.
- Ядро автоматически собирается и устанавливается с помощью genkernel.
В данном руководстве мы расскажем, как провести настройку вручную, поскольку это лучший способ оптимизировать окружение.
По умолчанию: Ручное конфигурирование
Введение
Согласно расхожему мнению, настройка ядра — наиболее сложная процедура, с которой может столкнуться пользователь 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, которое поможет понять более тонкие детали.
Включение обязательных параметров
Убедитесь, что все драйверы, необходимые для загрузки системы (например, контроллер SCSI) собраны прямо в ядре, а не в виде модуля. В противном случае, система может не загрузиться.
Далее следует выбрать тип процессора. Также рекомендуется включить возможности 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 disk support
Теперь перейдите в раздел File Systems и выберите те файловые системы, которые планируете использовать. Файловая система, используемая в качестве корневой должна быть включена в ядро, иначе Gentoo не сможет примонтировать данный раздел. Также включите Virtual memory и /proc file system. По необходимости выберете один или несколько элементов из списка (CONFIG_EXT2_FS, CONFIG_EXT3_FS, CONFIG_EXT4_FS, CONFIG_MSDOS_FS, CONFIG_VFAT_FS, CONFIG_PROC_FS и CONFIG_TMPFS):
File systems ---> <*> Second extended fs support <*> The Extended 3 (ext3) filesystem <*> The Extended 4 (ext4) filesystem <*> Reiserfs support <*> JFS filesystem support <*> XFS filesystem support <*> Btrfs 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 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-устройства ввода (например клавиатура и мышь) или другие устройства, то не забудьте включить и эти параметры (CONFIG_HID_GENERIC, CONFIG_USB_HID, CONFIG_USB_SUPPORT, CONFIG_USB_XHCI_HCD, CONFIG_USB_EHCI_HCD, CONFIG_USB_OHCI_HCD):
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
Настройка ядра, специфичная для архитектуры
Если необходимо поддерживать 32-битные программы, убедитесь, что выбран пункт IA32 Emulation (CONFIG_IA32_EMULATION). Gentoo устанавливает систему multilib (смешанные 32/64 битные вычисления) по умолчанию, поэтому данная опция необходима, если конечно не выбран профиль no-multilib.
Processor type and features ---> [ ] Machine Check / overheating reporting [ ] Intel MCE Features [ ] AMD MCE Features Processor family (AMD-Opteron/Athlon64) ---> ( ) Opteron/Athlon64/Hammer/K8 ( ) Intel P4 / older Netburst based Xeon ( ) Core 2/newer Xeon ( ) Intel Atom ( ) Generic-x86-64 Executable file formats / Emulations ---> [*] IA32 Emulation
Включите поддержку меток GPT, если использовали их ранее при разбиении диска (CONFIG_PARTITION_ADVANCED и CONFIG_EFI_PARTITION):
-*- Enable the block layer ---> Partition Types ---> [*] Advanced partition selection [*] EFI GUID Partition support
Включите поддержку EFI stub и EFI variables в ядре Linux, если для загрузки системы используется UEFI (CONFIG_EFI, CONFIG_EFI_STUB, CONFIG_EFI_MIXED и CONFIG_EFI_VARS):
Processor type and features ---> [*] EFI runtime service support [*] EFI stub support [*] EFI mixed-mode support Firmware Drivers ---> EFI (Extensible Firmware Interface) Support ---> <*> EFI Variable Support via sysfs
Компиляция и установка
Когда настройка закончена, настало время скомпилировать и установить ядро. Выйдите из настройки и запустите процесс компиляции:
root #
make && make modules_install
Можно включить параллельную сборку, используя make -jX, где
X
— это число параллельных задач, которые может запустить процесс сборки. Это похоже на инструкции, которые были даны ранее относительно файла /etc/portage/make.conf в части переменной MAKEOPTS.По завершении компиляции, скопируйте образ ядра в каталог /boot/. Это делается командой make install:
root #
make install
Данная команда скопирует образ ядра в каталог /boot/ вместе с файлом System.map и файлом настройки ядра.
Необязательно: Сборка initramfs
В некоторых случаях необходимо собрать initramfs — файловую систему инициализации, размещаемую в оперативной памяти. Одна из необходимых причин для этого — когда важные части системных путей (например, /usr/ или /var/) находятся на отдельных разделах. Эти разделы могут быть смонтированы средствами, расположенными внутри initramfs.
Без initramfs есть большой риск того, что система не загрузится правильно, так как программы или информация о разделах, необходимые для монтирования таких разделов, находятся непосредственно в этих разделах. initramfs вытянет все необходимые файлы в архив, который будет загружен в память сразу же после загрузки ядра, но до того, как управление будет передано системе инициализации. Сценарии initramfs выполнят все необходимые операции для правильного монтирования разделов до того, как продолжится загрузка системы.
Для установки initramfs, сперва нужен sys-kernel/genkernel, который его создаст:
root #
emerge --ask sys-kernel/genkernel
root #
genkernel --install initramfs
Если необходима особая поддержка в initramfs, например LVM или RAID, то следует указать это через соответствующий параметр genkernel. Для более подробной информации см. genkernel --help. В следующем примере включена поддержка LVM и программного RAID (mdadm):
root #
genkernel --lvm --mdadm --install initramfs
initramfs будет сохранён в /boot/ под названием, начинающимся с «initramfs»:
root #
ls /boot/initramfs*
Теперь продолжите с раздела Модули ядра.
Альтернатива: Использование genkernel
Если ручная установка кажется слишком сложной, то можно воспользоваться утилитой genkernel, которая сконфигурирует и соберёт ядро автоматически.
genkernel конфигурирует ядро примерно так же, как это делается для установочного носителя. Это значит, что ядро, собранное genkernel, постарается определить всё оборудование в процессе загрузки. Поскольку genkernel не требует ручной конфигурации ядра, он идеально подходит для тех пользователей, кто не готов собирать собственное ядро.
Приступим. Сперва нужно установить sys-kernel/genkernel:
root #
emerge --ask sys-kernel/genkernel
Далее отредактируйте файл /etc/fstab, где следует указать в строке /boot/ правильное устройство во втором поле. Если вы следовали примеру разбиения разделов из данного Руководста, то, скорее всего, это будет устройство /dev/sda2 с файловой системой ext2. Тогда строка должна выглядеть следующим образом:
root #
nano -w /etc/fstab
/etc/fstab
Настройка точки монтирования /boot/dev/sda2 /boot ext2 defaults 0 2
В процессе настройки Gentoo /etc/fstab ещё будет изменён. На данный момент мы правим лишь /boot, так как genkernel использует эту настройку.
Осталось скомпилировать ядро, выполнив genkernel all. Учтите, что поскольку genkernel включает поддержку как можно большего диапазона оборудования, процесс сборки может занять некоторое время!
Если для загрузочного раздела не используется ext2 или ext3, то возможно придётся вручную настроить ядро, выполнив genkernel --menuconfig all и добавив поддержку нужной ФС (не как модуля). Пользователям LVM2 следует также добавить
--lvm
в качестве аргумента.root #
genkernel all
По завершению работы genkernel будут сформированы ядро, полный набор модулей и файловая система инициализации (initramfs). Ядро и initrd нам понадобятся позднее. Запишите название файлов ядра и initrd, так как они нам понадобятся при настройке загрузчика. Initrd запускается сразу после ядра для определения оборудования (как при загрузке установочного CD), перед запуском самой системы.
root #
ls /boot/kernel* /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
/etc/modules-load.d/network.conf
Принудительная загрузка модуля 3c59x во время загрузки3c59x
Продолжите установку с раздела Настройка системы.
Необязательно: Установка файлов прошивки
Для корректной работы некоторых драйверов требуется установка дополнительных файлов прошивки. Часто подобное требуется для сетевых интерфейсов, особенно беспроводных. Также, современные видеочипы от AMD, NVidia и Intel, при использовании отрытых драйверов, часто нуждаются во внешних файлах firmware. Большинство файлов прошивки поставляется в пакете sys-kernel/linux-firmware:
root #
emerge --ask sys-kernel/linux-firmware
Информация о файловой системе
О файле fstab
В Linux все разделы, используемые системой, должны быть записаны в файле /etc/fstab. Этот файл содержит информацию о точках монтирования разделов (где они должны быть видны в структуре файловой системы), как они должны быть подключены, а также специальные параметры (автоматическое подключение или нет, может ли пользователь их подключать или нет и так далее).
Создание файла fstab
В файле /etc/fstab используется синтаксис, напоминающий таблицу. Каждая строка состоит из шести полей, которые разделены пропусками (пробелами, отступами или смесь этого). Каждое поле имеет своё значение:
- Первое поле содержит блочное устройство (или удалённую файловую систему), которое следует примонтировать. Для экземпляров блочных устройств возможно использование различных идентификаторов, включая путь к устройству, метки файловой системы, метки раздела и UUID
- Второе поле содержит точку монтирования, к которой следует монтировать раздел.
- Третье поле содержит тип файловой системы, используемой разделом.
- Четвёртое поле содержит параметры, используемые командой mount во время монтирования. Так как у каждой файловой системы могут быть собственные уникальные параметры, рекомендуется прочитать man-страницу команды mount (man mount), чтобы получить полный список всех возможных параметров. Параметры монтирования разделяются запятыми.
- Пятое поле используется командой dump для определения того, нуждается ли раздел в дампе или нет. Обычно это поле содержит 0 (ноль).
- Шестое поле используется командой fsck для определения порядка проведения проверки ошибок файловой системы, если система была отключена некорректно. Для корневой файловой системы необходимо указывать 1, для остальных — 2 (или 0, если проверка не требуется вовсе).
Файл /etc/fstab, который предоставляется Gentoo по умолчанию, не является валидным файлом fstab, а представлен в качестве шаблона.
root #
nano -w /etc/fstab
В оставшейся части текста в качестве имён блочных устройств разделов мы будем использовать /dev/sd*.
Метки файловых систем и UUID
И MBR (BIOS), и GPT поддерживают как метки (labels), так и UUID файловой системы. Эти свойства могут быть определены в /etc/fstab в качестве альтернативы для команды mount для определения блочного устройства. Такие свойства используются при попытке найти и примонтировать блочные устройства. Метки и UUID файловой системы определяются через префиксы LABEL и UUID. Их можно посмотреть командой blkid:
root #
blkid
Если файловая система внутри раздела будет полностью затёрта (wipe), то значение меток и UUID файловой системы также будут изменены или удалены.
Благодаря уникальности UUID, читателям, использующим таблицу разделов в стиле MBR, рекомендуется использовать UUID вместо меток для определения монтируемых томов в /etc/fstab.
Метки разделов и UUID
У пользователей, которые пошли по пути использования GPT, есть несколько более надёжных вариантов для определения разделов в /etc/fstab. Метки разделов и UUID разделов могут быть использованы для идентификации разделов блочного устройства, независимо от того, какая файловая система была выбрана для самого раздела. Метки и UUID раздела определяются через префиксы PARTLABEL и PARTUUID соответственно. Их можно увидеть в терминале с помощью команды blkid:
root #
blkid
Хотя это не всегда верно для меток разделов, использование UUID для идентификации раздела в fstab обеспечивает гарантию того, что загрузчик не собьётся при поиске определённого тома, даже если файловая система будет изменена в будущем. Использование по умолчанию старых файлов блочных устройств (/dev/sd*N) для определения разделов в fstab будет рискованно в системах, которые часто перезагружаются и в которых регулярно добавляются и удаляются блочные устройства SATA.
Именование файлов блочных устройств зависит от ряда факторов, включая то, как и в каком порядке диски подключены в системе. Они могут отображаться в другом порядке, в зависимости от того, какое из устройств обнаруживается ядром первым в начале загрузки. При этом, если вы не намерены постоянно переключать жесткие диски, использование файлов блочных устройств по умолчанию является простым и удобным подходом.
Давайте посмотрим, как записать настройки для /boot/ раздела. Это просто пример, поэтому запись необходимо изменить в соответствии с ранее выбранной схемой разделов.
В нашем amd64 примере, /boot/ является обычным /dev/sda2 разделом с файловой системой ext2. Необходимо проверять его во время загрузки, поэтому мы запишем следующее:
/etc/fstab
Пример строки /boot для /etc/fstab/dev/sda2 /boot ext2 defaults 0 2
Из соображения безопасности некоторые пользователи могут не захотеть автоматически монтировать раздел /boot/. Для этого следует заменить defaults на noauto. Это будет означать, что раздел придётся монтировать каждый раз, когда понадобится его использовать.
Добавьте правила, которые соответствуют ранее запланированной схеме разметки диска, а также правила для таких устройств, как компакт-диски, и других устройств (если они есть в системе).
Ниже приведён более подробный пример файла /etc/fstab:
/etc/fstab
Полный пример /etc/fstab/dev/sda2 /boot ext2 defaults,noatime 0 2 /dev/sda3 none swap sw 0 0 /dev/sda4 / ext4 noatime 0 1 /dev/cdrom /mnt/cdrom auto noauto,user 0 0
При использовании auto
в третьем поле команда mount попытается автоматически определить тип файловой системы. Это рекомендуется для отсоединяемых устройств, которые могут использовать разные файловые системы. Параметр user
в четвертом поле позволяет монтировать компакт-диски обычными пользователями.
Большинство пользователей возможно захотят добавить параметр noatime
, что приведет к более высокой производительности, так как не будет считываться и меняться атрибут времени доступа к файлам (который, в общем и целом, обычно не нужен). Владельцам твердотельных накопителей (SSD) в дополнение к этому также рекомендуется добавить параметр discard
(на данный момент только для ext4 и btrfs), что вызовет работу команды TRIM
.
Дважды проверьте файл /etc/fstab, сохраните его и выйдите из редактора, чтобы продолжить дальше.
Информация о сети
Информация об узле и домене
Первое решение, которое предстоит принять пользователю, это как назвать его/её компьютер. Кажется, что это является довольно лёгким решением, но многие пользователи испытывают трудности с поиском подходящего имени для своего компьютера. Чтобы не мешкать слишком долго, выберите любое имя — его можно будет сменить позже. Например, в приведённом ниже примере используется имя узла tux с доменом homenetwork.
root #
nano -w /etc/conf.d/hostname
# Устанавливаем переменную hostname в выбранное значение имени узла hostname="tux"
Во-вторых, если требуется доменное имя, настройте его в файле /etc/conf.d/net. Это необходимо, если провайдер или сетевой администратор требует этого или в сети есть DNS-сервер, но нет DHCP-сервера. Не беспокойтесь о DNS или доменном имени, если используется DHCP для динамического распределения IP-адресов и конфигурации сети.
По умолчанию файла /etc/conf.d/net не существует, поэтому его нужно создать.
root #
nano -w /etc/conf.d/net
# Устанавливаем переменную dns_domain_lo выбранным доменным именем dns_domain_lo="homenetwork"
Если доменное имя не настроено, то пользователь может получить сообщение «This is hostname.(none)» на экране входа. Это можно исправить, удалив
.\O
в файле /etc/issue.Если требуется NIS-домен (пользователям, которые не знают, что это такое, он не понадобится), то настройте его тоже:
root #
nano -w /etc/conf.d/net
# Устанавливаем переменную nis_domain_lo выбранным NIS-доменом nis_domain_lo="my-nisdomain"
За более подробной информацией о конфигурации DNS и NIS обратитесь к примерам в /usr/share/doc/netifrc-*/net.example.bz2, которые можно прочесть с помощью bzless. Также, возможно будет интересно установить net-dns/openresolv, который поможет с настройками DNS/NIS.
Настройка сети
Во время установки Gentoo Linux сеть была уже настроена, однако она была настроена для самого установочного CD, а не для установленной среды. Сейчас мы устраним это упущение.
Больше информации о настройке сети, в том числе об объединении интерфейсов, создании мостов, настройке 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 -w /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
вместо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 -w /etc/hosts
/etc/hosts
Внесение сетевой информации# Это обязательные настройки для текущей системы 127.0.0.1 tux.homenetwork tux localhost # Дополнительные настройки для других систем в сети 192.168.0.5 jenny.homenetwork jenny 192.168.0.6 benny.homenetwork benny
Сохраните и закройте текстовый редактор для продолжения.
Опционально: поддержка PCMCIA-устройств
Владельцам PCMCIA необходимо установить пакет sys-apps/pcmciautils.
root #
emerge --ask sys-apps/pcmciautils
Системная информация
Пароль суперпользователя
Изменить пароль суперпользователя (с именем root) можно с помощью команды passwd.
root #
passwd
Учётная запись root является всемогущей учетной записью в Linux, так следует подобрать достаточно надёжный пароль. Позже мы создадим обычного пользователя для повседневных операций.
Инициализация и конфигурация загрузки
Gentoo (по крайней мере при использовании OpenRC) использует /etc/rc.conf для настройки сервисов, запуска и остановки системы. Откройте /etc/rc.conf и прочтите все комментарии в файле. Проверьте настройки и измените их при необходимости.
root #
nano -w /etc/rc.conf
Далее, откройте /etc/conf.d/keymaps для настройки раскладки клавиатуры. Отредактируйте файл и выберите нужную раскладку.
root #
nano -w /etc/conf.d/keymaps
Соблюдайте особую осторожность с переменной keymap. Если выбрать неправильный раскладку, то может получится странный результат при печати текста.
Наконец, отредактируйте /etc/conf.d/hwclock чтобы установить параметры часов. Отредактируйте его в соответствии с личными предпочтениями.
root #
nano -w /etc/conf.d/hwclock
Если аппаратные часы не настроены на время UTC, то в файле необходимо установить clock="local"
. В противном случае система может отображать неправильное время.
Системный журнал
Некоторые утилиты не были включены в stage3, так как некоторые пакеты обеспечивают схожую функциональность. Теперь пользователь должен установить те, которые ему требуются.
Сперва, нужно установить то, что обеспечит возможность журналирования системы. В Unix и Linux много уделяется внимания поддержки журналирования - при необходимости, все, что происходит в системе, может быть записано в лог файлы. И делается это с помощью системного журнала.
Gentoo предоставляет несколько утилит системного журнала. Некоторые из них перечислены здесь:
- app-admin/sysklogd — предоставляет традиционный набор возможностей. Настройки по умолчанию работают хорошо из коробки, что делает этот пакет хорошим вариантом для начинающих.
- app-admin/syslog-ng — расширенные возможности ведения системного журнала. Требуются дополнительные настройки для того, чтобы журналировать что-либо в один большой файл. Некоторые продвинутые пользователи могут выбрать этот пакет за его потенциал; имейте ввиду, что дополнительные настройки необходимы для любого вида умного журналирования.
- app-admin/metalog — гибко настраиваемая система журналирования.
Другие пакеты также доступны в Portage — количество доступных пакетов растёт каждый день.
Если планируется использовать sysklogd или syslog-ng, рекомендуется установить пакет logrotate, так как в этих пакетах нет механизма ротации системных журналов.
В systemd используется собственная подсистема журналирования под названием «journal». Для систем с systemd установка отдельного пакета журналирования необязательна и может потребовать дополнительных настроек для того, чтобы служба syslog могла читать сообщения из journal.
Установив выбранный пакет системного журнала, добавьте его в уровень запуска по умолчанию с помощью rc-update. Следующий пример покажет, как это сделать для app-admin/sysklogd:
root #
emerge --ask app-admin/sysklogd
root #
rc-update add sysklogd default
Необязательно: планировщик задач Cron
Теперь настала очередь планировщика cron. Хотя он является дополнительной и не обязательной для каждой системы программой, всё-таки рекомендуется его установить.
Планировщик cron выполняет команды по расписанию. Это очень удобно, если некоторые команды требуется выполнять регулярно (например, ежедневно, еженедельно или ежемесячно).
Gentoo предоставляет на выбор несколько планировщиков cron, включая sys-process/bcron, sys-process/dcron, sys-process/fcron и sys-process/cronie. Установка любого из них подобна установке системного журнала. Следующий пример покажет, как это сделать для sys-process/cronie:
root #
emerge --ask sys-process/cronie
root #
rc-update add cronie default
Если планируется использовать dcron или fcron, то после их установки нужно выполнить следующую команду для инициализации:
root #
crontab /etc/crontab
Необязательно: Индексирование файлов
Индексирование файлов поможет искать файлы в системе гораздо быстрее. Для этого установите sys-apps/mlocate.
root #
emerge --ask sys-apps/mlocate
Необязательно: Удаленный доступ
Для того, чтобы после установки обеспечить удалённый доступ к системе, сценарий инициализации sshd в уровень запуска по умолчанию:
root #
rc-update add sshd default
Если требуется доступ через последовательную консоль (что возможно в случае удаленных серверов), раскомментируейте раздел «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
Утилиты для файловых систем
В зависимости от используемых файловых систем, важно установить необходимые утилиты для их обслуживания (проверка целостности, создание и так далее). Обратите внимание, что инструмент для управления файловыми системами ext2, ext3 и ext4 (sys-fs/e2fsprogs) уже установлен как часть набора @system.
В следующей таблице перечислены утилиты, необходимы для определённых файловых систем:
Filesystem | Package |
---|---|
Ext2, 3, и 4 | sys-fs/e2fsprogs |
XFS | sys-fs/xfsprogs |
ReiserFS | sys-fs/reiserfsprogs |
JFS | sys-fs/jfsutils |
VFAT (FAT32, ...) | sys-fs/dosfstools |
Btrfs | sys-fs/btrfs-progs |
Дополнительная информация о файловых системах в Gentoo доступна на странице о файловых системах.
Сетевые утилиты
Если нет необходимости в каких-либо дополнительных сетевых утилитах, можно продолжить чтение с раздела Настройка загрузчика.
Установка DHCP-клиента
Хотя этот раздел необязателен, для большинства пользователей может понадобиться DHCP-клиент для взаимодействия с сервером DHCP в сети. Воспользуйтесь этой возможностью, чтобы установить DHCP-клиент. Если пропустить этот шаг, то система не сможет настроить подключение к сети, что сделает невозможным скачивание DHCP-клиента.
Для того, чтобы система автоматически получила IP-адрес для одного или более сетевого интерфейса во время работы сценария netifrc, необходимо установить клиент DHCP. Мы рекомендуем использовать net-misc/dhcpcd, хотя в репозитории Gentoo есть много других клиентов:
root #
emerge --ask net-misc/dhcpcd
Больше информации о 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
Далее продолжим с раздела Настройка начального загрузчика.
Выбор загрузчика
Когда ядро Linux настроено, системные утилиты установлены и конфигурационные файлы отредактированы, настало время для установки последней важной части системы Linux: загрузчика.
Загрузчик отвечает за запуск ядра Linux во время загрузки — без него система не будет знать, как действовать после нажатия кнопки питания.
Для amd64, мы описали настройку либо GRUB2, либо LILO для систем на базе BIOS, и GRUB2 или efibootmgr для UEFI-систем.
В этом разделе Руководства было сделано разделение между установкой пакета (emerge) загрузчика и установкой загрузчика на системный диск. Термин установка пакета (emerge) будет использоваться для установки пакета в систему с помощью пакетного менеджера Portage. Термин установка загрузчика на системный диск будет означать копирование файлов загрузчика или физическое изменение соответствующих разделов диска для того, чтобы активировать и подготовить к работе загрузчик для следующей перезагрузки.
По умолчанию: GRUB2
Ранее в Gentoo Linux в качестве рекомендуемого загрузчика использовалось то, что теперь называется GRUB Legacy. Но, как следует из названия, старый пакет GRUB больше не поддерживается и был заменён на GRUB2. Для получения более подробной информации о GRUB Legacy, пожалуйста, обратитесь к статье GRUB.
По умолчанию большинство систем Gentoo на данный момент используют GRUB2 (из пакета sys-boot/grub), который является прямой заменой для GRUB Legacy. Без дополнительных настроек GRUB2 поддерживает старые системы BIOS («pc»). С небольшими настройкам, которые нужно выполнить до сборки, GRUB2 может поддерживать более чем свыше полутора десятка дополнительных платформ. Для получения более подробной информации смотрите раздел предварительные требования статьи GRUB2.
Emerge
Если используется старая материнская плата, BIOS которой поддерживает только таблицу разделов MBR, для установки GRUB не нужно никаких дополнительных настроек:
root #
emerge --ask --verbose sys-boot/grub:2
Заметка для пользователей UEFI: запущенная команда выведет включенные значения в переменной GRUB_PLATFORMS, перед компиляцией. Если используется более новая UEFI-совместимая материнская плата, пользователям сперва нужно убедиться, что GRUB_PLATFORMS="efi-64"
включено (обычно это уже сделано по умолчанию). Если это не так, добавьте GRUB_PLATFORMS="efi-64"
в файл /etc/portage/make.conf до компиляции GRUB2, что позволит собрать пакет с поддержкой EFI:
root #
echo 'GRUB_PLATFORMS="efi-64"' >> /etc/portage/make.conf
root #
emerge --ask sys-boot/grub:2
- Если GRUB2 был каким-то образом был установлен до включения
GRUB_PLATFORMS="efi-64"
, то добавьте строку (из примера выше) в make.conf, после чего повторно переопределите зависимости для для набора пакетов world с помощью emerge--update --newuse
:
root #
emerge --ask --update --newuse --verbose sys-boot/grub:2
GRUB2 теперь установлен в системе, но еще не активирован.
Установка GRUB2 на диск
Далее установим необходимые для GRUB2 файлы в каталог /boot/grub/ с помощью команды grub-install. Если предположить, что первый диском (тот, с которого будет загружаться система) является /dev/sda, то одна из следующих команд сделает это:
- Когда используется BIOS:
root #
grub-install /dev/sda
- Когда используется UEFI:
- Важно
Убедитесь, что системный раздел EFI был смонтирован перед запуском grub-install. grub-install может установить файл GRUB EFI (grubx64.efi) в неправильном каталоге без каких-либо сообщений, о том, что использовался неправильный каталог.
root #
grub-install --target=x86_64-efi --efi-directory=/boot
- Заметка
Измените параметр--efi-directory
на корневой каталог системного раздела EFI. Это необходимо, если раздел /boot не был отформатирован как FAT.
- Важно
Если grub_install вернёт ошибкуCould not prepare Boot variable: Read-only file system
, необходимо перемонтировать специальную точку монтирования efivars в режим чтения-записи:root #
mount -o remount,rw /sys/firmware/efi/efivars
Некоторые производители материнских плат поддерживают только каталог /efi/boot/ для расположения файла .EFI в системном разделе EFI (ESP). Установщик GRUB может выполнить эту операцию автоматически, если использовать параметр --removable
. Убедитесь, что ESP смонтирован до запуска следующих команд. Предполагая, что ESP смонтирован в /boot (как было предложено ранее), выполните:
root #
grub-install --target=x86_64-efi --efi-directory=/boot --removable
Это создает каталог по умолчанию, определенный спецификацией UEFI, а затем скопирует файл grubx64.efi в каталог EFI «по умолчанию», определенный той же спецификацией.
Настройка
Далее, нужно сгенерировать конфигурационный файл GRUB2 на основе настроек пользователя, указанных в файле /etc/default/grub и сценариях /etc/grub.d. В большинстве случаев ничего не нужно настраивать, так как GRUB2 автоматически определяет, какое ядро есть для загрузки (самый высокий приоритет у /boot/) и какая файловая система у rootfs. Здесь также можно добавить параметры ядра в /etc/default/grub, используя переменную GRUB_CMDLINE_LINUX.
Для создания окончательной конфигурации GRUB2, запустите команду grub-mkconfig:
root #
grub-mkconfig -o /boot/grub/grub.cfg
Generating grub.cfg ... Found linux image: /boot/vmlinuz-4.9.16-gentoo Found initrd image: /boot/initramfs-genkernel-amd64-4.9.16-gentoo done
Вывод команды должен содержать по крайней мере один образ Linux, так как он необходим для загрузки системы. Если используется initramfs или ядро создавалось с помощью genkernel, также должен быть указан правильный образ initrd. Если это не так, перейдите в /boot/ и проверьте содержимое, используя команду ls. Если файлы действительно отсутствуют, вернитесь к инструкции по настройке и установке ядра.
Для обнаружения других операционных систем на других диска можно использовать утилиту os-prober. Она может обнаруживать Windows 7, 8.1, 10, и другие дистрибутивы Linux. Для таких систем с двойной загрузкой необходимо установить пакет sys-boot/os-prober и затем перезапустить команду grub-mkconfig (как было показано выше). Если появятся проблемы, полностью перечитайте статью GRUB2 до того, как спрашивать у сообщества Gentoo поддержки.
Альтернатива 1: LILO
Emerge
LILO, или LInuxLOader, это проверенная временем рабочая лошадка среди загрузчиков Linux. Однако, по сравнению с GRUB ей явно не хватает функционала. LILO всё ещё используется на системах, где GRUB не может работать. Конечно, он также используется, потому что некоторые люди знают LILO лучше и хотят использовать его. В любом случае, Gentoo поддерживает оба загрузчика.
Установить LILO можно очень быстро; просто используйте emerge.
root #
emerge --ask sys-boot/lilo
Настройка
Для настройки LILO сперва создайте /etc/lilo.conf:
root #
nano -w /etc/lilo.conf
Конфигурационный файл разбит на разделы для обозначения загрузочного ядра. Убедитесь, что известен путь до файла ядра (вместе с версией) и путь до initramfs файлов, так как они должны быть указаны в этом конфигурационном файле.
Если корневая файловая система — JFS, добавьте строку
append="ro"
после каждого варианта загрузки, поскольку JFS необходимо пересматривать журнал перед монтированием на чтение-запись./etc/lilo.conf
Пример конфигурации LILOboot=/dev/sda # Установка LILO в MBR prompt # Дать пользователю возможность выбрать другой вариант timeout=50 # Ждать 5 (пять) секунд перед загрузкой варианта по умолчанию default=gentoo # После тайм аута загружать вариант "gentoo" compact # Это значительно сокращает время загрузки и сохраняет маленький размер файла map; может работать некорректно на некоторых системах image=/boot/vmlinuz-4.9.16-gentoo label=gentoo # Имя этого варианта read-only # При старте корень только для чтения. Не менять! root=/dev/sda4 # Расположение корневой файловой системы image=/boot/vmlinuz-4.9.16-gentoo label=gentoo.rescue # Имя этого варианта read-only # При старте корень только для чтения. Не менять! root=/dev/sda4 # Расположение корневой файловой системы append="init=/bin/bb" # Запуск встроенной оболочки восстановления Gentoo # Следующие две строки нужны для двойной загрузки с системой Windows. # В этом примере, Windows находится на /dev/sda6. other=/dev/sda6 label=windows
Если схема разделов и/или используемый образ ядра другие, то внесите соответствующие корректировки.
Если необходим initramfs, то измените конфигурацию, указав файл initramfs и сообщив ему, где находится корневое устройство:
/etc/lilo.conf
Добавление информации о initramfs в загрузочную записьimage=/boot/vmlinuz-4.9.16-gentoo label=gentoo read-only append="root=/dev/sda4" initrd=/boot/initramfs-genkernel-amd64-4.9.16-gentoo
Если необходимо передать ядру дополнительные параметры используйте оператор append
. Например, добавьте оператор video
, чтобы включить кадровый буфер:
/etc/lilo.conf
Добавление параметра video к загрузочным параметрамimage=/boot/vmlinuz-4.9.16-gentoo label=gentoo read-only root=/dev/sda4 append="video=uvesafb:mtrr,ywrap,1024x768-32@85"
При использовании genkernel необходимо помнить, что ядро использует параметры загрузки так же, как и установочный CD. Например, если необходимо разрешить поддержку устройств SCSI, добавьте doscsi
как параметр ядра.
Теперь сохраните файл и выйдите из редактора.
Установка LILO на диск
Для завершения запустите исполняемый файл /sbin/lilo, что бы LILO смог применить для системы настройки из /etc/lilo.conf (то есть установить себя на диск). Помните, что /sbin/lilo должен исполняться каждый раз, когда устанавливается новое ядро или был изменен файл lilo.conf для загрузки системы, если имя файла ядра было изменено.
root #
/sbin/lilo
Альтернатива 2: efibootmgr
На UEFI-системах, с прошивкой UEFI (другими словами, основным загрузчиком), можно напрямую управлять загрузочными записями UEFI. Таким системам не требуется дополнительный (также известный как вторичный) загрузчик, такой как GRUB2, который помогает загрузить систему. Учитывая сказанное, использование дополнительного EFI-загрузчика типа GRUB2 имеет смысл лишь в том, чтобы расширить функциональность UEFI во время загрузки. Использование efibootmgr подойдёт больше для тех, кто хочет получить больше минимализма (хотя это сложнее) при загрузке системы; использование GRUB2 проще для большинства пользователей, так как он предлагает более гибкий подход для загрузки UEFI-систем.
Помните, sys-boot/efibootmgr — это не загрузчик; это средство для взаимодействия с прошивкой UEFI и обновления её настроек, для того, чтобы можно было загрузить установленное ядро Linux с дополнительными параметрами (если необходимо) или организовать несколько загрузочных записей. Это взаимодействие осуществляется через переменные EFI (что требует поддержки переменных EFI со стороны ядра).
Перед тем, как продолжить, обязательно прочитайте всю статью EFI stub kernel. В ядре должны быть включены определенные параметр, чтобы ядро могло загрузится напрямую с системной прошивкой UEFI. Это может потребовать пересборки ядра. Также взгляните на статью efibootmgr.
Повторим еще раз, efibootmgr не является обязательным требованием для загрузки из UEFI. Ядро Linux может загружаться сразу же, а дополнительные параметры ядра могут быть встроены в само ядра (в конфигурации ядра есть параметр, который позволяет пользователю определить параметры загрузки). Даже initramfs может быть встроен в ядро.
Тем, кто решил применить такой подход, необходимо установить программное обеспечение:
root #
emerge --ask sys-boot/efibootmgr
Создайте каталог /boot/efi/boot/ и затем скопируйте в него ядро, назвав его bootx64.efi:
root #
mkdir -p /boot/efi/boot
root #
cp /boot/vmlinuz-* /boot/efi/boot/bootx64.efi
Далее, сообщите прошивке UEFI создать загрузочную запись и называть её "Gentoo", в которой будет свежее ядро с EFI stub:
root #
efibootmgr --create --disk /dev/sda --part 2 --label "Gentoo" --loader "\efi\boot\bootx64.efi"
Если используется файловая система инициализации, размещаемая в оперативной памяти (initramfs), добавьте соответствующий загрузочный параметр:
root #
efibootmgr -c -d /dev/sda -p 2 -L "Gentoo" -l "\efi\boot\bootx64.efi" initrd='\initramfs-genkernel-amd64-4.9.16-gentoo'
Символ \, применяемый для разделения каталогов, является обязательным при использовании определений UEFI.
После внесения изменений и перезагрузки системы появится загрузочная запись под именем «Gentoo».
Альтернатива 3: syslinux
Syslinux — ещё один альтернативный загрузчик для архитектуры amd64. Он поддерживает MBR, а с версии 6.00 поддерживает загрузку EFI. Также поддерживаются загрузка через PXE (по сети) и менее известные возможности. Хотя Syslinux является популярным загрузчиком для многих, он не поддерживается в данном Руководстве. Более подробную информацию по установке и настройке этого загрузчика смотрите в статье о Syslinux.
Перезагрузка системы
Выйдите из изолированной среды и размонтируйте все смонтированные разделы. Затем введите ту самую волшебную команду, которая запускает последний, настоящий тест: 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, который при правильной настройке вполне безопасен.
Очистка диска
Удаление архивов
Теперь, когда установка Gentoo закончена и система была благополучно перезагружена, можно удалить скачанный архив stage3 с жёсткого диска. Помните, что он был скачан в каталог /.
root #
rm /stage3-*.tar.*
Что делать дальше
Документация
Не уверены что делать дальше? Есть множество путей для исследований… Gentoo даёт своим пользователям богатый выбор, а следовательно, и множество документированных (или не очень) возможностей для изысканий здесь, на вики, а также других ресурсах Gentoo (см. раздел Gentoo в сети).
Обязательно прочтите следующую часть Руководства Gentoo, Работа с Gentoo, в которой рассказывается, как поддерживать программное обеспечение в актуальном состоянии, как устанавливать дополнительные пакеты программ, даётся дополнительная информация о USE-флагах, системе инициализации OpenRC и многом другом, связанном с администрированием Gentoo после установки.
Кроме Руководства, можно также исследовать другие уголки вики, в которой есть дополнительная документация, созданная сообществом. Команда вики Gentoo предлагает обзор документации по темам, который содержит список статей, отсортированных по категории. Например, там есть руководство по локализации, с помощью которого можно сделать систему более «домашней» (особенно полезно пользователям, для которых английский язык не родной).
Gentoo в сети
Важно отметить, что все официальный сайты Gentoo руководствуются правилами поведения Gentoo. Проявлять активность в сообществе Gentoo — это привилегия, но не право, и пользователям следует знать, что для появления правил поведения существуют свои причины.
За исключением IRC, находящегося на серверах Freenode, и почтовых рассылок, на большинстве сайтов Gentoo требуется собственная учетная запись для того, чтобы задавать вопросы, открывать обсуждения или оформлять запросы.
Форумы и IRC
Мы приветствуем каждого пользователя на наших форумах Gentoo или в одном из наших IRC-каналов. На форумах есть удобный поиск, позволяющий искать похожие решённые проблемы, связанные с установкой Gentoo. Ошибки новичков, возникающие при установке системы, удивительно похожи. Перед тем, как попросить помощи на каналах поддержки Gentoo, рекомендуется выполнить поиск похожих проблем на форумах и вики.
Списки рассылок
Существует несколько списков почтовых рассылок, доступных для членов сообщества, предпочитающих вести обсуждения через электронную почту, а не на форумах или IRC. Для подписки на определённый список необходимо следовать указанным на сайте инструкциям.
Отчёты об ошибках
Иногда, даже после посещения страниц вики, поиска на форумах или обсуждения в IRC и почтовой рассылке, не находится подходящего решения для возникшей проблемы. Обычно это является свидетельством того, что необходимо составить отчёт об ошибке на сайте Gentoo Bugzilla.
Руководство по разработке
Те пользователи, которые хотят узнать больше о разработке Gentoo, могут почитать Руководство разработки. Это руководство описывает порядок написания ebuild, работу eclass, предоставляет определение многим понятиям, лежащим в основе разработки Gentoo.
Напутственные слова
Gentoo является надёжным, гибким и отлично сопровождаемым дистрибутивом. Сообщество разработчиков всегда будет радо выслушать обратную связь от пользователей, чтобы сделать Gentoo ещё лучшим дистрибутивом.
В качестве напоминания, запросы, связанные с данным Руководством, должны следовать инструкциями, приведённым в разделе «Как я могу улучшить Руководство?».
Мы ждём с нетерпением новых пользователей Gentoo!
Warning: Display title "Gentoo Linux amd64 Handbook: Установка Gentoo" overrides earlier display title "Handbook:AMD64/Full/Installation".