Установка Gentoo Linux

20. 07. 2013

Установка Gentoo Linux. Почему люди выбирают Gentoo? Как минимум потому, что Gentoo — самый быстрый из пингвинов. Хотя, как и везде, есть свои недостатки. Дженту (она же гента) относится к source-based linux distributions, за счет чего повышается скорость работы, но приходится тратить время на компиляцию пакетов. В этой статье, расскажу и покажу, как установить Gentoo Linux.

Начнем установку Gentoo Linux

После загрузки диска, появится окно:

Установка Gentoo Linux

Жмем enter, после чего начнется загрузка LiveCD.

Установка Gentoo Linux

Предлагают выбрать раскладку, пока оставим как есть, жмем enter.

Установка Gentoo Linux

После загрузки LiveCD Gentoo Linux

(Если, после ввода команды, ничего не выводиться на экран, то это означает, что команда прошла успешно).

Приготовьтесь, установка Gentoo Linux, довольно-таки долгий процесс. Нужно проверить подключение к интернету. Во время загрузки гента попыталась подключить по dhcpcd.

livecd ~# ping -c3 google.com

Если у вас статический адрес, тогда нужно его прописать, с помощью команды ifconfig, а DNS прописать в /etc/resolv.conf. Настройка сети это уже отдельная тема.

Далее, нам нужно разбить диск. Для этого я предпочитаю использовать утилиту fdisk. Как пользоваться утилитой fdisk в Linux, также есть псевдографическая утилита cfdisk. О том, как же лучше разбить диск и о файловой системе Linux, я писал в предыдущем посте - разбить диск для Linux.

Предположим, что мы разбили диск на 4 раздела: /boot, swap, /usr, /home. Теперь нам нужно отформатировать наши разделы. При помощи команды mkfs, мы форматируем раздел, в указанную после точки файловою систему. Атрибут -L задает лейбл(метку), нашему разделу. Для загрузочного раздела boot, журналируемая файловая система ненужна, поэтому используем ext2, а для всех остальных ext4.

livecd ~# mkfs.ext2 -L boot /dev/sda1
livecd ~# mkfs.ext4 -L root /dev/sda3
livecd ~# mkfs.ext4 -L home /dev/sda4

И при помощи команды mkswap, форматируем раздел подкачки (swap).

livecd ~# mkswap -L swap /dev/sda2

Сразу же, командой swapon, подключаем раздел подкачки.

livecd ~# swapon /dev/sda2

Далее, нам нужно смонтировать остальные раздел, командой mount, первым монтируем раздел root, в паку /mnt/gentoo.

livecd ~# mount /dev/sda3 /mnt/gentoo

В паке /mnt/gentoo, нам нужно создать одноименные папки под разделы {boot и home}.

livecd ~# mkdir /mnt/gentoo/{boot,home}

В эти папки монтируем boot и home.

livecd ~# mount /dev/sda1 /mnt/gentoo/boot
livecd ~# mount /dev/sda4 /mnt/gentoo/home

Если, захотите создать, отдельно разделы /tmp /var, им нужно дать права chmod 1777.

livecd ~# chmod 1777 /mnt/gentoo/tmp

Переходим в каталог /mnt/gentoo.

livecd ~# cd /mnt/gentoo

Сюда, нам нужно скачать файлы. Для удобства, воспользуемся консольным браузером links. Открываем браузер и выбираем mirrors (стрелкой вниз).

livecd gentoo # links http://www.gentoo.org/main/en/mirrors.xml

gentoo3

Выбираем подходящие зеркало (стрелка вниз).

gentoo4

Далее, выбираем «releses».

gentoo5

Тут, выбираем нужную архитектуру, в нашем случае  "x86/".

gentoo6

Выбираем «current-stage3/»

gentoo7

Здесь, выбираем «stage3-i686-20130528.tar.bz2».

gentoo8

И для того, чтобы скачать, нажимаем «d», после загрузки, чтобы выйти из браузера links, нажимаем букву «q».

livecd gentoo # ls
boot home lost+found stage3-i686-20130528.tar.bz2

Распаковываем.

livecd gentoo # tar xvjpf stage3-*.tar.bz2

После распаковки, можно отредактировать файл make.conf. Указав соответствующие параметры оптимизации. (Для новичков рекомендую оставить как есть)

