Рубрики
gentoo Конспект

Конспект: gentoo BIOS + MBR

0.Вводное:

Страница загрузки:
https://www.gentoo.org/downloads/

live cd:
https://bouncer.gentoo.org/fetch/root/all/releases/amd64/autobuilds/20220612T170541Z/install-amd64-minimal-20220612T170541Z.iso
https://bouncer.gentoo.org/fetch/root/all/releases/amd64/autobuilds/20220605T170549Z/livegui-amd64-20220605T170549Z.iso


Официальная wiki gentoo на русском:
https://wiki.gentoo.org/wiki/Handbook:AMD64/ru

Не официальное:
https://pingvinus.ru/note/gentoo-easy-install
https://an9wer.github.io/2020/06/06_Gentoo%20installation.html

Настройка сети ручная:
ip a  a 192.168.1.100 dev eth0
ip route add default via 192.168.1.1
Настройка сети dhcp:
dhcp eth0
dhcpcd -HD eth0

Настройка DNS:
ping ya.ru
vim /etc/resolv.conf

Посмотреть текущий ip:
ip a

Смена пароля тукущего пользователя:
!!! Если требования к паролю кажутся очень завышенными, то редактируем файл /etc/security/passwdqc.conf
!!! min=1,1,1,1,1
!!! useradd -m -G wheel,audio,video <имя пользователя>
!!! passwd <имя пользователя>
passwd

Запуск sshd на livecd:
rc-service sshd start

!!! Теперь мы можем подключится по ssh и продолжить установку.

1. Рекомендованная разметка диска BIOS + MBR

Раздел	    Описание                                      Код для fdisk
/dev/vda1	Системный (и загрузочный) раздел MBR          -> код 83
/dev/vda2	Раздел подкачки                               -> код 82
/dev/vda3	Корневой раздел                               -> код 83
 
Разметка диска:
fdisk /dev/vda
p - показать разметку
o - сделать mbr таблицу
d - удалить
n - создать раздел (enter enter +128M)
n - создать раздел (enter enter +512M)
n - создать раздел (enter enter enter)
t - установить тип раздела (1 83)
t - установить тип раздела (2 82)
t - (не требуется 20 по умолчанию для нового раздела ) установить тип раздела (3 83)
 
Накатываем файловые системы и включаем swap
mkfs.ext2 /dev/vda1
mkfs.ext4  /dev/vda3
# # mkfs.ext4 -T small /dev/sda3 - рекомендуется если раздел меньше 9Гб
mkswap /dev/vda2
swapon /dev/vda2

2. Подготовка к установке stage3

Создаем директорию:
mkdir /mnt/gentoo
Монтируем:
mount /dev/vda3 /mnt/gentoo

Переходим в каталог  /mnt/gentoo:
cd /mnt/gentoo

Скачиваем stage3:
!!! Выбор правильного базового архива для системы впоследствии может сэкономить значительное количество времени, затраченное на установку.
!!! Рекомендуется выбрать multilab \ systemd
wget https://bouncer.gentoo.org/fetch/root/all/releases/amd64/autobuilds/20220612T170541Z/stage3-amd64-desktop-systemd-20220612T170541Z.tar.xz

Распаковываем только что скаченный архив stage3:
!!! Убедитесь, что указаны те же самые параметры (xpf и --xattrs-include='*.*').
!!! x указывает на извлечение (extract)
!!! p для сохранения (preserve) прав доступа и f для обозначения, что мы хотим извлечь файл (file)
!!! а не стандартный ввод. --xattrs-include='*.*' позволит также сохранить расширенные атрибуты во всех пространствах имен хранящиеся в архиве
!!! --numeric-owner используется для того, чтобы убедиться что идентификаторы пользователей и групп распаковываемых файлов останутся такими же
!!! как и задумывались командой Gentoo по подготовке релизов (даже если предприимчивые пользователи не используют официальный установочный носитель Gentoo)

tar xpvf stage3-*.tar.xz --xattrs-include='*.*' --numeric-owner


