Как я ставил Gentoo

Обновил свой домашний компьютер, самое главное – процессор AMD Phenom X6, т.е. 6-ядерный и 64-битный, оперативной памяти 4 Гигабайта. Решено было на это чудо установить Gentoo Linux как наиболее трушную операционную систему. Это не первое мое знакомство с Gentoo, но тем не менее, не все прошло гладко. Хочу предостеречь вас от моей самой главной ошибки. Я начал устанавливать Gentoo архитектуры x86, а т.к. у меня было 4 гигабайта памяти, то в конечном итоге система увидела 3 с хвостиком. Можно было пересобрать с поддержкой PAE (тогда бы система увидела все 4 Гигабайта ОЗУ, но так и осталась бы 32-битной), но я все же решил воспользоваться преимуществами 64-битной архитектуры и пересобрать все заново. Итак, для 64-битных процессоров рекомендуется скачивать файлы архитектуры amd64. Нам потребуется два файлика – iso-образ и архив stage3.tar.bz2 для установки базовой системы. У меня это были файлы install-amd64-minimal-20111006.iso и stage3-amd64-20111006.tar.bz2. В дальнейшем они и будут фигурировать. Еще хочу сказать, что почти всю последовательность этих действий с более подробным описанием можно найти в Gentoo Handbook. Да, лучше пользоваться английской версией.

Прожигаем образ install-amd64-minimal-20111006.iso на чистый CD-R и загружаем с него компьютер. После того, как LiveCD-загрузился и выдал консоль, поднимаем сеть вручную:

# ifconfig eth0 192.168.0.12
# route add default gw 192.168.0.1
# echo "nameserver 8.8.8.8" > /etc/resolv.conf

Теперь нужно переразбить диск. Я устанавливал все на чистый жесткий диск, поэтому разбивка получилась простой:

# fdisk /dev/sda
o  // новая таблица разделов
n p +100GB  // создаем корневой раздел
n p Enter   // создаем раздел для home
w  // записываем таблицу разделов

Подкачку решил не делать, в крайнем случае можно позже создать файл подкачки. Теперь у нас должно появиться два устройства /dev/sda1 и /dev/sda2. Форматируем:

# mke2fs -j /dev/sda1
# mke2fs -j /dev/sda2

Монтируем свежие разделы:

# mount /dev/sda1 /mnt/gentoo
# mkdir -p /mnt/gentoo/home
# mount /dev/sda2 /mnt/gentoo/home
# cd /mnt/gentoo

Скачиваем архив stage3 (обращаем внимание на архитектуру amd64) и распаковываем:

# wget http://distfiles.gentoo.org/releases/amd64/autobuilds/current-iso/stage3-amd64-20111006.tar.bz2
# tar xf stage3-amd64-20111006.tar.bz2

Начинаем настраивать опции сборки. В файле make.conf новой системы нам нужно будет указать тип процессора (athlon64) и количество ядер (-j6). Это очень важно для производительности! Строку USE я оставил как была, только добавил ключ 3dnow, скорее всего пригодится:

# nano -w /mnt/gentoo/etc/portage/make.conf
CFLAGS="-O2 -march=athlon64 -pipe"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j6"
USE="mmx sse sse2 3dnow"
Ctrl+X

Определяем наиболее быстрые для нас зеркала репозиториев Gentoo. У меня ближе всех получился Яндекс:

# mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
# mirrorselect -i -r -o >> /mnt/gentoo/etc/portage/make.conf
# tail -n2 /mnt/gentoo/etc/portage/make.conf
GENTOO_MIRRORS="http://mirror.yandex.ru/gentoo-distfiles/ ftp://mirror.yandex.ru/gentoo-distfiles/"
SYNC="rsync://rsync2.ru.gentoo.org/gentoo-portage"

У новой системы настройки DNS будут такими же:

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

Монтируем специальные файловые системы:

# mount -t proc none /mnt/gentoo/proc
# mount --rbind /dev /mnt/gentoo/dev

И, наконец, chroot-имся в новую систему:

# chroot /mnt/gentoo /bin/bash
# env-update
# source /etc/profile

Обновляем дерево Portage новой системы (этот процесс займет долгое время):

# emerge --sync
... Сходили попили чайку

Выбираем профиль будущей системы, я предпочитаю графическую среду Gnome:

