четверг, 4 июля 2013 г.

Знакомство с Gentoo. Часть 1. Установка

В этой заметке я опишу свой первый опыт установки Gentoo. Раньше думал, что это сложно, на самом деле нет.
Я не буду подробно описывать каждый шаг, ведь это все написано в Gentoo Handbook на русском. Скажу сразу, у кого был опыт установки Arch Linux, сборка Gentoo покажется не сложной.
Все параметры установки и ядра, наверняка подойдут и вам, но на всякий случай напишу конфигурацию своего ноута:
AMD Athlon(tm) II Dual-core M340;
RAM 2G;
AMD Radeon 5145;
HDD 320G.

Ясное дело, что все это дело я делал в виртуалке. Использовал Virtualbox.
Две сетевухи: NAT (для инета), сетевой мост (для подключения ssh).
RAM 256M;
HDD 10G.

Так как у меня 32-х разрядная система, то образ я качал отсюда:
http://distfiles.gentoo.org/releases/x86/autobuilds/current-stage3/install-x86-minimal-20130528.iso

Загрузился с образа.
Все действия производятся от рута, поэтому решетку (#) писать не буду.

Мне в виртуалке работать неудобно, поэтому я использую для этого ssh.
Включаем демон и подключаемся с хоста, ip-адрес gentoo, в моем случае 192.168.0.41:
/etc/init.d/sshd start
ssh [email protected]

Разметка диска, я использовал fdisk, можно использовать parted:
/dev/sda1 ext2 32M /boot
/dev/sda2 swap 512M swap
/dev/sda3 ext4 (оставшееся место)  /

Создаем файловые системы на разделах и включаем сразу swap:
mkfs -t ext2 /dev/sda1
mkswap /dev/sda2
mkfs -t ext4 /dev/sda3
swapon /dev/sda2

Монтируем файловые системы:
mount /dev/sda3 /mnt/gentoo
mkdir /mnt/gentoo/boot
mount /dev/sda1 /mnt/gentoo/boot

Выставляем дату (4 июля, 15 часов 19 минут 2013 года) :
date 070415192013

Переходим в корень новой файловой системы и скачиваем stage3:
cd /mnt/gentoo
links http://gentoo.kiev.ua/ftp/releases/x86/autobuilds/current-stage3-i686/stage3-i686-20130528.tar.bz2
Для загрузки нажать кнопку d.

Распакуем архив:
tar xvjpf stage3-i686-20130528.tar.bz2

Укажем уровень компиляции (количество ядер  + 1):
vi /mnt/gentoo/etc/portage/make.conf
MAKEOPTS="-j3"

Выбор зеркала и rsync:
mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
mirrorselect -i -r -o >> /mnt/gentoo/etc/portage/make.conf

Копируем файл resolv.conf:
cp -L /etc/resolv.conf /mnt/gentoo/etc/

Монтируем важные файловые системы:
mount -t proc none /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev

Чрутнемся в систему:
chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) $PS1"

Делаем снимок дерева portage и читаем новости:
mkdir /usr/portage
emerge-webrsync
eselect news list
eselect news read

Установим профиль desktop'ной станции:
eselect profile list
eselect profile set 3
nano /etc/portage/make.conf
USE="-gtk -gnome alsa"

Настройка часового пояса:
cp /usr/share/zoneinfo/Europe/Kiev /etc/localtime
echo "Europe/Kiev" > /etc/timezone

Скачиваем и настраиваем ядро:
emerge gentoo-sources
cd /usr/src/linux
make menuconfig

Настраиваете ядро по вашему усмотрению, я делал так:
Processor type and features --->
(i686) Processor family

Device Drivers --->
Generic Driver Options --->
[*] Maintain a devtmpfs filesystem to mount at /dev
[ ] Automount devtmpfs at /dev, after the kernel mounted the rootfs

File systems --->
<*> Second extended fs support
<*> The Extended 4 (ext4) filesystem

Pseudo Filesystems --->
[*] /proc file system support
[*] Virtual memory file system support (former shm fs)
-*- Enable the block layer --->
...
Partition Types --->
[*] Advanced partition selection

Device Drivers --->
[*] HID Devices ---><*>

Bus options (PCI etc.) --->
PCCARD (PCMCIA/CardBus) support --->
<*> PCCard (PCMCIA/CardBus) support
<*> 16-bit PCMCIA support
[*] 32-bit CardBus support
<*> CardBus yenta-compatible bridge support (NEW)

Ядро версии 3.8.13.
Компилируем и собираем ядро (идем пить кофе чай):
make && make modules_install