livecd gentoo # nano /mnt/gentoo/etc/portage/make.conf

Далее, выбираем зеркало для установки. (стрелкой вниз и нужное нам зеркала выбираем пробелом, жмем «enter»)

livecd gentoo # mirrorselect -i -o >>/mnt/gentoo/etc/portage/make.conf

gentoo9

После чего, можно проверить «make.conf». Если все хорошо, нужно скопировать информацию о DNS. DNS адреса хранятся в файле «/etc/resolv.conf».

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

Смонтируем файловую систему /proc в /mnt/gentoo/proc.

livecd gentoo # mount -t proc none /mnt/gentoo/proc

Затем, создаем привязку монтирования файловых систем /dev и /sys.

livecd gentoo # mount --rbind /sys /mnt/gentoo/sys
livecd gentoo # mount --rbind /dev /mnt/gentoo/dev

Переходим в новую среду Gentoo Linux (Установка Gentoo Linux)

С помощью chroot, изменяем корневой каталог с «/» на «/mnt/gentoo».

livecd gentoo # chroot /mnt/gentoo /bin/bash

Перезагрузим некоторые настройки /etc/profile в память, с помощью source.

livecd / # source /etc/profile

И напоследок, чтобы не забыть где мы находимся.

livecd / # export PS1="(chroot) $PS1"
(chroot) livecd / #

Устанавливаем (распаковываем) снимок дерева Portage.

(chroot) livecd / # mkdir /usr/portage
(chroot) livecd / # emerge-webrsync

Внимание!

Если у вас, после команды:
(chroot) livecd / # emerge-webrsync
возникнет следующая ошибка...
!!!Section 'gentoo' in repos.conf refers to repository without repository name set in '/usr/portage/profile/repo_name' emerge-webrsync: error: Repository 'gentoo' not found
Нужно просто ввести следующие команды:
mkdir -p /usr/portage/profiles
echo «gentoo» > /usr/portage/profiles/repo_name
И повторить:
(chroot) livecd / # emerge-webrsync

Обновляем Portage.

(chroot) livecd / # emerge --sync

Посмотрим какие профили доступны в системе.

(chroot) livecd / # eselect profile list
Available profile symlink targets:
[1] default/linux/x86/13.0 *
[2] default/linux/x86/13.0/selinux
[3] default/linux/x86/13.0/desktop
[4] default/linux/x86/13.0/desktop/gnome
[5] default/linux/x86/13.0/desktop/kde
[6] default/linux/x86/13.0/developer
[7] hardened/linux/x86
[8] hardened/linux/x86/selinux
[9] hardened/linux/uclibc/x86

Выбираем нужный нам вариант, лично я планирую установить KDE, поэтому выбираю номер 5.

(chroot) livecd / # eselect profile set 5

Далее, нам нужно отредактировать «make.conf», а именно настроить переменную «USE». Для начала можно просмотреть весь список USE-флагов.

(chroot) livecd / # less /usr/portage/profiles/use.desc

(прокрутка стрелками, выход клавиша «q»)

В переменной «USE», указываются значения, которые влияют на параметры компиляции. Например, параметр «qt4», включает компиляцию с поддержкой «qt4», для всех программ, которые могут поддерживать «qt4». А минус перед параметром, например, «-gtk» отключает поддержку «gtk».

Предположим, мы будем устанавливать KDE, тогда открываем make.conf.

(chroot) livecd / # nano /etc/portage/make.conf

И дописываем следующие флаги.

USE="-gtk -gnome qt4 kde dvd alsa cdr unicode"

Настроим часовой пояс, сначала посмотрим варианты.

(chroot) livecd / # ls /usr/share/zoneinfo

Предположим, что мы в Москве.

(chroot) livecd / # cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime

Устанавливаем часовой пояс.

(chroot) livecd / # echo "Europe/Moscow" > /etc/timezone

Отредактируем «locale».

(chroot) livecd / # nano /etc/locale.gen

Добавим в файл «locale.gen» русский.

ru_RU.UTF-8 UTF-8
en_US.UTF-8 UTF-8

Генерируем locale.

(chroot) livecd / # locale-gen

Установка ядра Gentoo Linux. (Установка Gentoo Linux)

Покажу простой пример, будем ставить genkernel. Если кому-то, что-то не устроит, то в любой момент можно собрать собственное ядро.

