HOWTO Установка Gentoo Linux

Пример установки Gentoo 2008.0 из stage3 вручную, без использования инсталляторов.
Архитектура x86

1. Скачать и записать:
install-x86-minimal-2008.0.iso

2. Загрузка с LiveCD.

livecd root #

Настройка сети:

# net-setup eth0

У разлинчных провайдеров разные способы подключения к сети, подробнее об этих способах будет рассказано в (этой) статье.
Просмотр состояния интерфейса

# ifconfig 
livecd root # ifconfig 
eth0      Link encap:Ethernet  HWaddr 00:c0:26:ab:de:75  
          inet addr:172.17.182.20  Bcast:172.17.182.255  Mask:255.255.255.0
          inet6 addr: fe80::2c0:26ff:feab:de75/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:47177178 errors:0 dropped:0 overruns:0 frame:0
          TX packets:35590157 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2618728400 (2.4 GiB)  TX bytes:2414524165 (2.2 GiB)
          Interrupt:17 Base address:0xec00 

Тоже для WiFi

# iwconfig

Проверяем наличие прописанных DNS серверов, если их нет, то прописываем руками.

livecd root # vi /etc/resolv.conf
# Generated by dhclient for interface eth0
nameserver 194.187.204.254
nameserver 194.187.205.226

Проверяем:

livecd root # ping ya.ru
PING ya.ru (77.88.21.8) 56(84) bytes of data.
64 bytes from ya.ru (77.88.21.8): icmp_seq=1 ttl=58 time=2.99 ms
64 bytes from ya.ru (77.88.21.8): icmp_seq=2 ttl=58 time=3.07 ms

Отлично, интернет есть, идем дальше.

Запуск демона SSH для удалённой установки:

livecd root # /etc/init.d/sshd start

Задать пароль root:

livecd root # passwd

3. Разбиваем диск.

Кому то привычнее fdisk, но cfdisk по приятнее выглядит и удобнее.

# cfdisk
                      cfdisk (util-linux-ng 2.13.1)
                         Disk Drive: /dev/hda
                    Size: 41110142976 bytes, 41.1 GB
           Heads: 16   Sectors per Track: 63   Cylinders: 79656

 Name        Flags      Part Type  FS Type          [Label]        Size(MB)
---------------------------------------------------------------------------
 hda1                    Primary   Linux swap / Solaris            1028.16 
 hda2                    Primary   Linux ReiserFS                 38987.83

  [Bootable]  [ Delete ]  [  Help  ]  [Maximize]  [ Print  ]
  [  Quit  ]  [  Type  ]  [ Units  ]  [ Write  ]

              Toggle bootable flag of the current partition
                     

hda1: Под swap, 1-2Гб. Под swap не обязательно выделять отдельный раздел, можно использовать под него файл на жёстком диске (не пробовал).
hda2: Под root, 10-15Гб. Там же находится и Boot его не обязательно выделять в отдельный раздел.
Как вариант hda3: Остальное под /home. Под distfiles, packages и под хлам типа музыки, фильмов и прочего.

Создаем файл подкачки.

Форматируем:

# mkswap /dev/hda1

и активизируем:

# swapon /dev/hda1

Форматируем linux-разделы.
А так же все разделы которые были созданы в cfdisk

# mkreiserfs /dev/hda2

Монтирование разделов.
Теперь, когда разделы созданы, а файловые системы размещены, настало время смонтировать (подключить к системе) эти разделы. Смонтируем корневой раздел:

# mount /dev/hda2 /mnt/gentoo

4. Распаковка установочных файлов Gentoo.

Проверяем дату:

# date

Необходимо выставить время по UTC.
Корректируем:

# date MMDDhhmmYYYY

Перейдем на смонтированный жесткий диск, куда будем устанавливать систему:

# cd /mnt/gentoo

Скачаем stage3 и portage:

# links http://mirror.yandex.ru/gentoo-distfiles/

Распаковываем тарбол со stage3:

# tar -xvjpf /mnt/gentoo/stage3-x86-2008.0.tar.bz2

Распаковываем дерево портеджей:

# tar -xvjf /mnt/gentoo/portage-latest.tar.bz2 -C /mnt/gentoo/usr

