0.Вводное:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
Страница загрузки: 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
Раздел Описание Код для 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
Создаем директорию: 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:
1 |
cp --dereference /etc/resolv.conf /mnt/gentoo/etc/ |
4. Монтирование разделов
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Монтирование необходимых файловых систем для продолжения установки: !!! /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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
Настройка 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
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, ручная сборка ядра:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Настройка ядра 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, автоматическая сборка ядра:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
!!! Не рекомендую этот способ сборки ядра !!! Обычно, символьная ссылка /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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
!!! Если вы используете 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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
!!! 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 Готовые образы ядра
1 2 3 4 5 |
!!! Сборка ядра достаточно увлекательное занятие !!! Если совсем все плохо, рекомендуется установить готовое ядро emerge --ask sys-kernel/installkernel-systemd-boot emerge --ask sys-kernel/gentoo-kernel-bin emerge --ask @module-rebuild |
8. Настройка системы:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
монтирование дисков в 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:
1 2 3 4 5 6 7 8 9 |
!!! 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. Завершение установки:
1 2 3 4 5 |
exit cd umount -l /mnt/gentoo/dev{/shm,/pts,} umount -R /mnt/gentoo reboot |
11. Приложения:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
!!! 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 |