01.05.2010 Установка Gentoo (x86 UTF-8 RUS)

0.250 Предисловие:

Про GENTOO мне рассказал мой друг одминко - Allatar, за что я ему очень благодарен. Первый раз помог установить и сказал читать Handbook, дабы чувствовать себя более уверенно и не задавать в последующем лишних вопросов. Позже мной было обнаружено более краткое руководство, которое, конечно, не может заменить Handbook, но помогает не забыть в процессе установки какую-нибудь мелочь (типа смены пароля root или записи загрузчика ;) ). Позже все это запоминается и укладывается в голове, но опять таки, когда сутра приходишь на работу немного не "выспавшимся", иногда теряется. Для этого и был написан этот гайд, который всегда валялся где-то в дальнем краю ящика, но согревал душу, когда был нужен.

0.5 Имею:

Телего с архитектурой x86(писюк) ну или не совсем писюк (как у меня), на такие процессоры как у меня лучше ставить x64)), с 512 мб мозгофф(памяти), и каким-то жестким (или не очень) диском.

0.7 Надо:

Установить Gentoo 2008.0 из stage3 вручную, без использования костылей( и различных install.bat ;) ) x86, kernel 2.6, locale ru_RU.UTF-8.

1. Качаю, записываю или уже имею следующее:

1) Репозиторий Генту2) Install CD
3) Stage3-x86-2008.0.tar.bz2
4) Комплект новых портов(portage latest)

2. Загрузка с Mini Install CD.

Вставляем в Сидюк Install CD, делаем соответствующие настройки в BIOS, звгружаемся, видим следующее приглашение:

boot: gentoo-nofb


Текстовая консоль без поддержки FrameBuffer, т.к. есть LCD-мониторы, которые скрючиваются от количества герц. ;)
..........


livecd root # 


Настраиваем сеть Gentoo Way:

livecd root # nano /etc/conf.d/net


Должно получиться примерно следующее
# This blank configuration will automatically use DHCP for any net.*
# scripts in /etc/init.d.  To create a more complete configuration,
# please review /etc/conf.d/net.example and save your configuration
# in /etc/conf.d/net (this file :]!).
#Local ETH
dns_domain_eth0="Домен по умолчанию на 1ой сетевухе"
config_eth0=("10.0.2.2/24")
routes_eth0=("10.0.0.0/8 via 10.0.2.3")
dns_servers_eth0="10.0.2.1"
#Ext ETH
dns_domain_eth1="Домен по умолчанию на 2ой сетевухе"
config_eth1=("IP/MASK")
routes_eth1=("default via GW")
dns_servers_eth1=""
dns_domain_lo="WORKGROUP"


livecd root # /etc/init.d/net.eth0 restart && /etc/init.d/net.eth1 restart


Прописываем DNS:

livecd root #  nano /etc/resolve.conf


Вот как-то так:
nameserver 10.0.2.1
nameserver x.x.x.x
nameserver y.y.y.y
#...

Если одним из интерфейсов воткнуты в роутер c тырнэтом или имеем реальник можем потестить:

livecd root # ping gnu.su 


Все работает?
PING gnu.su (62.84.105.179) 56(84) bytes of data.
64 bytes from andreika.home (62.84.105.179): icmp_seq=1 ttl=64 time=0.021 ms
64 bytes from andreika.home (62.84.105.179): icmp_seq=2 ttl=64 time=0.022 ms
64 bytes from andreika.home (62.84.105.179): icmp_seq=3 ttl=64 time=0.021 ms
64 bytes from andreika.home (62.84.105.179): icmp_seq=4 ttl=64 time=0.020 ms


Некоторые любят пошаманить над жесткими дисками:

Включение DMA (если не включилось автоматически):

livecd root #  hdparm -d1 /dev/sda


Запускаем SSHD, топаем за свою телегу, присоединяемся например через Putty, Konsole, Xterm(на выбор):

livecd # /etc/init.d/sshd start 


Устроились поудобнее? - Продолжаем!