Настройка параметров компиляции:
!!! какой редактор выбрать решать вам, но в процессе установки у меня пропадал vim
!!! везде в руководстве используют nano -w
nano -w /mnt/gentoo/etc/portage/make.conf
vim  /mnt/gentoo/etc/portage/make.conf

Значения по умолчанию для (/mnt/gentoo/etc/portage/make.conf):
# Флаги компилятора, используемые для всех языков
COMMON_FLAGS="-march=native -O2 -pipe"
# Используйте те же настройки для обеих переменных
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
# Использование большого количества процессов может значительно повлиять на потребление памяти.
# Хорошая рекомендация — имейте не менее 2 Гб свободной оперативной памяти на каждый #поток (так, например, для -j6 потребуется не менее 12 ГиБ).
# Чтобы избежать нехватки памяти, уменьшите количество процессов
MAKEOPTS="-j2"

Необязательно: Выбор зеркала
mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
mkdir --parents /mnt/gentoo/etc/portage/repos.conf
cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf

3. Копирование DNS:


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

4. Монтирование разделов

Монтирование необходимых файловых систем для продолжения установки:
!!! /proc/ — псевдофайловая система (она выглядит как обычные файлы, но на самом деле генерируется на лету), через которую ядро Linux предоставляет информацию для окружения
!!! /sys/ — псевдофайловая система, как и /proc/, которую она однажды заменит, также она более структурирована, чем /proc/
!!! /dev/ — это обычная файловая система, частично управляемая менеджером устройств Linux (обычно udev), которая содержит все файлы устройств
!!! /run/ — временная файловая система, используется для генерации файлов на лету used, таких как PID файлы или файлы блокировки
!!! Параметр --make-rslave необходим для дальнейшей поддержки systemd в ходе установки.
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

Переход в новое окружение:
!!! Выполнить последовательно по одной
chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) ${PS1}"

5. Установка и обновление portage

Настройка Portage:
!!! emerge-webrsync - для загрузки снимка используется только протоколы HTTP/HTTPS,а также когда необходимо снизить нагрузку канал сети
emerge-webrsync

Необязательно: Обновление репозитория ebuild-файлов Gentoo
emerge --sync
emerge --sync --quiet

Чтение новостей:
eselect news list
eselect news read
man news.eselect

Выбор подходящего профиля:
eselect profile list
eselect profile set 2

Обновление набора @world:
emerge --ask --verbose --update --deep --newuse @world

Необязательно: Настройка переменной USE:
!!! Полное описание всех доступных USE-флагов можно найти в файле /var/db/repos/gentoo/profiles/use.desc.
less /var/db/repos/gentoo/profiles/use.desc
Простой способ проверить какие настройки используются для USE:
emerge --info | grep ^USE - собственно не будем ничего мудрить вывод этой команды нам пригодится для сборки нашей системы


Необязательно: Добавим флаги USE:
!!! Если USE-флаг определён в /etc/portage/make.conf, он будет добавлен (или удалён, если перед USE-флагом написан знак -) в список по умолчанию.
!!! USE флаги могут быть удалены добавлением знака - перед флагом. Например, чтобы выключить поддержку для графических окружений X, нужно задать -X
nano -w /etc/portage/make.conf
------------------------------
USE="X kde bash-completion curl apache2 djvu doc gui gzip handbook man mmap lzma lz4 lzo mysql networkmanager pdf perl php plasma python rdp ssl systemd"
------------------------------


Настройка переменной ACCEPT_LICENSE
vim /etc/portage/make.conf
--------------------------
ACCEPT_LICENSE="*"
--------------------------

Установка vim:
emerge --ask app-editors/vim

6. Язык / время / locale

 ntpd -q -g


Временная зона:
echo "Europe/Moscow" > /etc/timezone
emerge --config sys-libs/timezone-data
ln -sf ../usr/share/zoneinfo/Europe/Moscow /etc/localtime

Настройка локалей:
nano -w /etc/locale.gen
-----------------------
en_US ISO-8859-1
en_US.UTF-8 UTF-8
ru_RU.UTF-8 UTF-8
-----------------------
Генерируем локали:
locale-gen

