Gentoo - установка, stage3, краткоПодписка на Комментарии к "Gentoo - установка, stage3, кратко"

Аватар zenon

Не хотел писать про установку gentoo все-таки есть Handbook (русский вариант не совсем новый) для этого¸но все же некоторые моменты думаю будут полезны.
Данную статью не воспринимать как доскональное руководство к действию, просто попытался написать "быстрый старт" из stage3.
Для начала установки нам нужен любой Linux дистрибутив, можно Live, например Gentoo Live DVD, или SystemrescueCD.
Про то как разбить диск и создать раздел для установки писать не буду, также необходимо знать что такое chroot в Linux.
Если нужны дополнительные настройки (например, программная поддержка RAID), смотрим TipsTricks.

gentoo-it.jpg
Предположим у нас есть подготовленный раздел для корня - /dev/sda1, также настоятельно рекомендую вынести на другой раздел /usr/portage и /home.

Начали:

Создаем каталог для монтирования нашего раздела и монтируем его:

$ mkdir -vp /mnt/gentoo
$ mount -v /dev/sda1 /mnt/gentoo

Скачиваем последний доступный stage3 для x86 тут, для x86_64 тут и распаковываем.

$ cd /mnt/gentoo
$ wget http://distfiles.gentoo.org/releases/amd64/current-stage3/stage3-amd64-20120412.tar.bz2
$ tar xpjvf stage3-amd64-20120412.tar.bz2    # В текущий каталог
$ tar xpjvf stage3-amd64-20120412.tar.bz2 -C /mnt/gentoo/   # С указанием куда

Допустим для /usr/portage мы выделили /dev/sda2.
Разберемся с ним:

$ mkdir -vp /mnt/gentoo/usr/portage
$ mount /dev/sda2 /mnt/gentoo/usr/portage

Теперь смонтируем /dev, /dev/pts, /sys, /proc.

$ mount -v --bind /proc/ /mnt/gentoo/proc/
$ mount -v --bind /dev/  /mnt/gentoo/dev/
$ mount -v --bind /sys/  /mnt/gentoo/sys/
$ mount -v --bind /dev/pts/ /mnt/gentoo/dev/pts/

Пора отредактировать make.conf заострять внимание на нем не буду, тема выходит за рамки быстрого старта, варианты посмотреть тут, ну и конечно в Handbook.

$ nano /mnt/gentoo/etc/make.conf

Примеры можно посмотреть тут, может пригодится мой make.conf
Глобальные USE флаги (Gentoo Linux Use Variable Descriptions).
Gentoo Portage USE Flags.
Gentoo USE-флаги (описание на русском).

Отредактируем fstab, тк мы выделили /dev/sda1 под корень и /dev/sda2 под /usr/portage запишем примерно следующее:

$ nano /mnt/gentoo/etc/fstab

/dev/sda1 /            reiserfs    notail,noatime,defaults  0 1 # я использую reiserfs
/dev/sda2 /usr/portage reiserfs    notail,noatime,defaults  0 2

Или по UUID, что более правильно, и не будет зависеть от того в каком порядке подключены жесткие диски, чтобы узнать UUID раздела /dev/sda1 надо сделать:

$ ls -l /dev/disk/by-uuid/ | grep sda1   # Или просто в консоли blkid - выдаст все uuid

Строчка в fstab будет выглядеть так:

UUID=243fa9e0-4f6a-4dac-bd1c-a0742f78a9bc   /                       reiserfs    notail,noatime,defaults  0 1

Более подробно про fstab в wiki.

Почти все готово для chroot, остался resolv.conf без него в чрут-окружении не будет доступа к интернет, скопируем его из работающей системы:

$ cp /etc/resolv.conf /mnt/gentoo/etc/resolv.conf

Вместо этого можно в resolv.conf просто добавить адрес гуглоднс сервера который доступен всем:

nameserver 8.8.8.8
nameserver 8.8.4.4

Переходим в новую среду, чрутимся в stage3:

$ chroot /mnt/gentoo /bin/bash

Прочитаем новости :)

$ eselect news read

Выберем профиль:

$ eselect profile list
Available profile symlink targets:
  [1]   default/linux/amd64/10.0 *
  [2]   default/linux/amd64/10.0/selinux
  [3]   default/linux/amd64/10.0/desktop
  [4]   default/linux/amd64/10.0/desktop/gnome
  [5]   default/linux/amd64/10.0/desktop/kde
  [6]   default/linux/amd64/10.0/developer
  [7]   default/linux/amd64/10.0/no-multilib
  [8]   default/linux/amd64/10.0/server
  [9]   hardened/linux/amd64
  [10]  hardened/linux/amd64/selinux
  [11]  hardened/linux/amd64/no-multilib
  [12]  hardened/linux/amd64/no-multilib/selinux