3. Пилим диск

livecd root # cfdisk /dev/sda


В зависимости от объема диска делаем примерно следующее: - 200mb (Я люблю оставить с запасиком 500мб :) ) под "/" - (полный объем диска - 2*Объем оперативки - "boot")
Не люблю дробить свободное место под нужное и ненужное, потому что иногда на одном из разделов место заканчивается и начинается головоломка - что же такое удалить), поэтому делаем одним куском, а там разберемся...
Еще один момент в пользу разбиения - раньше было модно монтировать корень в Read-only, ... бред имхо... под "swap" - остатки (Рекомендуют объем от 1,5 до 2х объёмов опертивки)

Помечаем "/boot" флагом boot

Имя   Флаги         Тип раздела     Тип ФС         Размер (МБ)
sda1 boot             Основной         Linux             501.75
sda2                      Основной         Linux             497999.58
sda3                      Основной         LinuxSwap      1603.93


Форматируем разделы делаем SWAP, монтруем SWAP:

livecd root # mkswap /dev/sda3 && swapon /dev/sda3 && mkfs.ext2 /dev/sda1 && mkfs.ext3 /dev/sda2


Существует мнение, ext4 и RaiserFS предпочтитеьнее использовать т.к. быстрее..., но тогда надо лезть в настроку ядра для включения этих модулей, я ленивый - мне проще с ext3, поддержка которой есть по умолчанию ;)

Подцепляем остальные разделы:

livecd root # mount /dev/sda2 /mnt/gentoo && mkdir /mnt/gentoo/boot && mount /dev/sda1 /mnt/gentoo/boot


4. Установка времени и даты:

Очень важный пункт!!

date MMDDhhmmYYYY
livecd root # date 042715042010


5. Установка файлов Gentoo Stage3 и Portage:

livecd root #  cd /mnt/gentoo && wget ftp://linux4u.jinr.ru/pub/gentoo/releases/x86/2008.0/stages/stage3-x86-2008.0.tar.bz2 && tar xjpf stage3* && cd /mnt/gentto/usr && wget ftp://linux4u.jinr.ru/pub/gentoo/snapshots/portage-latest.tar.bz2 && tar xjf portage-lat*


Можно сходить налить чаю и стереть пот со лба...

6. Поковыряем /mnt/gentoo/etc/make.conf

livecd root # cat /proc/cpuinfo


В зависимости от имеющегося процессора необходимо выставить правильные параметры для компилятора CFLAGS. (Читаем Wiki)
Моего "старенького" процессора к сожалению не оказалось в списке, написал флаги от похожего процессора...
MAKEOPTS - параметр задающий компилятору сколько одновременных процессов компиляции запускать(Рекомендуемое значение "количество ядер в процессоре +1") В моем случае:
MAKEOPTS="-j5"


Исключением могут быть старые процессоры, там ничего добавлять не нужно.
Тут же сразу добавил:
LINGUAS="ru"


Чтобы пакеты ставились с русскоязычным интерфейсом, если он есть.
Так же добавил параметр задающий ближайшее зеркало, чтобы не тащить пакеты с тормозных зеркал
GENTOO_MIRRORS="ftp://linux4u.jinr.ru/pub/gentoo"


Для любителей использовать нестабильное ПО (ещё находящиеся в стадии тестирования), могут сразу же прописать:
ACCEPT_KEYWORDS="~x86"


Для х64 процессоров
#ACCEPT_KEYWORDS="~amd64"


p.s.: ВКЛЮЧАТЬ ТОЛЬКО ЕСЛИ ПОНИМАЕТЕ, ЧТО ДЕЛАЕТЕ!!!

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


CHOST="i686-pc-linux-gnu"
CFLAGS="-march=core2 -msse4 -mcx16 -msahf -O2 -pipe"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j5"
LINGUAS="ru en"
GENTOO_MIRRORS="ftp://linux4u.jinr.ru/pub/gentoo"


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

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

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