5. Настройка параметров компиляции.

Для оптимизации Gentoo вы можете создать ряд переменных, которые повлияют на поведение Portage. Для хранения ваших настроек предназначен конфигурационный файл Portage - /etc/make.conf. Именно его мы сейчас будем редактировать.

# nano -w /mnt/gentoo/etc/make.conf

Содержимое файла:

CHOST="i686-pc-linux-gnu"
CFLAGS="-march=athlon-xp -pipe -O2"
MAKEOPTS="-j2"

В переменной CHOST определяется, для какой архитектуры скомпилирована система. В ней уже должно быть установлено правильное значение.
Не изменяйте эту переменную, т.к. это может повредить вашу систему. Если переменная CHOST, по-вашему, выглядит неправильно, возможно, вы используете не тот архив stage3.
- пользователям AMD64, желающим получить действительно 64-битную
систему, следует использовать -march=k8
- пользователи EM64T должны указать -march=nocona
С помощью MAKEOPTS определяется, сколько параллельных процессов компиляции можно запускать при установке пакета. Хороший (но не всегда идеальный) вариант — значение, равное количеству процессоров в системе плюс один.

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

LINGUAS="ru"

6. Установка базовой системы Gentoo.

Перед тем, как перейти в новую среду, осталось сделать одно дело:
Cкопировать информацию о DNS (системе доменных имен) в файл /etc/resolv.conf. Это нужно, чтобы при переходе сохранить работоспособность сети. В файле /etc/resolv.conf содержатся адреса серверов имен, используемых в вашей сети.
Копирование информации о DNS (параметр «-L» нужен, чтобы случайно не скопировать символьную ссылку):

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

Монтирование файловых систем /proc и /dev.

Смонтируйте файловую систему /proc в /mnt/gentoo/proc, чтобы после изменения корневого каталога устанавливаемая система смогла обращаться к информации, предоставляемой ядром, а затем создайте привязку монтирования файловой системы /dev.

Монтирование /proc и /dev:

# mount -t proc none /mnt/gentoo/proc
# mount -o bind /dev /mnt/gentoo/dev

Переход в новую среду:

# chroot /mnt/gentoo /bin/bash
# env-update && source /etc/profile
# export PS1="(chroot) $PS1"

(последняя строчка не обязательна, просто так удобнее, видно что находишься не на LiveCD)

Всё, вы оказались "внутри" вашего будущего Линукса. Команда chroot поменяла корневую вершину на /mnt/gentoo и она стала для вас /. Вы внутри Линукса на жестком диске. На LiveCD всегда можно переключиться к примеру в другой консоли (Alt+F2, Alt+F3 и т.д.).

Настройка Portage.

Обновляем дерево portage.

 # emerge --sync

На предложение обновить portage, делаем:

 # emerge portage

Обновить сисему в целом

# emerge -av system

Обновить проги и утилиты.

# emerge -av world

Обновляем, если необходимо, конфиги:

 # dispath-conf

(или)

 # etc-update

(dispatch-conf вроде бы лучше http://ru.gentoo-wiki.com/wiki/Dispatch-conf)
(всегда обновляем внимательно, смотрим что удаляет и что добавляет, и решаем, нужно нам это или нет)

Выбор нужного профиля. Есть как минимум два способа это сделать, руками и не совсем :-)
Способ №1 (руками)

Выяснение используемого профиля:

 # ls -FGg /etc/make.profile
lrwxrwxrwx 1 48 Apr 8 18:51 /etc/make.profile -> ../usr/portage/profiles/default/linux/x86/2008.0/ 

Выяснение всех существующих профилей:

 # ls –l /usr/portage/profiles/default/linux/x86/
drwxr-xr-x 4 portage portage 176 Фев 12 23:36 2008.0
drwxr-xr-x 4 portage portage 176 Апр 14 06:06 vserver

Для некоторых архитектур также предусмотрены подпрофили desktop и server. Если есть желание, можете выбрать desktop. USE-флагов по умолчанию прибавится. Некоторые предпочитают прописывать нужные флаги самостоятельно.
Переключаемся если это необходимо на нужный профайл :

 # ln -snf /usr/portage/profiles/default/linux/x86/2008.0/server /etc/make.profile

