Приспичило собрать на отдельном диске свеженькую ОС — без графики, только основные компоненты.
Кратко о железе. Сетевая карта и видюха в данном случае роли не играют — мои железки отлично поддерживаются в линуксе. Тем более, что при настройке ядра каждый должен выбрать драйвера для своего железа.
На борту имеется:
- 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 едва ли вызовет сложности. И спасибо, что заглянули в мою шпаргалку!
Комментарии
17:07
17:15
Не, на самом деле всё просто. Разметил, скачал, распаковал, чрутнулся. А вот ядро - это геморрой с непривычки. Да и с привычкой, бывает, тоже. Свой первый конфиг я вообще из Live-DVD выдирал, когда ставил генту лет 8 назад.
22:28
16:27
10:23
12:14
00:05
20:20
19:23
15:00
06:09
00:03
да, хорошая...
только почему ни кто в начале не написал:
Установка Гентоо = АД для ПЕРВОРАЗНИКА !!!
10:34
начинаю познавать дао красноглазия:
http://i.piccy.info/i9/d5f8c9eaecd452655100cfb5ebf7883c/1627716802/557227/1437347/Zniatok_ekranu_iak_2021_07_31_09_33_47.png
14:10
20:10
16:16