С помощью команды «emerge» устанавливаем исходные коды Gentoo Linux.

(chroot) livecd / # emerge gentoo-sources

Собираем и устанавливаем ядро genkernel. Это длительный процесс.

(chroot) livecd / # emerge genkernel
(chroot) livecd / # genkernel all

Теперь ставим необходимые программы. Описывать я их не буду, кому интересно можно нагуглить (Установка Gentoo Linux — длительный процесс).

(chroot) livecd / # emerge udev syslog-ng grub dhcpcd vixie-cron

Уточняем название созданного образа ядра и  initrd. Позже, во время настройки Grub, эта информация пригодится.

(chroot) livecd /# ls /boot/kernel* /boot/initramfs*

Устанавливаем в автозагрузку демоны «udev», который мы собрали.

(chroot) livecd /# rc-update add udev boot

Редактируем «fstab». fstab - конфигурационный фал, указываются точки подключения разделов, порядок подключения,  хранить информацию о разделах дисков и файловых систем.

(chroot) livecd /# nano /etc/fstab

В моем случае он выглядит так:

Установка Gentoo Linux

Далее, настроим интернет.

(chroot) livecd /# nano /etc/conf.d/net

Для автоматического получения ip (dhcp), добавим такую строчку:

config_eth0="dhcp"

А для статического ip, прописываем следующие (указав свои данные):

config_eth0="192.168.0.2 netmask 255.255.255.0 brd 192.168.0.255"
routes_eth0="default via 192.168.0.1"

eth0 — это имя сетевой карты, у вас может быть другим, чтобы посмотреть доступные сетевые интерфейсы, наберите команду: ifconfig.

Чтобы сетевые интерфейсы запускались при загрузке, нужно сделать следующие:

(chroot) livecd /# cd /etc/init.d
(chroot) livecd init.d # ln -s net.lo net.eth0
(chroot) livecd init.d # rc-update add net.eth0 default
(chroot) livecd init.d # cd /

Если у вас есть PCMCIA, тогда нужно установить пакет «pcmciautils».

(chroot) livecd /# emerge pcmciautils

Для использования PPPoE нужно установить «ppp».

(chroot) livecd /# emerge ppp

Самое главное, установим пароль супер пользователя «root», набрав:

(chroot) livecd /# passwd

При вводе пароля «root», пароль не отображается.

Дальше, установим раскладку клавиатуры.

(chroot) livecd /# nano /etc/conf.d/keymaps

Найдем строчку:

keymap="us"

и заменим на:

keymap="-u ru"

Настроим параметр часов. Введем значение clock="local"

(chroot) livecd /# nano /etc/conf.d/hwclock

Также можно настроить /etc/rc.conf, но я оставлю как есть.

Добавляем в автозагрузку журналирование и крон.

(chroot) livecd /# rc-update add syslog-ng default
(chroot) livecd /# rc-update add vixie-cron default

Установка Gentoo Linux на этом не закончена, теперь самое главное.

Настройка загрузчика GRUB. (Установка Gentoo Linux)

В файле «grub.conf» основном нужно подправить версию ядра. Версию ядра, мы с вами, смотрели командой: «ls /boot/kernel* /boot/initramfs*».

(chroot) livecd /# nano /boot/grub/grub.conf
# Загрузка пункта по умолчанию.
default 0
# сколько ждать до начала загрузки, в секундах.
timeout 10
# симпатичная заставка Grub.
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
#
title Gentoo Linux 3.8.13
# раздел с файлом ядра.
root (hd0,0)
kernel /boot/genkernel-x86-3.8.13-gentoo root=/dev/ran0 real_root=/dev/sda3 udev vga=0x318
#udev — менеджер устройств для новых версий ядра Linux
# vga=0x318 - это разрешение экрана 1024х768
initrd /boot/initramfs-genkernel-x86-3.8.13-gentoo
#
#Если у вас установлен Windows #Например, Windows находится на /dev/sda8 title Windows XP rootnoverify (hd0,7) makeactive chainloader +1

Установим загрузчик GRUB.

(chroot) livecd /# grep -v rootfs /proc/mounts > /etc/mtab
(chroot) livecd /# grub2-install /dev/sda

Генерируем файл grub.cfg

(chroot) livecd /# grub2-mkconfig -o /boot/grub/grub.cfg