Способ №2 (не совсем руками)

Просмотр доступных профайлов:

 # eselect profile list 
 # Available profile symlink targets:
  [1]   default/linux/x86/2008.0 *
  [2]   default/linux/x86/2008.0/desktop
  [3]   default/linux/x86/2008.0/developer
  [4]   default/linux/x86/2008.0/server
  [5]   hardened/x86
  [6]   selinux/2007.0/x86
  [7]   selinux/2007.0/x86/hardened
  [8]   hardened/linux/x86

Выбор нужного:

 # eselect profile set 4 

Второй способ как мы понимаем удобнее и быстрее.

Далее ...
Настройка переменной USE.

Для начала поставим ufed:

 # emerge ufed 

Смотрим какие USE-флаги у нас уже прописаны: # emerge --info
Находим там строчку "USE=..." и смотрим флаги. Определённо нам не нужен ipv6. Запускаем # ufed, набираем "ipv6" и снимаем крестик (отключаем). Справа видно краткое описание флага. [Enter] - Y - сохранить изменения. В /etc/make.conf добавится переменная USE="-ipv6". Думаю, принцип понятен.
Не советую пока добавлять новые флаги.

Выбор зеркалов.

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

Предупреждение: Не выбирайте зекрала IPv6. Файлы стадий пока не поддерживают протокол IPv6.

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

7. Настройка ядра.
Наверное, самый продолжительный и ответственный пункт. От того, как вы настроите ядро, будет зависеть, загрузится ли ваша система вообще или нет. Советую делать очень внимательно и пошагово.

Установка временной зоны.

Устанавливаем свой часовой пояс:
Ищем свою зону:

 # ls /usr/share/zoneinfo/

Устанавливаем:

 # ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime 

Проверьте дату/время:

# date

Установка исходных кодов ядра.
С помощью команды emerge выберите и установите ядро. USE="-doc" требуется, чтобы на этом этапе избежать установки xorg-x11 или других связанных пакетов. USE="symlink" при новой установке не требуется, но обеспечивает правильное создание символьной ссылки /usr/src/linux:

 # USE=”-doc symlink” emerge gentoo-sources

Далее будем настраивать ядро, а для этого желательно знать какое железо стоит на машине. Смотрим во второй консоли (Alt+F2):

# lspci 

(входит в состав пакета pciutils)

# lsmod 

(отображает список модулей, которые загрузил LiveCD)

А в первой переходим к конфигу ядра:

# cd /usr/src/linux
# make menuconfig

Выбор экспериментальных кодов/драйверов, основные параметры

Code maturity level options --->
  [*] Prompt for development and/or incomplete code/drivers"

Выбор подходящего семейства процессоров
(измените в соответствии со своей системой)

(Athlon/Duron/K7) Processor family

Выбор необходимых файловых систем

File systems --->
  Pseudo Filesystems --->
    [*] /proc file system support
    [*] Virtual memory file system support (former shm fs)
<*> Reiserfs support

Включение DMA

Device Drivers --->
  ATA/ATAPI/MFM/RLL support --->
    [*] Generic PCI bus-master DMA support
    [*]   Use PCI DMA by default when available

Включение поддержки SMP

Processor type and features  --->
  [*] Symmetric multi-processing support

После настройки сохраняем изменения и выходим.

Компилируем ядро:

# make && make modules_install

Копируем его в /boot:

# cp arch/i386/boot/bzImage /boot/<имя>

8. Настройка параметров системы.

Параметры файловых систем.

Описываем свойства своей файловой системы в /etc/fstab:

# nano -w /etc/fstab

У меня получилось:

/dev/hda2         /               reiserfs noatime                 0 1
/dev/hda1         none            swap     sw                      0 0
/dev/hdc          /mnt/cdrom      iso9660  noauto,user,ro          0 0
#/dev/fd0         /mnt/floppy     auto     noauto,user             0 0
proc              /proc           proc     defaults                0 0
shm               /dev/shm        tmpfs    nodev,nosuid,noexec     0 0

Параметры сети.

Установка имени узла (машины):

