Установка и настройка Gentoo: конспект моей установки. Linux статьи

Установка и настройка Gentoo: конспект моей установки

4

Установка и насройка Gentoo

Данный материал подготовлен пользователем Voland специально для pingvinus.ru.

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

Кратко о железе. Сетевая карта и видюха в данном случае роли не играют — мои железки отлично поддерживаются в линуксе. Тем более, что при настройке ядра каждый должен выбрать драйвера для своего железа.
На борту имеется:

  • Intel Core i7-3770
  • Три SATA HD
    • sda — Win 10
    • sdb — Gentoo рабочая система
    • sdc — пустой диск

На руководство я не претендую и советую после прочтения конспекта обратиться к той самой Великой Книге всех гентушников — Хэндбук (далее ХБ):
https://wiki.gentoo.org/wiki/Handbook:AMD64/ru
Я лишь хочу показать, что даже для неопытного линуксоида, к которым я отношу и себя, установка Gentoo не составляет каких-то особых проблем. Добавлю, что при установке системы я нахожусь в заранее выгодном положении. Во-первых, за плечами не одна сборка этого чуда. Во-вторых, я работаю из полностью допиленной системы Gentoo. Для установки Gentoo сгодится любой дистрибутив, установленный на ПК, но можно воспользоваться Live-образами с сайта https://gentoo.org/downloads/ или http://www.system-rescue-cd.org/Download/. Вторым я сам не пользовался, но говорят, что он вполне пригоден. А Hybrid ISO (Live-DVD) вполне способен обеспечить комфортную среду для сборки системы. Самое главное, чтобы в запущенной системе работал интернет.
Итак, начну.


Первый этап установки состоит в разметке диска, на котором будет установлена свеженькая ОС. Я размечаю так, как я привык. Думаю, человек, дошедший до установки Gentoo, сам знает, как ему нужно разбивать диск.
Все действия я выполнил от имени root.

Разметил sdc на четыре раздела при помощи cfdisk — удобная программа.

cfdisk /dev/sdc

Схема разделов:

  • sdc1 — 512M — под boot (тип ФС 83)
  • sdc2 — 50GB — под корень (тип ФС 83)
  • sdc3 — 413,3 — под home (тип ФС 83)
  • sdc4 — оставшиеся ровно 2G под swap (тип ФС 82)

Создал ФС на размеченном диске.

mkfs.ext2 /dev/sdc1
mkfs.ext4 /dev/sdc2
mkfs.ext4 /dev/sdc3
mkswap /dev/sdc4
swapon /dev/sdc4

Создал директорию, в которую смонтирую корень будущей системы sdc2.

mkdir /mnt/gentoo

Смонтировал корень.

mount -t auto /dev/sdc2 /mnt/gentoo

Создал на нём нужные мне директории.

mkdir /mnt/gentoo/{boot,home,tmp}

У меня в проверке даты нет нужды, я работаю в настроенной системе. Но если используется какой-то Live-образ, дату нужно проверить.

date

И в случае несоответствия настроить: месяц, число, час, минута, год. Например:

date 090615302018

Перешёл в директорию корня новой системы.

cd /mnt/gentoo

При помощи elinks (можно использовать хоть links, хоть wget — что душа захочет) скачал stage3 системы.

elinks https://mirror.yandex.ru/gentoo-distfiles

Взял архив по адресу:
releases > amd64 > autobuilds > current-stage3-amd-64 > stage3-amd64-*.tar.xz

Архив сохранен в /mnt/gentoo. Распаковал.

tar xJvpf stage3-*.tar.xz --xattrs --numeric-owner

С этого момента начинается базовая настройка будущей системы.

Файл make.conf содержит в себе параметры компиляции пакетов, компонентов для сборки, важных путей для portage. Поскольку я ставлю ОС без всякой графики и прочего, на данном этапе мне достаточно такого конфига:

nano /mnt/gentoo/etc/portage/make.conf
# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /usr/share/portage/config/make.conf.example for a more
# detailed example.
CFLAGS="-march=ivybridge -O2 -pipe"
CXXFLAGS="${CFLAGS}"