Монтирование /proc и /dev:
livecd root #  mount -t proc proc /mnt/gentoo/proc && mount -o bind /dev /mnt/gentoo/dev 


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

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


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

Внимание!!! При наборе команды "exit" вы попадете обратно в операционную систему с cdrom диска.

Настройка Portage

Если есть интернет:

livecd root # emerge-webrsync
livecd root # emerge --metadata


На предложение обновить portage, делаем (Читаем статью про циклические зависимости):

# emerge portage

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

livecd root # etc-update


Далее в зависимости от того что хотим сделать с конфигом "-3" - заменить новым файлом, -7 - удалить новый файл оставив старый без изменений. Всегда обновляем внимательно, смотрим что удаляет и что добавляет, и решаем, нужно нам это или нет.

Выбор нужного профиля

Выяснение используемого профиля:
livecd root # eselect profile list

Available profile symlink targets:
[1]   default/linux/x86/10.0
[2]   default/linux/x86/10.0/desktop
[3]   default/linux/x86/10.0/developer
[4]   default/linux/x86/10.0/server *
[5]   hardened/linux/x86/10.0
[6]   selinux/2007.0/x86
[7]   selinux/2007.0/x86/hardened
[8]   selinux/v2refpolicy/x86
[9]   selinux/v2refpolicy/x86/desktop
[10]  selinux/v2refpolicy/x86/developer
[11]  selinux/v2refpolicy/x86/hardened
[12]  selinux/v2refpolicy/x86/server


Команда "eselect" входит в состав пакета "gentoolkit", очень полезный пакет, стоит сразу же его поставить.

livecd root # emerge -av gentoolkit

Переключение между профилями помогает вам избавить себя от частичного беспокойства о USE-флагах, но проверять USE-флаги все равно стоит каждый раз перед установкой какой-либо программы.

Пример

livecd root # emerge -pv mc

These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild U] app-misc/mc-4.7.0.1 [4.6.2_pre1] USE="edit%* gpm nls samba slang%* -X (-unicode%*)" 2,766 kB 


Так вот вернемся к нашим профилям, и выберем необходимый командой:

livecd root # eselect profile set 4
Устанавливаем 4й профиль [default/linux/x86/10.0/server].
Для некоторых архитектур также предусмотрены подпрофили desktop и server. Если есть желание, можете выбрать desktop. USE-флагов по умолчанию прибавится. Я предпочитаю прописывать нужные флаги самостоятельно.

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

Опять таки, некоторые любят использовать различные программки типа eix, ufed, я же предпочитаю устанавливать USE-флаги самостоятельно прописав их в файле "/etc/make.conf". Сначала смотрю, что необходимо системе, потом устанавливаю, как показано в прошлом примере.
Вот строки из моего
make.conf

USE="banlists dbl errorwww snmp sasl usb consolekit openntpd utf8 sse sse2 tcpd pam perl python nptl nptlonly radius caps ncurses logrotate ssl crypt dhcp jpeg png java dbus php winbind samba mysql apache -ipv6 unicode slang berkdb bzip iconv mysql ncurses nls pcre ssl unicode zlib apache2 calendar cgi ctype dbase exif firebird ftp gd json kerberos ldap-sasl odbc pic sockets spell threads truetype xml xmlreader zip"


Что означает конкретный USE-флаг понятно интуитивно, в зависимости от установленных флагов меняются зависимости пакета, т.е. Установив USE="slang" вместе с пакетом, который его использует установится библиотека "Slang". Соответственно указав USE="-slang" все последующие программы будут устанавливаться без поддержки библиотеки "slang".
Смотрим какие USE-флаги у нас уже прописаны:
livecd root # emerge --info
Будут показаны все флаги, включая те, что прописаны в профиле. Для тех, кто любит GUI (графические оболочки) может воспользоваться программкой UFED:

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

livecd root # emerge -av ufed


Запустим ufed

livecd root # ufed


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

Региональные параметры GLIBC, локализация(переводим консоль на русский язык):