# nano /etc/conf.d/hostname
HOSTNAME="gentoo"

Примеры настроек сети:

# nano /etc/conf.d/net
config_eth0=( "192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.255" )
routes_eth0=( "default via 192.168.1.1" )
dns_servers_eth0="192.168.1.1"
dns_domain_lo="WORKGROUP" # рабочая группа
(если не указывать эти настройки, параметры сети будут запрошены у DHCP)

Добавление net.eth0 в уровень запуска default (автозагрузка):

# rc-update add net.eth0 default

Указание сведений об узлах сети:

# nano /etc/hosts
127.0.0.1 gentoo.WORKGROUP gentoo localhost

9. Установка нужных системных средств.

Диспетчер устройств

# emerge udev

Установка демона cron

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

Установка slocate (индексация файлов)

# emerge slocate

Установка pciutils (системные утилиты)

# emerge pciutils
# emerge gentoolkit

Установка dhcpcd (в последних сборках stage3 не требуется)

# emerge dhcpcd

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

# emerge metalog
# rc-update add metalog default

Утилиты для обслуживания файловых систем:

# emerge reiserfsprogs

А также.

# rc-update add gpm default

10. Настройка начального загрузчика.

Установка GRUB:

# emerge grub

Создание /boot/grub/grub.conf:

# nano /boot/grub/grub.conf
default 0
timeout 10
splashimage=(hd0,1)/boot/grub/splash.xpm.gz

title=Gentoo
root (hd0,1)
kernel /boot/bzImage root=/dev/hda2 udev

Добавить если есть Windows:

title=Windows XP
rootnoverify (hd0,5)
makeactive
chainloader +1

Запускаем grub:

# grub
grub> root (hd0,1) //раздел с /boot
grub> setup (hd0)
grub> quit

Где: hd0,0 - раздел /boot (/dev/hda1), первый 0 - номер винта (hda=0, hdb=1 и т.д.), второй 0 - номер раздела (hda1 = 0, hda2 = 1 и т.д.
setup hd0 - установка в MBR первого винта в системе.

!!! Важно !!!
Не забыть установить пароль ROOT, иначе после перезагрузке мы не сможем зайти в систему:

 # passwd

Размонтирование всех разделов и перезагрузка.

# exit
# cd
# umount   /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo
# reboot

11. Послесловие.
Если система загрузилась - поздравляю! Значит вы удачно сконфигурировали ядро, по-крайней мере для загрузки ^_^
Проверьте дату/время:

# date

Возможные проблемы:
Err: Ошибка сразу после заставки grub
Неверно сконфигурирован grub, неверно указан раздел /boot. Можно поправить прямо в меню выбора системы, кнопки e - edit, b - boot.

Err: Ошибка при монтировании root:

Kernel panic... Unable to mount root fs on unknown-block(0,0)

Если винт IDE - в ядре не включена его поддержка

Device Drivers --->
  <*> ATA/ATAPI/MFM/RLL support --->
    <*> Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support --->
       <*> Include IDE/ATA-2 DISK support

там же, ниже:

 [ * ] PCI IDE chipset support
    <*> Intel PIIXn chipsets support (поддержка моего чипсета, выберите СВОЙ)

Обязательно включать поддержку в ядро, а не модулями.

Загружаемся с LiveCD и переходим в свою систему на жестком диске.

# mount /dev/hda1 /mnt/gentoo/
# mount -t proc none /mnt/gentoo/proc
# mount -o bind /dev /mnt/gentoo/dev
# chroot /mnt/gentoo /bin/bash
# env-update && source /etc/profile

Правим ядро:

# cd /usr/src/linux
# make menuconfig
# make && make modules_install
# cp arch/i386/boot/bzImage /boot/<имя>
# exit

Не забываем сделать изменения в загрузчике.

# nano –w /boot/grub/grub.conf
# exit
# umount   /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo
# reboot

Если все удачно, можно переходить к красивостям, локализации и т.д. …
Статьи:
http://www.liveinternet.ru/users/linux/post29342097/
http://www.nulled.ws/showthread.php?p=229723
http://www.gentoo.org/doc/ru/handbook/handbook-x86.xml