Удалим архив, скаченный в начале установки.

(chroot) livecd /# rm /stage3-*.tar.bz2*

Установка Gentoo Linux закончена. Выходим из среды «chroot», перезагружаемся (не забывая вытащить диск).

(chroot) livecd /# exit
(chroot) livecd /# reboot

После перезагрузки, войдем в систему под суперпользователем root. Пароль для пользователя root, мы ввели вовремя установки, командой «passwd»

Login: root
Password: (ваш пароль root)

Теперь, нужно добавить нового пользователя (username — имя нового пользователя).

localhost ~# useradd -m -G users,wheel,audio -s /bin/bash username

Введем пароль для нового пользователя.

localhost ~# passwd username
Password: (введите пароль для username) 
Re-enter password: (повторить пароль)

О том, как русифицировать Gentoo Linux, в следующем посте.

Надеюсь статья — «Установка Gentoo Linux», была полезна.

  • Максим

    Интересно какой профиль выбрать? Если я хочу установить Gentoo на ноутбук, с минимальным рабочим окружением типа openbox?

    • root

      На мой взгляд №3, хот и wm openbox, но все же desktop

      [3] default/linux/x86/13.0/desktop

  • ffoxin

    > (chroot) livecd /# /etc/conf.d/net

    пропущено 'nano'?

    > kernel /boot/genkernel-x86-3.8.13-gentoo

    похоже, пропущен префикс 'kernel-'

    > (chroot) livecd /# grub-install /dev/sda

    пишет

    bash: grub-install: command not found.

    (соотвественно, файла grub.conf тоже не было)

    Еще заметил, что сейчас немного другой список профилей.

  • root

    > (chroot) livecd /# /etc/conf.d/net

    пропущено 'nano'?

    Да, подправил.

    > kernel /boot/genkernel-x86-3.8.13-gentoo

    похоже, пропущен префикс 'kernel-'

    Не уверен, писал статью параллельно устанавливая Gentoo на virtualbox, все работало. На данный момент статья немного утрясала.

    grub2-install /dev/sda — это команда для установки grub2 в раздел /boot/grub (grub2 уже должен работать), после чего, командой grub2-mkconfig, рекомендуется сгенерировать файл конфигурации grub.cfg.

    Поскольку статья устарела на днях попробую обновить.

    P.S. Извиняюсь за комментарии, возникли технические трудности.

    • ffoxin

      > Не уверен, писал статью параллельно устанавливая Gentoo на virtualbox, все работало. На данный момент статья немного утрясала.

      по крайней мере на последней версии вот так (тоже vbox) www.dropbox.com/s/gkpmxqh...7.35.09_crop.png

      > grub2-install /dev/sda

      вот с «2» заработало, спасибо) в статье «grub-install» вместо «grub2-install»

      • root

        Пожалуйста, подправил.

  • Михаил Козыркин

    livecd gentoo # nano /mnt/gentoo/portage/make.conf

    Должно быть

    livecd gentoo # nano /mnt/gentoo/etc/portage/make.conf

    • root

      Статья немного устаревшая.

      Спасибо, подправил.

  • gyok

    При попытке выполнить

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

    Пишет cp: cannot create regular file 'mnt/gentoo/etc' : No such file or directory

    Спасайте , что я сделал не так?

    • gyok

      А , все , я решил ,забыл написать слешперед мнт, извиняюсь

  • gmax007

    Стоило бы еще в статью написать о bootlogd, создании файла лога и установки соответсnвующей переменной в конфиг. Чтобы можно было смотреть лог загрузки генты

  • oshibka

    (chroot) livecd / # genkernel all

    команда не найдена пишется (

    • ошибко нет

      Маски снять надо было ...

    • ааа

      Установить с помощью «emege genkernel» (без кавычек) в первую очередь надо было

  • chroot

    illegal instruction

  • Olegko31

    А если нету файла

    /boot/grub/grub.conf что делать?

    Нету папки grub внутри /boot

    Обидно застрять в конце установки...

    • maximzhuk

      Попробуй сначала установить grub2, что является следующим пунктом, а потом уже конфигурировать. Столкнулся с тем же.

      Помимо этого, у меня при вводе ls /boot/kernel* /boot/initramfs*

      выдает: no such file or directory

      никак не решить трабл