Скорее всего, вы будете использовать в системе один-два набора региональных параметров. Нужные регионы можно указать в"/etc/locale.gen":

livecd root # nano /etc/locale.gen
ru_RU.UTF-8 UTF-8
#en_US ISO-8859-1
#en_US.UTF-8 UTF-8
#ru_RU.KOI8-R KOI8-R


Если есть желание, можно добавить и другие локали.
Запустить генерилку локалей "locale-gen". Начнется генерация региональных настроек, указанных в файле /etc/locale.gen:
livecd root # locale-gen


8. Скачиваем ядро, конфигурируем ядро.

Самый сложный, утомительный и ответственный этап установки, от того, как сконфигурено ядро, на 90% зависит успех всех наших плясок с бубном. В ядре указывается какое мы используем оборудование, файловые системы, настройки криптографии, тип процессора и многое другое. Поэтому, т.к. мы еще не сильно в этом шарим, предоставим выбор нужного оборудования системе. Поставим специальную утилитку "genkernel". Позже подробнее рассмотрим настройку ядра вручную, при помощи команды "make menuconfig".

Кратко выглядит так:

---cut---Установка исходников gentoo-ядра:

livecd root #  emerge gentoo-sources


Далее настроим ядро, а какое железо стоит на машине смотрим во второй консоли (Alt+F2):

livecd root # lspci


(входит в состав пакета pciutils - установим)

livecd root # lsmod


(отображает список модулей, которые загрузил LiveCD - запишем, включим необходимые в ядре)
А в первой консольке(в той, которой делали "chroot") переходим к конфигу ядра:

livecd root # cd /usr/src/linux
livecd root # make menuconfig


Двойное нажатие , на вопрос отвечаем положительно.
Запускаем процесс компиляции ядра:

livecd root # make && make modules_install 
Копируем ядро в "/boot" раздел:
livecd root # cp arch/i386/boot/bzImage /boot


---cut---
livecd root # emerge -av gentoo-sources genkernel
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild  NS ] sys-kernel/gentoo-sources-2.6.32-r3 [2.6.28-r5] USE="-build -symlink" 63,111 kB
[ebuild  N    ] sys-kernel/genkernel-3.4.10.907 USE="-bash-completion -ibm) (-selinux)" 7,592 kB


Набор зависимостей у Вас может быть свой, в зависимости от уже установленных пакетов. После установки пакетов, отдадим ядро системе для настройки и компиляции.

livecd root # genkernel all


Процедура требует достаточного количества времени, так что можно оправиться и закурить ;).

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

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

livecd root # ls /usr/share/zoneinfo/
livecd root # cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime


Проверим дату/время, при необходимости поправим(см. выше):

livecd root # date


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

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

Описываем свойства своей файловой системы в "/etc/fstab":
livecd root # nano -w /etc/fstab


У меня вот:

/dev/sda1       /boot           ext2        noauto,noatime      1 2
/dev/sda2   /                 ext3        noatime                 0 1
/dev/sda3    none      swap       sw                          0 0
/dev/cdrom     /mnt/cdrom  iso9660  noauto,user,ro          0 0
#/dev/fd0       /mnt/floppy  auto       noauto,user             0 0
shm             /dev/shm        tmpfs    nodev,nosuid,noexec     0 0


Настроим сеть на новой системе:
(см. выше)
Добавление net.eth0 в уровень запуска default (автозагрузка):
livecd root # rc-update add net.eth0 default


Обзываем телегу:
livecd root # nano /etc/conf.d/hostname
HOSTNAME="andreika"


Указание сведений об узлах сети:
livecd root # nano /etc/hosts
127.0.0.1 andreika.WORKGROUP andreika localhost


Сменим пароль рута:
livecd root # passwd


Рекомендую поставить красивенький фонт для консоли:
livecd root # emerge terminus-font
livecd root # nano /etc/conf.d/clock
CLOCK="local" (Default UTC)
TIMEZONE="Europe/Moscow" (Default local)


UTF-8 локализация консоли:

livecd root # nano /etc/env.d/02locale
LC_ALL=""
LANG="ru_RU.UTF-8"
LC_NUMERIC="POSIX"


livecd root # nano /etc/rc.conf
UNICODE="yes"


livecd root # nano /etc/conf.d/consolefont
CONSOLEFONT="Cyr_a8x16"


l
ivecdroot # nano /etc/conf.d/keymaps
KEYMAP="ru4" # можно попробовать "ru-ms"
SET_WINDOWKEYS="yes" # Опционально
DUMPKEYS_CHARSET="koi8-r"


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

Установка системной службы логирования и крон:
livecd root # emerge syslog-ng vixie-cron mc 
livecd root # rc-update add syslog-ng default
livecd root # rc-update add vixie-cron default


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

livecd root # emerge reiserfsprogs e2fsprogs


11. Настройка загрузчика системы

Мне нравится "GRUB":
livecd root # emerge grub


Редактируем "grub.conf"

livecd root # nano /boot/grub/grub.conf
default 0
timeout 10
splashimage=(hd0,0)/boot/grub/splash.xpm.gz #Графическое окно приветствия
title=Gent0_o
root (hd0,0)
kernel /boot/bzImage root=/dev/sda2


Устанавливаем grub:
livecd root #
grub> root (hd0,0)
grub> setup (hd0)
grub> quit

NB:
В случае SATA:(hd0,0) - раздел /boot (/dev/sda1), первый 0 - номер порта на материнской плате (sda=0, sdb=1, sdc=2, sdd=3 и т.д.), второй 0 - номер раздела на винте (sda1 = 0, sda2 = 1 и т.д.)
setup hd0 - установка в MBR первого винта в системе.
В случае IDE: (hd0,0) - раздел /boot (/dev/hda1), первый 0 - номер винчестера (Primary Master hda=0, Primary Slave hdb=1, Secondary Master hdc=2, Secondary Slave hdd=3 и т.д.), второй 0 - номер раздела на винте (hda1 = 0, hda2 = 1 и т.д.)
setup hd0 - установка в MBR первого винта в системе.

Отправляем систему в ребут (скрестим пальцы и подумаем о чем нибудь приятном).
livecd root # exit
livecd root # cd /
livecd root # umount /mnt/gentoo/boot /mnt/gentoo/home
livecd root # umount /mnt/gentoo/dev /mnt/gentoo/proc
livecd root # umount /mnt/gentoo
livecd root # reboot


12. Первая загрузка

Загрузилось? - круто! Нет? - заново загружаемся с Install CD правим конфиги и конфигурируем ядро.

Возможные проблемы:
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


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

Hint: Загружаемся с LiveCD и редактируем ядро:
livecd root # mount /dev/sda2 /mnt/gentoo
livecd root # mount /dev/sda1 /mnt/gentoo/boot
livecd root # mount -t proc none /mnt/gentoo/proc
livecd root # mount -o bind /dev /mnt/gentoo/dev
livecd root # chroot /mnt/gentoo /bin/bash
livecd root # env-update && source /etc/profile
livecd root # cd /usr/src/linux
livecd root # make menuconfig

Конфигурируем
livecd root # make && make modules_install
livecd root # cp arch/i386/boot/bzImage /boot 
livecd root # exit
livecd root # umount /mnt/gentoo/boot /mnt/gentoo/home
livecd root # umount /mnt/gentoo/dev /mnt/gentoo/proc
livecd root # umount /mnt/gentoo
livecd root # reboot


{TAGS}




Вас также может заинтересовать:

21.05.2010 Установка Gnome 2.30 из Init6 Overlay в Gentoo
02.05.2010 Установка Gentoo на софтварный рейд (x86 UTF-8 RUS Soft-RAID)
22.05.2010 Использование PackageSet в Gentoo (Или жизнь после установки Gentoo-Way)
Настройка РРТР в GENTOO консольный вариант (PPTP Gentoo-way)
Установка Centos 6
Установка GeoIP (Centos, Red Hat)