$ eselect profile set 4 # Для Gnome окружения
$ env-update
$ source /etc/profile
$ export PS1="(chroot) $PS1"

Настраиваем локали:

$ cat /usr/share/i18n/SUPPORTED | grep -E 'ru_RU|en_US' >> /etc/locale.gen && locale-gen

Редактируем /etc/env.d/02locale

$ nano /etc/env.d/02locale

Туда записываем:

LC_ALL="ru_RU.UTF-8"
LANG="ru_RU.UTF-8"
# LC_MESSAGES="POSIX" # Убрать # для того чтобы сообщения были на английском языке
LC_NUMERIC="POSIX"    # Использовать в качестве разделителя дробной части точку (в русской локали по умолчанию запятая)
LC_TIME="POSIX"

Копируем новый файл временной зоны в /etc/localtime:

$ cp -v /usr/share/zoneinfo/Europe/Moscow /etc/localtime

Посмотреть другие временные зоны:

$ ls /usr/share/zoneinfo

Обновление дерева портежей (возможно понадобится обновление sys-apps/portage):

$ emerge --sync
$ emerge -av sys-apps/portage

Теперь если есть желание можно обновить gcc (glibc размаскировывать более новые версии не советую тем более что откатить glibc сложно (откат by megabaks)), новичкам не советую, процесс примерно выглядит так:

$ echo "=sys-devel/gcc-4.6.2 **" >> /etc/portage/package.keywords
$ echo "=sys-devel/gcc-4.6.2" >> /etc/portage/package.keywords
$ emerge -av binutils glibc gcc
$ gcc-config -l
 [1] x86_64-pc-linux-gnu-4.5.3
 [2] x86_64-pc-linux-gnu-4.6.2 *
$ gcc-config x86_64-pc-linux-gnu-4.6.2

Пересобирем по желанию toolchain и мир:

$ emerge -av binutils glibc gcc
$ emerge -avueDN system world

Без пересборки мира необходимо обновить и пересобрать пакеты с новыми USE флагами:

$ emerge -avuDN system world
Ядро.

опишу только вариант с genkernel.

Сначала установим исходники:

$ emerge -av gentoo-sources
$ eselect kernel list
$ eselect kernel set X # Вместо X свое значение

Как работает? Из командной сроки можно указать где конфиг для ядра, но почему-то не всегда работает, поэтому другой подход есть.
В каталоге /usr/share/genkernel/arch лежат все настройки для genkernel, а именно (на примере amd64):

/usr/share/genkernel/arch/x86_64/kernel-config   # Конфигурация ядра
/usr/share/genkernel/arch/x86_64/config.sh       # Опции сборки
/usr/share/genkernel/arch/x86_64/modules_load    # Загружаемые модули
/etc/genkernel.conf   # Файл конфигурации genkernel

genkernel.conf, config.sh, modules_load - отредактировать по желанию

Конфигурацией ядра можно воспользоваться дефолтной, а можно забрать отсюда
Конфиги для zen-sources можно забрать тут
И подскажу еще один вариант - скачать любой deb пакет с ядром linux-image и вытащить оттуда конфигурацию (deb распаковывается как архив, можно просто в Midnight Commander, нужен установленный пакет app-arch/dpkg)

Теперь надо скопировать файл конфигурации:

$ cp kernel.config /usr/share/genkernel/arch/x86_64/kernel-config

И собрать ядро:

$ cd /usr/src/linux
$ genkernel --loglevel=5 --menuconfig all

Еще один момент - после успешной сборки ядра genkernel записывает удачную конфигурацию в /etc/kernels.

Grub2

$ echo "=sys-boot/grub-1.99-r2 **" >> /etc/portage/package.keywords
$ emerge -av sys-boot/grub sys-boot/os-prober

Отредактируем:

$ nano /etc/default/grub

Строки:

GRUB_CMDLINE_LINUX_DEFAULT=""
#GRUB_GFXMODE=640x480

К виду:

GRUB_CMDLINE_LINUX_DEFAULT="quiet nomodeset vga=792"
GRUB_GFXMODE=1024x768

Выполним:

$ grub2-mkconfig -o /boot/grub2/grub.cfg

И небольшой фикс для os-prober, если при выполнении grub2-mkconfig не корректно добавляются в меню загрузки другие ОС (на других разделах) стоит заменить /etc/grub.d/30_os-prober на этот.
Подробнее писал тут.
Если есть установленный qemu/kvm, можно проверить правильно ли установлен Grub2, следующей командой:

$ sync ; echo 3 > /proc/sys/vm/drop_caches ; qemu -hda /dev/sda