Выбор локали:
!!! Это всё ещё можно сделать вручную с помощью файла /etc/env.d/02locale (для Systemd с помощью файла /etc/locale.conf)
eselect locale list
eselect locale set 8

Заново перезагружаем окружение:
env-update && source /etc/profile && export PS1="(chroot) ${PS1}"

7.0 kernel, ручная сборка ядра:

Настройка ядра Linux:
emerge --ask sys-kernel/linux-firmware
emerge --ask sys-kernel/gentoo-sources

!!! Гайд https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Kernel/ru
!!! virtio https://wiki.gentoo.org/wiki/QEMU/Linux_guest
cd /usr/src/linux
#make defconfig
#make kvm_guest.config
make menuconfig
make && make modules_install
make install
!!! Необязательно: Сборка initramfs
!!! emerge --ask sys-kernel/dracut
!!! dracut --kver=4.9.16-gentoo

7.1 Kernel, автоматическая сборка ядра:

!!! Не рекомендую этот способ сборки ядра
!!! Обычно, символьная ссылка /usr/src/linux указывает на исходный код текущего работающего ядра.
!!! Однако, эта символьная ссылка не создаётся по умолчанию. Создать её поможет kernel модуль для eselect.
eselect kernel list
eselect kernel set 1
!!! Для сборки ядра
nano -w /etc/fstab
------------------
/dev/vda1	/boot	vfat	defaults	0 2
------------------
!!! ставим пакет genkernel и собираем ядро
emerge --ask sys-kernel/genkernel
!!! genkernel --menuconfig all - если требуется что то добавить, например virtio драйверы
!!! genkernel --no-clean --menuconfig all - очистка не будет производится
genkernel all
Устанавливаем файлы прошивки:
emerge --ask sys-kernel/linux-firmware
!!! Проверяем:
ls /boot/vmlinu* /boot/initramfs*
!!! Если для корневого раздела не используется файловая система ext4, возможно, придётся вручную настроить ядро используя genkernel --menuconfig all и добавив поддержку нужной ФС (т.е. не как модуля).
!!! Пользователям LVM2 следует также добавить --lvm в качестве аргумента.

7.2 Kernel virtio support

!!! Если вы используете genkernel, не создавайте драйверы VirtIO в виде модулей, скомпилируйте их в ядро.
!!! https://wiki.gentoo.org/wiki/QEMU/Linux_guest
Processor type and features  --->
    [*] Linux guest support --->
        [*] Enable Paravirtualization code
        [*] KVM Guest support (including kvmclock)
Device Drivers  --->
    [*] Virtio drivers  --->
        <*> PCI driver for virtio devices
    [*] Block devices  --->
        <*> Virtio block driver
    SCSI device support  --->
        [*] SCSI low-level drivers  --->
            [*] virtio-scsi support
    [*] Network device support  --->
        [*] Network core driver support
            <*> Virtio network driver
    Graphics support  --->
        <*> Virtio GPU driver
    Character devices ---> 
       <*>   Hardware Random Number Generator Core support --->
           <*>   VirtIO Random Number Generator support

7.3 Kernel Virtio drivers \ virtual host:

!!! https://wiki.gentoo.org/wiki/QEMU/Linux_guest

emerge --ask sys-kernel/linux-firmware
emerge --ask sys-kernel/gentoo-sources
cd /usr/src/linux
make defconfig
make kvm_guest.config
make && make modules_install
make install

!!! grub MBR
echo 'GRUB_PLATFORMS="pc"' >> /etc/portage/make.conf
echo 'sys-boot/grub -fonts -nls -themes' > /etc/portage/package.use/grub
emerge --ask sys-boot/grub:2

vim /etc/default/grub
---------------------
GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0"
GRUB_TERMINAL=console
---------------------

vim /etc/inittab
----------------
# SERIAL CONSOLES
s0:12345:respawn:/sbin/agetty -L 115200 ttyS0 vt100
----------------

grub-install /dev/vda
grub-mkconfig -o /boot/grub/grub.cfg