# WARNING: Changing your CHOST is not something that should be done lightly.
# Please consult http://www.gentoo.org/doc/en/change-chost.xml before changing.
CHOST="x86_64-pc-linux-gnu"

# /////////////////////////////////////////////////////////////////////
CPU_FLAGS_X86="aes avx f16c mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3"
MAKEOPTS="-j6"

# NOTE: This stage was built with the bindist Use flag enabled
GENTOO_MIRRORS="ftp://mirror.yandex.ru/gentoo-distfiles/"
ACCEPT_KEYWORDS="amd64"
PORTDIR="/usr/portage"
DISTDIR="/usr/portage/distfiles"
PKGDIR="/usr/portage/packages"

# This sets the language of build output to English.
# Please keep this setting intact when reporting bugs.
LC_MESSAGES=C

Коротко о некоторых параметрах:
CFLAGS="-march=ivybridge -O2 -pipe" — здесь указал технологию процессора (ivybridge).
CPU_FLAGS_X86="aes avx f16c mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3″ — наборы инструкций процессора. Их я вычислил командой cpuid2cpuflags. Если в запущенной системе такой утилиты нет, можно сделать это после чрута, установив

emerge --ask app-portage/cpuid2cpuflags

MAKEOPTS="-j6″ — имея 4-ядерный камень с 8-ю потоками выполнения, я выбрал 6 потоков компиляции. Мне хватает.
GENTOO_MIRRORS="ftp://mirror.yandex.ru/gentoo-distfiles/" — выбрал зеркало пакетов. Всегда пользуюсь зеркалом Яндекса.
ACCEPT_KEYWORDS="amd64″ — выбрал стабильную ветку для 64-битной системы. ~amd64 — нестабильная. С x86 и ~x86 всё аналогично.


Настроил дефолтный репозиторий ebuild-ов, как требует ХБ.

mkdir /mnt/gentoo/etc/portage/repos.conf
cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf

Скопировал информацию о действующих DNS провайдера.

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

Смонтировал необходимые ФС.

mount -t 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

Чрутнулся в новую систему, обновил среду.

chroot /mnt/gentoo /bin/bash
source /etc/profile

Команда ниже — для удобства. Советую выполнить.

export PS1="(chroot) $PS1"

Смонтировал остальные разделы уже в чруте.

mount -t auto /dev/sdc1 /boot
mount -t auto /dev/sdc3 /home

Получил снимок репозитория, обновил его.

emerge-webrsync && emerge --sync

Есть новости дистрибутива. Стоит почитать.

eselect news list

Читать можно командой eselect news. Если не ввести номер, под которым размещена новость, будут открыты все сообщения и помечены прочитанными.

eselect news read номер

Список профилей системы.

eselect profile list

Стоит выбрать stable профили.

eselect profile list | grep stable

По умолчанию включен устраивающий меня профиль. Проверил.

eselect profile show
Current /etc/portage/make.profile symlink:
default/linux/amd64/17.0

Установить другой можно командой:

eselect profile set номер/название

Обновил мир. Поскольку я выбрал лёгкий профиль — без иксов, графики и прочего, обновление не заняло много времени — порядка пяти минут.

emerge --ask --update --deep --newuse @world

Можно поглядеть, какие флаги включены в профиле.

emerge --info | grep ^USE

Описание флагов можно почитать тут:

less /usr/portage/profiles/use.desc

Флаги задаются в переменной USE. На данном этапе никаких флагов я включать не буду.


Установил временную зону.

echo "Asia/Omsk" > /etc/timezone
emerge --config sys-libs/timezone-data

Список зон можно посмотреть директории:

ls /usr/share/zoneinfo

Настроил нужные мне локали.

nano /etc/locale.gen
en_US.UTF-8 UTF-8
ru_RU.UTF-8 UTF-8

Сгенерировал их.

locale-gen

Выбрал системную локаль, обновил среду.

eselect locale list
eselect locale set номер
env-update && source /etc/profile && export PS1="(chroot) $PS1"

Локаль записалась сюда:

