Gentoo_Pingvinus

Gentoo_Pingvinus


Простая и быстрая установка Gentoo Linux

Взято: - https://pingvinus.ru/note/gentoo-linux-install

Gentoo Handbook: - https://wiki.gentoo.org/wiki/Handbook:Main_Page

Поехали!

Немного о процессе установки.

В качестве Live-образа можно использовать как официальный Live-CD, так и любую другую систему такого типа.

Лично я рекомендую использовать Linux Mint: загрузился и сразу начинаешь устанавливать ОС.

Однако никто не мешает использовать что-то иное, тут уже на ваш выбор.

  1. Узнаем название тома и откроем разметчик диска.

Для примера я буду использовать /dev/sda/

  • sudo su # не забываем про рут

  • lsblk

  • cfdisk /dev/sda

или

  • cfdisk /dev/sda -z

Отлично. Теперь разобьём диск на нужные разделы. Лично я всегда использую следующую разметку:

/dev/sda1 (512MB) — /boot/efi

/dev/sda2 (1GB) — swap

/dev/sda3 (всё остальное) — /

Как вариант можно разделить root и home, однако тут уже по желанию.

  1. Создаём файловые системы на нашем диске.
  • mkfs.fat -F 32 /dev/sda1 # раздел для Grub

  • mkswap /dev/sda2 # swap-раздел

  • mkfs.ext4 /dev/sda3 # раздел для корня в ext4

  1. Монтируем!

Разработчики Gentoo рекомендуют монтировать разделы не в /mnt (как происходит, например, в Arch Linux), а именно в /mnt/gentoo. Не будем сильно противиться и сделаем по их рекомендации.

  • mkdir /mnt/gentoo # создаём общую директорию монтирования

  • mkdir -p /mnt/gentoo/boot/efi # создаём директорию для раздела загрузки

  • mount /dev/sda1 /mnt/gentoo/boot/efi

  • swapon /dev/sda2

  • mount /dev/sda3 /mnt/gentoo

  1. Хватаем stage3 архив и скачиваем к нам в папку.

Виды Stage3 архивов

На сайте с загрузкой мы видим следующие виды архивов:

Stage 3 (openrc) — базовая система с системой инициализации OpenRC.

Stage3 (systemd | merged usr) — базовая система с systemd и объединенными /usr и /bin, /sbin, /lib, /lib64.

Stage 3 (desktop profile | openrc) — система уже с собранным desktop-профилем и OpenRC (о профилях расскажу чуть позднее).

Stage 3 (desktop profile | systemd | merged usr) — тут думаю понятно, что к чему.

Я лично использую Stage3 с OpenRC и готовым desktop профилем, однако вы можете выбрать любой архив под ваши задачи и нужды. Нажмём ПКМ по профилю и скопируем ссылку для скачивания.

Загрузим архив в /mnt/gentoo.

  • cd /mnt/gentoo

  • wget -c https://distfiles.gentoo.org/releases/amd64/autobuilds/20240204T134829Z/stage3-amd64-desktop-openrc-20240204T134829Z.tar.xz # OpenRC + Desktop Profile

Распакуем архив.

  • tar xpvf stage3-.tar.xz –xattrs-include=’.*’ –numeric-owner
  1. Конфигурируем portage.

Думаю, я не буду затрагивать тему CFLAGS и CXXFLAGS, так как на таком раннем этапе это не очень актуально.

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

Зададим MAKEOPTS.

Тут всё зависит от ресурсов вашего компьютера. Одна задача занимает около 2 гигабайт оперативной памяти. Следовательно, флаг “-j2” будет занимать 4 ГБ ОЗУ и так далее. В моем случае я возьму “-j6” как самый средний вариант.

  • nano /mnt/gentoo/etc/portage/make.conf

MAKEOPTS="-j6"

Сразу зададим зеркало для репозиториев.

Для быстрой загрузки исходного кода рекомендуется выбрать быстрое, географически находящееся рядом зеркало. Portage будет искать в файле make.conf переменную GENTOO_MIRRORS и использовать перечисленные в ней зеркала. Можно просмотреть список зеркал Gentoo и найти зеркало (или несколько зеркал), наиболее близко расположенное к месту физического расположения (чаще всего они и есть самые быстрые).