Ссылки:
/ru.wikibooks.org/wiki/Grub_2
Grub_2_от_А_до_Я
sergtat.hut.ru

С grub2 всё.

Устанавливаем всякие полезности, (не обязательно):

$ emerge -av zsh-completion bash-completion bash zsh most less app-misc/mc grc gentoolkit portage-utils genkernel e2fsprogs progsreiserfs reiserfsprogs ntfs3g dosfstools eix terminus-font pciutils btrfs-progs xfsprogs jfsutils layman

.
.
.
Полная поддержка русского языка
Локали (/etc/locale.gen) и переменные окружения (/etc/env.d/02locale) мы уже настроили. Еще обращаю внимание на Gentoo Linux Localization Guide.
Осталось настроить переключение клавиатуры (/etc/conf.d/keymaps) и установки экранного шрифта (/etc/conf.d/consolefont).

/etc/conf.d/keymaps

$ nano /etc/conf.d/keymaps

keymap="-u ru"
windowkeys="YES"
dumpkeys_charset="utf8"
fix_euro="NO"

$ rc-update add keymaps boot

/etc/conf.d/consolefont

$ nano /etc/conf.d/consolefont

consolefont="ter-k14n"   # или "Cyr_a8x16"
# consoletranslation="koi8-r_to_uni"

$ rc-update add consolefont boot

Чтобы использовать ter-k14n:

$ echo "media-fonts/terminus-font pcf psf" >> /etc/portage/package.use  # здесь важен флаг psf
$ emerge -av media-fonts/terminus-font

Необязательно: установка некоторых Юникод-совместимых шрифтов:

$ emerge terminus-font intlfonts freefonts cronyx-fonts corefonts

Устанавливаем системную службу журналирования - syslog-ng:

$ emerge -av syslog-ng
$ rc-update add syslog-ng default

Планировщик заданий:

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

Создадим нового пользователя:

$ useradd -m -G users,wheel,audio -s /bin/bash john

Зададим пароль руту и пользователю:

$ passwd
$ passwd john

Приятная мелочь - автологин с помощью mingetty

$ emerge -av mingetty
$ nano /etc/inittab

Ищем строку:

c1:12345:respawn:/sbin/agetty --noclear 38400 tty1 linux

Меняем на:

c1:12345:respawn:/sbin/mingetty --autologin john tty1

Где john - имя пользователя для которого нужно настроить автологин.
.
.
.
Ставим xorg-server.

$ emerge -av xorg-server

Переключение раскладки клавиатуры можно настроить средствами DE, Gnome, KDE, Xfce имеют возможность настроить переключение собственными средствами, есть более универсальный способ, о котором писал тут: Gentoo, xorg, настройка клавиатуры, те за переключение отвечает сам xorg-server, для отображения на панели можно использовать любой из доступных апплетов, который будет "ловить" значение текущей раскладки и отображать, в Xfce например для этого есть xfce-extra/xfce4-xkb-plugin.
.
.
.
.
.
.
.
.
.
TODO:
networking
udev
dbus
xorg.conf .xinitrc xdm
.
.
====
В ПРОЦЕССЕ .... :)

Genkernel

Похожие материалы:
Аватар Lupo Alberto

$ tar xpjvf stage3-amd64-20120412.tar.bz2    # В текущий каталог

В конце команды должна быть точка, опцию j можно опустить — tar «умный», разберётся ;)

Аватар Lupo Alberto

Как оказалось, уже указывать необязательно. :(

Аватар zenon

> j можно опустить — tar «умный», разберётся ;)
Да, кстати, столкнулся с тем что иногда она бывает лишней, например если это tar.gz.

Аватар foxiys

Забыл grub2-install /dev/sda

Аватар Рафаэль

В tar xpjvf лучше добавить --numeric-owner, иначе могут быть проблемы при установке с других дистрибутивов. UID GID могут уехать.

Аватар zenon

Рафаэл, спс, как-то не задумывался про эту опцию, иной раз может быть полезна.

Аватар Сергей

zenon спасибо вам за статью. Особенно за настройку русского языка)

Аватар zenon

У меня уже полгода как лежит переписанный и дополненный вариант, всё никак руки не дойдут.

Аватар moon88

zenon написал:

У меня уже полгода как лежит переписанный и дополненный вариант, всё никак руки не дойдут.

спасибо, так может все таки выложите, может какие то изменения есть или новшедства, думаю многим поможет начать осваивать GENTOO.
Я пробовал с родной инструкции, но по началу тяжело, как то кажеться все не в том порядке и очень много всего...

Аватар zenon

moon88, немного не актуально сейчас для меня это, если есть желание дополняй и разместить можно тут.

Добавить комментарий