7.3 Готовые образы ядра

!!! Сборка ядра достаточно увлекательное занятие
!!! Если совсем все плохо, рекомендуется установить готовое ядро
emerge --ask sys-kernel/installkernel-systemd-boot
emerge --ask sys-kernel/gentoo-kernel-bin
emerge --ask @module-rebuild

8. Настройка системы:


монтирование дисков в fstab
!!! blkid - получаем UUID дисков, правильно будет монтировать диски по UUID
Вносим наши точки монтирования:
vim /etc/fstab
------------------
/dev/vda1   /boot        ext2    defaults,notime      0 2
/dev/vda2   none         swap    sw                   0 0
/dev/vda3   /            ext4    noatime              0 1
------------------
Проверяем:
mount -a


Информация об узле и домене:
nano -w /etc/conf.d/hostname
----------------------------
hostname="tux"
----------------------------

hostnamectl hostname tux

Сеть dhcp:
emerge --ask net-misc/dhcpcd
systemctl enable --now dhcpcd

Сеть статика:
emerge --ask --noreplace net-misc/netifrc
vim /etc/conf.d/net
-------------------
#config_eth0="dhcp"
config_eth0="192.168.0.2 netmask 255.255.255.0 brd 192.168.0.255"
routes_eth0="default via 192.168.0.1"
-------------------



Файл hosts:
vim /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-устройств:
emerge --ask sys-apps/pcmciautils



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


Инициализация и конфигурация загрузки:
Рекомендуется запустить systemd-firstboot --prompt --setup-machine-id, чтобы убедиться, что система корректно настроена, но нужные шаги можно также запускаться отдельно.
systemd-firstboot --prompt --setup-machine-id


Системный журнал:
emerge --ask app-admin/sysklogd
Необязательно: планировщик задач Cron:
emerge --ask sys-process/cronie
Необязательно: Индексирование файлов:
emerge --ask sys-apps/mlocate
Утилиты для файловых систем:
emerge --ask sys-fs/e2fsprogs
emerge --ask sys-fs/dosfstools
Необязательно: Установка утилит для беспроводной сети
emerge --ask net-wireless/iw net-wireless/wpa_supplicant
Необязательно: Установка клиента PPPoE
emerge --ask net-dialup/ppp


9. Пример Установки загрузчика BIOS and MBR:


!!! https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Bootloader/ru
!!! https://wiki.gentoo.org/wiki/GRUB2_Quick_Start/ru#.D0.A0.D1.83.D1.87.D0.BD.D0.B0.D1.8F_.D0.BD.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0
!!! По умолчанию используется GRUB2.
!!! Обратите внимание что установка загрузчика MBR и UEFI отличается.
!!! Для UEFI убедитесь что раздел /boot примонтирован (ls /boot - есть файлы)

emerge --ask --verbose sys-boot/grub:2
grub-install /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg

10. Завершение установки:


exit
cd
umount -l /mnt/gentoo/dev{/shm,/pts,}
umount -R /mnt/gentoo
reboot


11. Приложения:


!!! https://wiki.gentoo.org/wiki/Handbook:AMD64/Working/USE/ru
!!! https://wiki.gentoo.org/wiki/Handbook:AMD64/Working/Portage/ru#.D0.9A.D0.BE.D0.B3.D0.B4.D0.B0_Portage_.D0.BD.D0.B0_.D1.87.D1.82.D0.BE-.D1.82.D0.BE_.D1.80.D1.83.D0.B3.D0.B0.D0.B5.D1.82.D1.81.D1.8F
Работа с пакетами:
emerge <пакет> - установка пакета
emerge --unmerge <пакет> - удаление пакета
emerge -avuDN @world - обновление
emerge --sync - синхронизация с репозиторием
layman -a <оверлей> - добавление оверлея
layman -d <оверлей> - удаление оверлея
layman -L - список оверлеев
Оверлеи - сторонние репозитории, что-то похожее на AUR.

emerge layman
Для их установки layman.

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


Очистка устаревших пакетов:
emerge --depclean