Инструмент под названием Mirrorselect предоставляет красивый текстовый интерфейс для более быстрого запроса и выбора подходящих зеркал. Просто перейдите к выбранным зеркалам и нажмите Spacebar для выбора одного или нескольких зеркал.

  • emerge –ask –verbose –oneshot app-portage/mirrorselect

  • mirrorselect -i -o » /etc/portage/make.conf

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

https://www.gentoo.org/downloads/mirrors/

По аналогии с прошлым - скопируем ссылку и добавим в /mnt/gentoo/etc/portage/make.conf следующее:

GENTOO_MIRRORS="ваше зеркало"

Примем необходимые лицензии. Я принимаю все, потому пропишу:

ACCEPT_LICENSE="*"

  1. “Чрутнемся” в нашу Gentoo.

Для начала скопируем информацию про DNS, чтобы сеть продолжала работать внутри новой системы:

cp --dereference /etc/resolv.conf /mnt/gentoo/etc/

Также в Debian-based дистрибутивах можно установить пакет “arch-install-scripts”, который поможет нам сделать действие в одну команду.

Установите сценарии Arch-Install с помощью apt

Обновите базу данных apt с помощью apt используя следующую команду.

  • sudo apt update

После обновления базы данных apt мы можем установить arch-install-scripts с использованием apt выполнив следующую команду:

  • sudo apt -y install arch-install-scripts

  • cp –dereference /etc/resolv.conf /mnt/gentoo/etc/

  • arch-chroot /mnt/gentoo

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

mount --types proc /proc /mnt/gentoo/proc

mount --rbind /sys /mnt/gentoo/sys

mount --make-rslave /mnt/gentoo/sys

mount --rbind /dev /mnt/gentoo/dev

mount --make-rslave /mnt/gentoo/dev

mount --bind /run /mnt/gentoo/run

mount --make-slave /mnt/gentoo/run

Обязательно! Если используете не LiveCD от Gentoo, то проверим отсутствие симлинка с /dev/shm на /run/shm и сделаем /dev/shm временной файловой системой.

  • test -L /dev/shm && rm /dev/shm && mkdir /dev/shm

  • mount –types tmpfs –options nosuid,nodev,noexec shm /dev/shm

  • chmod 1777 /dev/shm /run/shm

Если вы не использовали arch-chroot, то зайдем в нашу систему.

  • chroot /mnt/gentoo /bin/bash

  • source /etc/profile

  • export PS1=”(chroot) ${PS1}”

  1. Обновляем репозитории.
  • emerge-webrsync
  1. Выбираем профиль.

Профиль - это как набор пакетов, собранных для определенных целей или задач. Например, Desktop Profile представляет собой набор программного обеспечения, нацеленный на использование системы в качестве десктопа. Desktop Gnome предназначен для удобства работы с окружением GNOME на операционной системе и так далее. Такие профили помогают быстро настроить систему под определенные нужды пользователя.

Давайте посмотрим, какие профили вообще есть.

  • eselect profile list

Available profile symlink targets:

  [1]   default/linux/amd64/17.1 (stable)

  [2]   default/linux/amd64/17.1/selinux (stable)

  [3]   default/linux/amd64/17.1/hardened (stable)

  [4]   default/linux/amd64/17.1/hardened/selinux (stable)

  [5]   default/linux/amd64/17.1/desktop (stable) *

  [6]   default/linux/amd64/17.1/desktop/gnome (stable)

  [7]   default/linux/amd64/17.1/desktop/gnome/systemd (stable)

  [8]   default/linux/amd64/17.1/desktop/gnome/systemd/merged-usr (stable)

  [9]   default/linux/amd64/17.1/desktop/plasma (stable)

  [10]  default/linux/amd64/17.1/desktop/plasma/systemd (stable)

  [11]  default/linux/amd64/17.1/desktop/plasma/systemd/merged-usr (stable)

  [12]  default/linux/amd64/17.1/desktop/systemd (stable)

  [13]  default/linux/amd64/17.1/desktop/systemd/merged-usr (stable)
  ........

Здесь мы можем увидеть, какие профили есть в нашей системе.

Если вы собираетесь использовать оконные менеджеры, или там Xfce или Mate, я советую выбрать профиль “default/linux/amd64/17.1/desktop (stable)”.