cat /etc/env.d/02locale

Установил сиходники ядра.

emerge --ask sys-kernel/gentoo-sources

Проверил, указывает ли ссылка /usr/src/linux на директорию с исходниками ядра.

ls -l /usr/src/linux

В дальнейшем список исходников можно посмотреть и выбрать так:

eselect kernel list
eselect kernel set номер/название

Для настройки ядра рекомендую обратиться к Хэндбуку, поскольку это самый сложный этап.
https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Kernel/ru

У меня имеется конфиг рабочего ядра, его я перенес в новую систему.

cd /usr/src/linux
zcat /proc/config.gz > .config
make oldconfig

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

make -j9

Установил.

make modules_install
make install

Установил имя компьютера.

nano /etc/conf.d/hostname
hostname="dev"

Настроил сеть. Использую статику. Вручную прописываю DNS провайдера. О других вариантах настройки лучше меня расскажет ХБ.

nano /etc/conf.d/net
dns_domain_lo="homenetwork"

config_enp3s0="192.168.1.2 netmask 255.255.255.0"
routes_enp3s0="default via 192.168.1.1"
dns_servers_enp3s0="192.168.1.1 81.23.192.36 81.23.193.250"

Сделал симлинк для запуска сетевого интерфейса, добавил его в загрузки.

cd /etc/init.d
ln -s net.lo net.enp3s0
rc-update add net.enp3s0 boot

Настроил hosts.

nano /etc/hosts
127.0.0.1 dev.homenetwork dev localhost

Задал пароль рута.

passwd

Настроил системные часы. Использую систему UTC. Если на ПК стоит другая ОС, не использующая время в UTC, возникнут проблемы. Все ОС должны быть настроены на UTC. Винда, кстати, тоже умеет.

nano /etc/conf.d/hwclock

clock_systohc="YES« — раскомментировал эту строку для синхронизации с «железным» временем.

По установке системных средств можно обратиться к ХБ.
https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Tools/ru


Настроил точки монтирования.

nano /etc/fstab
/dev/sdс1 /boot ext2 noatime 1 2
/dev/sdс2 / ext4 defaults 0 1
/dev/sdс3 /home ext4 defaults 0 1
/dev/sdс4 none swap sw 0 0

Указал в make.conf платформу для grub2.

nano /etc/portage/make.conf
GRUB_PLATFORMS="pc"

Добавил флаг mount для grub2 (требует os-prober)

nano /etc/portage/package.use/grub2
sys-boot/grub mount

Установил grub2 и os-prober.

emerge --ask sys-boot/grub:2 os-prober

Установил загрузчик на sdc, настроил конфиг.

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

Вышел из чрута и папки с новой системой.

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

Если что-то там не отмонтировалось — не беда. После перезагрузки с целевого диска я имею рабочую Gentoo без графики, с сетью, с учётной записью root и полностью готовую к настройке.


Как можно видеть, стандартная установка Gentoo едва ли вызовет сложности. И спасибо, что заглянули в мою шпаргалку!

Материалы по теме:

4

Комментарии

yuriyАктивный
07.09.2018, 10:07
Постоянная ссылка на комментарий
Грандиозная работа! Это не Ubuntu поставить :D
VolandАктивный
07.09.2018, 10:15
Постоянная ссылка на комментарийРодительский комментарий
https://bash.im/quote/394695 - вспомнилась цитата :D
Не, на самом деле всё просто. Разметил, скачал, распаковал, чрутнулся. А вот ядро - это геморрой с непривычки. Да и с привычкой, бывает, тоже. Свой первый конфиг я вообще из Live-DVD выдирал, когда ставил генту лет 8 назад.
VadimAndyАктивный
08.09.2018, 15:28
Постоянная ссылка на комментарий
вобщем -то как и ожидалось - потому то я и не лезу в эти дебри
владимир
09.09.2018, 09:27
Постоянная ссылка на комментарий
И "нашо" так "извращаться", хотя в плане времени запуска системы, особенно на ssd, очень даже быстро, даже на старом железе...

Написать комментарий

Ваше имя:
Текст комментария: