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.Рекомендованная разметка диска UEFI+GPT:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
Раздел Описание Код для fdisk /dev/vda1 Системный (и загрузочный) раздел EFI (ESP) -> код 1 /dev/vda2 Раздел подкачки -> код 19 /dev/vda3 Корневой раздел -> код 20 Разметка диска: fdisk /dev/vda p - показать разметку g - сделать gpt таблицу d - удалить n - создать раздел (enter enter +256M) n - создать раздел (enter enter +2G) n - создать раздел (enter enter enter) t - установить тип раздела (1 1) t - установить тип раздела (2 19) t - (не требуется 20 по умолчанию для нового раздела ) установить тип раздела (3 20) Накатываем файловые системы и включаем swap mkfs.vfat -F 32 /dev/vda1 mkfs.ext4 /dev/vda3 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 45 |
Настройка 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 |
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. kernel, ручная сборка ядра:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Настройка ядра Linux: emerge --ask sys-kernel/linux-firmware emerge --ask sys-kernel/gentoo-sources eselect kernel list eselect kernel set 1 !!! Гайд 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 |
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/vda3 / vfat defaults,noatime 0 1 /dev/vda1 /boot ext2 defaults,noatime 0 2 /dev/vda2 none swap sw 0 0 ------------------ Проверяем: 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. Настройка начального загрузчика:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
!!! 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 Установка загрузчика grub2 UEFI !!! grub-install --target=x86_64-efi --efi-directory=/boot --removable grub-install --target=x86_64-efi --efi-directory=/boot Если рядом не будет других систем полезно добавить в grub vim /etc/default/grub ------------------------- GRUB_DISABLE_OS_PROBER=false ------------------------- Генерируем меню загрузки: grub-mkconfig -o /boot/grub/grub.cfg |
9.1 Пример Установки загрузчика UEFI and GPT:
1 2 3 4 5 6 7 |
echo 'GRUB_PLATFORMS="efi-64"' >> /etc/portage/make.conf emerge --ask sys-boot/grub grub-install --target=x86_64-efi --efi-directory=/boot --removable grub-mkconfig -o /boot/grub/grub.cfg Если требуется пересобрать grub (добавили платформу в potage) то используйте: emerge --ask --update --newuse --verbose sys-boot/grub |
9.2 Альтернатива grub efibootmgr
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
!!! https://wiki.gentoo.org/wiki/Efibootmgr 0. Сносим загрузчик: cd /boot/ rm -rf * 1. Собираем ядро cd /usr/src/linux make && make modules_install make install 2. устанавливаем загрузчик emerge --ask sys-boot/efibootmgr mkdir -p /boot/efi/boot cp /boot/vmlinuz-* /boot/efi/boot/bootx64.efi efibootmgr -v - выводим доступные варианты загрузки efibootmgr --create --disk /dev/vda --part 2 --label "Gentoo" --loader "\efi\boot\bootx64.efi" #efibootmgr -c -d /dev/vda -p 2 -L "Gentoo" -l "\efi\boot\bootx64.efi" initrd='\initramfs-genkernel-amd64-4.9.16-gentoo' P.S. efibootmgr -b 2 -B - удаление не правильной записи |
9.3 Альтернатива grub Syslinux
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
!!! https://wiki.gentoo.org/wiki/Syslinux emerge --ask sys-boot/syslinux MBR: dd bs=440 conv=notrunc count=1 if=/usr/share/syslinux/mbr.bin of=/dev/vda GPT: dd bs=440 conv=notrunc count=1 if=/usr/share/syslinux/gptmbr.bin of=/dev/vda syslinux --install /dev/vda1 mkdir -p /boot/efi/EFI/syslinux cd /usr/share/syslinux/efi64 cp syslinux.efi ldlinux.e64 menu.c32 libcom32.c32 libutil.c32 /boot/efi/EFI/syslinux |
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 23 24 25 26 27 28 29 30 31 32 33 |
!!! 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 !!! https://www.funtoo.org/Emerge/ru Работа с пакетами: emerge <пакет> - установка пакета emerge --unmerge <пакет> - удаление пакета emerge -avuDN @world - обновление emerge --sync - синхронизация с репозиторием layman -a <оверлей> - добавление оверлея layman -d <оверлей> - удаление оверлея layman -L - список оверлеев Оверлеи - сторонние репозитории, что-то похожее на AUR. emerge layman Для их установки layman. И самое важное - что делать если portage жалуется на что-то. Для начала, не паникуйте и внимательно прочтите вывод программы. Постарайтесь просто понять, что не так, при необходимости воспользуйтесь переводчиком. Поиск пакета: emerge -s firefox emerge --search firefox Удаление пакетов: emerge -C firefox emerge --unmerge firefox emerge -aC firefox emerge -a --depclean Обновление пакетов: emerge -uDN @world emerge -uavDN @world |
Создание swap файла на лету с добавлением в fstab:
1 2 3 4 5 |
fallocate -l 1G /.swap chmod 600 /.swap mkswap /.swap echo '/.swap none swap defaults 0 0' >> /etc/fstab swapon /.swap |