Копируем свежее ядро куда надо и устанавливаем initramfs:
cp arch/x86/boot/bzImage /boot/kernel-3.8.13-gentoo
emerge genkernel
genkernel --install initramfs

Заполняем файл fstab:
nano /etc/fstab
/dev/sda1 /boot ext2 defaults,noatime 0 2
/dev/sda2 none swap swap sw 0 0
/dev/sda3 / ext4 noatime 0 1

Настройка инета (да, опять):
nano /etc/conf.d/net
config_enp0s3="dhcp"
config_enp0s8="dhcp"
cd /etc/init.d
ln -s net.lo net.enp0s3
rc-update add net.enp0s3 default

Пароль root'а:
passwd

Настройка времени и локалей:
nano /etc/conf.d/hwclock
clock="local"

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

locale-gen

nano /etc/env.d/02locale
LANG="en_US.UTF-8"
LC_COLLATE="C"

env-update && source /etc/profile

Устанавливаем syslog, cron, locate, добавляем в автозагрузку и sshd:
emerge syslog-ng
rc-update add syslog-ng default

emerge vixie-cron
rc-update add vixie-cron default

emerge mlocate

rc-update add sshd default

Устанавливаем vim, dhcpcd:
emerge dhcpcd
emerge vim

Устанавливаем и настраиваем grub:
emerge grub

nano /boot/grub/grub.conf
default 0
timeout 30
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
title Gentoo Linux 3.8.13
root (hd0,0)

kernel /boot/kernel-3.8.13-gentoo root=/dev/sda3
initrd /boot/initramfs-genkernel-x86-3.8.13-gentoo

grep -v rootfs /proc/mounts > /etc/mtab
grub-install --no-floppy /dev/sda

Перезагружаемся:
exit
cd
umount -l /mnt/gentoo/dev{/shm,/pts,}
umount -l /mnt/gentoo{/boot,/proc,}
reboot


Если grub все загрузил нормально, то могу вас поздравить.

Создадим локального юзера и его пароль:
useradd -m -G users,wheel,audio -s /bin/bash amet13
passwd amet13

Удалим, то что мы поскачивали:
rm /stage3-*tar.bz2*
rm -rf /usr/src/linux

Синхронизируем дерево portage и установим ntp:
emerge --sync
emerge --oneshot portage
emerge ntp
rc-update add ntp-client default

Оочень долго компилировалось ядро и обновлялось дерево portage. Представляю, как я буду компилить LibreOffice...

Все, дальше буду накатывать ГУЙ и приложения, но это уже другая история...
UPD: 06.07.2013. Вторая часть.

localhost ~ # uname -a
Linux localhost 3.8.13-gentoo #1 SMP Thu Jul 4 20:53:30 EEST 2013 i686 AMD Athlon(tm) II Dual-Core M340 AuthenticAMD GNU/Linux

localhost ~ # df -h
Filesystem      Size  Used Avail Use% Mounted on
rootfs          9.2G  2.4G  6.4G  28% /
udev             10M  4.0K   10M   1% /dev
/dev/sda3       9.2G  2.4G  6.4G  28% /
tmpfs           248M  212K  248M   1% /run
shm             248M     0  248M   0% /dev/shm
cgroup_root      10M     0   10M   0% /sys/fs/cgroup
/dev/sda1        31M  7.7M   22M  27% /boot

9 комментариев:

Анонимный комментирует...

гуд
толковая статья,реально помогло
пасибо

Amet13 комментирует...

Это скорее заметка для тех кто уже хоть раз собирал gentoo, чтобы не забыть. А вообще рекомендую засесть с handbook и многое отложится в голове.

Анонимный комментирует...

Огромное спасибо!..
в рунете в близком поиске пока еще нет ничего подобного......в свете: "Gentoo переходит на systemd. Официально."
Возможна правка для пущщей универсализации-
убрать еще KDE и Х - и на первую строчку GOOGLE)))

Анонимный комментирует...

export PS1="(chroot)" $PS1" ошибка
правильно так export PS1="(chroot) $PS1"

Amet13 комментирует...

Спасибо, опечатка. Исправил.

Анонимный комментирует...

grub-install --no-floppy /dev/sda, надо что бы grub2-install --no-floppy /dev/sda

Анонимный комментирует...

а где grub-mkconfig -o /boot/grub/grub.cfg после grub-install /dev/sda

A-r комментирует...

Здравствуйте. Подскажите пожалуйста, по какой ссылке сейчас качать дистрибутив для 32 битной операционной системы?

Amet13 комментирует...

Думаю эта: https://gentoo.osuosl.org/releases/x86/autobuilds/current-install-x86-minimal/install-x86-minimal-20200211T214502Z.iso