# eselect profile list
...
[3] default/linux/amd64/10.0/desktop/gnome
...
# eselect profile set 3

Настраиваем локаль и временную зону:

# nano -w /etc/locale.gen
en_US.UTF-8 UTF-8
ru_RU.UTF-8 UTF-8
Ctrl+X
# locale-gen
# cp /usr/share/zoneinfo/Asia/Novosibirsk /etc/localtime

Одно из самых интересных мест – сборка ядра.

# emerge gentoo-sources
# cd /usr/src/linux
# make menuconfig

В появившейся менюшке выбираем Processor type and features → Processor family → Opteron/Athlon64/Hammer/K8 (т.к. у нас процессор AMD).

Также по непонятной мне причине нужно включить опцию ядра Device Drivers → Generic Driver Options → Maintain a devtmpfs filesystem to mount at /dev и соседняя с ней Automount devtmpfs at /dev, after the kernel mounted the rootfs

Также отмечаем необходимые нам компоненты ядра, мне например понадобилась файловая система CIFS.

Выходим из менюшки и собственно собираем ядро и устанавливаем его:

make && make modules_install
cp arch/x86/boot/bzImage /boot/kernel-2.6.39-gentoo-r3

Продолжаем настраивать новую систему:

# nano -w /etc/fstab
/dev/sda1   /        ext3    noatime  0 1
/dev/sda3   /home    ext3    defaults 0 2
proc        /proc    proc    defaults 0 0
shm         /dev/shm tmpfs   nodev,nosuid,noexec 0 0

Определяем имя хоста и задаем сетевые настройки:

# echo HOSTNAME="home" > /etc/conf.d/hostname
# cd /etc/init.d
# ln -s net.lo net.eth0
# cat > /etc/conf.d/net
config_eth0="192.168.0.12/24"
routes_eth0="default via 192.168.0.1"
Ctrl+D
# rc-update add net.eth0

Устанавливаем и настраиваем загрузчик GRUB:

# emerge grub
# cat > /boot/grub/grub.conf
default 0
timeout 1
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
vga=775

title Gentoo Linux 2.6.39-r3
root (hd0,0)
kernel /boot/kernel-2.6.39-gentoo-r3 root=/dev/sda1 vga=1

title Gentoo Linux 2.6.39-r3 (rescue)
root (hd0,0)
kernel /boot/kernel-2.6.39-gentoo-r3 root=/dev/sda1 init=/bin/bb
Ctrl+D
# grep -v rootfs /proc/mounts > /etc/mtab
# grub-install --no-floppy /dev/sda

Добавляем системного пользователя. Ведь всем известно, что нельзя сидеть под рутом.

# passwd
# useradd -m -G users novichok
# su - tam
Ctrl+D

Перезагружаемся, радуемся. Вот собственно и все. Дальше можно сделать emerge gnome, но это уже совсем другая история…

Похожие статьи

4 thoughts on “Как я ставил Gentoo”

  1. Делаем все абсолютно тоже самое но на мощном сервере, а в самом конце тарим и на диск записываем. потом грузимся с какой-нибудь убунты LiveCD и растариваем на локальную машину. Потом правим CFLAGS на свои + оптимизации, потом emerge -avuDn system && emerge -avuDN world и вот она быстрая и максимально оптимизированная ОС на машине.

  2. Если вам срочно понадобится переустановить систему, или поставить её на новую машину, то это может занять довольно много времени. Помните об этом, когда ставите gentoo в продакшн.

  3. Для Sattellite: Ты это типа попробовал сумничать? При такой конфигурации сборка и установка проходит очень быстро и таскание с сервака не имеет смысла. Даже 4-х ядерный АМД проц собирает ядро менее чем за полчаса. Так что знаток-теоретик засунь свои “вумные” мысли назад в задницу, откуда они и появились.

  4. Я вот не понимаю авторов таких художественных “шедевров”. Когда хэндбук был на английском, то друг у друга тырили один кривой перевод на русский, а описалов как я ставил генту не было. Зато теперь их как грязи. Только зачем? Иди на сайт генты там актуальный хэндбук есть. А ваши личные косяки и пустые телодвижения мало кого интересуют.

Leave a Reply

Your email address will not be published. Required fields are marked *