Если же вы планируете использовать Plasma или GNOME, то следует выбрать соответствующие профили.

В моем случае я выберу 5-й профиль.

  • eselect profile set 5
  1. USE-флаги и обновление “миров”.

Маленькая справочка:

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

Приведу пример.

Вы хотите установить KDE Plasma, но не хотите тащить с ней GTK.

В USE-флагах вы просто выставляете значение “-gtk”, тем самым отключая поддержку GTK для всего ПО.

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

Пора обновить “миры”, грубо говоря, установить пакеты из профиля и обновить систему.

  • emerge –ask –verbose –update –deep –newuse @world

Если вы взяли Stage3 без десктоп-профиля, но выбрали его позднее - ждите, просто ждите. У меня это заняло порядка 4 часов, и это ещё не так много. В общем, не стоит бояться, мы собираем Gentoo.

  1. Настраиваем время и локали.

Если вы используйте OpenRC, то пропишите данную команду.

  • echo “Europe/Moscow” > /etc/timezone

  • echo “Asia/Kamchatka” > /etc/timezone

Europe/Moscow это стандартное юниксовое время.

Вы можете изменить его на своё, например, Europe/Saint Petersburg и так далее.

Если же у вас systemd, то всё так же как и в Arch Linux.

  • ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime

Локали, как и в арче, находятся в /etc/locale.gen. Однако вместо списка там надо будет написать свои.

  • nano /etc/locale.gen

en_US.UTF-8 UTF-8 # английский

ru_RU.UTF-8 UTF-8 # русский

  • locale-gen
  1. Ставим ядро.

Первое что рекомендую, так это установить linux-firmware.

  • emerge –ask sys-kernel/linux-firmware

Теперь, для установки ядра, установим пакет installkernel (не ядро). Однако перед установкой, добавим поддержку Dracut (без него у меня не завелось, по крайней мере).

  • nano /etc/portage/package.use/installkernel

sys-kernel/installkernel dracut

Давайте установим сам пакет.

  • emerge –ask sys-kernel/installkernel

Классно! Выбираем ядро.

Gentoo предлагает два варианта - gentoo-kernel и gentoo-kernel-bin. Если вы хотите сами собрать ядро, сконфигурировать его под своё железо и получить этот бесценный опыт сборки ядер, то берите стандартный gentoo-kernel.

  • emerge –ask sys-kernel/gentoo-kernel

Я же возьму бинарное, так как с ним куда меньше возни.

  • emerge –ask sys-kernel/gentoo-kernel-bin
  1. Заполняем fstab.

Если вы установили пакет arch-install-scripts, то просто выполните следующее.

  • genfstab -U /mnt/gentoo > /mnt/gentoo/etc/fstab

Если нет, то можно взять скрипт с гитхаба: https://github.com/glacion/genfstab

или вручную:

Редактирование файла fstab

  • nano /etc/fstab

UUID можно узнать с помощью blkid

для большего удобства можно сделать так:

blkid /dev/sda1 >> /etc/fstab

blkid /dev/sda2 >> /etc/fstab

blkid /dev/sda3 >> /etc/fstab

blkid /dev/sda4 >> /etc/fstab
  1. Зададим hostname.
  • echo gentoo > /etc/hostname

Вместо “gentoo” можно брать любое, какое душе угодно, естественно.

  1. Заполняем /etc/hosts.

К уже существующим строкам добавим:

127.0.0.1 gentoo

  1. Ставим важный дополнительный софт.

Думаю, что без DHCP и Grub будет тяжеловато, поэтому установим их командой ниже.

  • emerge –ask net-misc/dhcpcd sys-boot/grub sys-boot/efibootmgr
  1. Конфигурируем GRUB.

GRUB можно установить данными командами:

  • grub-install –target=x86_64-efi –efi-directory=/boot/efi –bootloader-id=gentoo

  • grub-mkconfig -o /boot/grub/grub.cfg

  1. Задаём пароль и делаем юзера.
  • passwd # пароль для рута

  • useradd -m vantiki # добавляем пользователя

  • passwd vantiki # даём пароль пользователю

  1. Перезагружаемся и получаем нашу Gentoo!
  • exit # выходим из chroot

  • umount -R /mnt/gentoo # отмонтируем все диски

  • reboot # перезагружаемся