Блог gentoo

Регистрация

gentoo

some abt gentoo

<<< Философия Gentoo
HOWTO Полное обновление системы>>>

Установка Gentoo

Начинающие джедаи ставят по Handbook (полный handbook), опытные по Краткое руководство по установке Gentoo Linux x86 (в руководстве кратко описывается процесс установки Gentoo. Чтобы следовать этому руководству, нужен предшествующий опыт установки Gentoo Linux.), гуру ничего не ставят, у них уже всё стоит))


Пример установки Gentoo 2007.0 из stage3 вручную, без использования инсталляторов. Архитектура x86, ядро 2.6, ru_RU.UTF-8.


1. Скачать и записать:

install-x86-minimal-2007.0-r1.iso
|- /stages/stage3-i686-2007.0.tar.bz2
|- /snapshots/portage-latest.tar.bz2

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

boot:
..........
livecd root #

Настройка сети: # net-setup eth0
Проверяем: # ping ya.ru
Если всё ок, можно открыть handbook:
# links http://www.gentoo.org/doc/ru/handbook/handbook-x86.xml

Включение DMA (если не включилось автоматически): # hdparm -d1 /dev/hda
Тестирование производительности диска: # hdparm -tT /dev/hda

Запуск демона SSH для удалённой установки: # /etc/init.d/sshd start

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

# cfdisk

   Name    Flags   Part Type    FS Type           Size
hda1 boot primary Linux 64M
hda2 primary LinuxSwap (82) 1024M
hda3 primary Linux 10000M
hda4 primary Linux *M

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

Создаем файл подкачки.
Форматируем: # mkswap /dev/hda2
и активизируем: # swapon /dev/hda2

Форматируем linux-разделы.
/boot в ext2: # mke2fs /dev/hda1
/ и /home в reiserfs:
# mkreiserfs /dev/hda3
# mkreiserfs /dev/hda4

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

# mount /dev/hda3 /mnt/gentoo
# mkdir /mnt/gentoo/boot
# mount /dev/hda1 /mnt/gentoo/boot
# mkdir /mnt/gentoo/home
# mount /dev/hda4 /mnt/gentoo/home

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

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

Распаковываем тарбол со stage3:
# cd /mnt/gentoo
# tar -xvjpf /mnt/cdrom/stages/stage3-i686-2007.0.tar.bz2

Распаковываем дерево портеджей:
# tar -xvjf /mnt/cdrom/snapshots/portage-latest.tar.bz2 -C /mnt/gentoo/usr

Разберёмся с distfiles.

Все пакеты с исходными кодами должны храниться в папке по умолчанию /usr/portage/distfiles (с LiveCD она видна как /mnt/gentoo/usr/portage/distfiles). Пакеты при установке будут браться сначала оттуда, а в случае их отсутствия - скачиваться с интернета.

root-раздел не резиновый, distfiles планирую держать на home-разделе (/home/gentoo/distfiles).

# mkdir /mnt/gentoo/home/gentoo
# mkdir /mnt/gentoo/home/gentoo/distfiles

Для обладателей LiveCD(DVD), с записанными на нём distfiles, необходимо скопировать всю папку distfiles с LiveCD:
# cp -rv /mnt/cdrom/distfiles /mnt/gentoo/home/gentoo

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

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

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

CHOST="i686-pc-linux-gnu"

В переменной CHOST определяется, для какой архитектуры скомпилирована система. В ней уже должно быть установлено правильное значение. Не изменяйте эту переменную, т.к. это может повредить вашу систему. Если переменная CHOST, по-вашему, выглядит неправильно, возможно, вы используете не тот архив stage3.

CFLAGS="-O2 -march=prescott -pipe -fomit-frame-pointer"

В -march=впишите_своё. Узнать тип процессора можно по: # cat /proc/cpuinfo
Примеры march смотрим в Safe_Cflags.

Не использовал "-ffast-math":

Уберите "-ffast-math"! Генерируемый gcc код "-ffast-math" с любыми "-O" может приводить к неправильным результатам вычислений. Рекомендую для вашего случая использовать вместо "-ffast-math" что-то типа "-m3dnow -mfpmath=sse". Будет и быстрее и стабильнее. "-fomit-frame-pointer" можно вообще убрать: оно по дефолту включено еще в "-O2".

Не использовал "-О3", ибо непонятно.

Добавил MAKEOPTS="-j2", но взял на заметку:
Было подобное с компиляцией ядра в виртуальной машине, причем проблема случайным образом то повторялась, то нет. Дал больше памяти - проблема исчезла. Имхо дело в опции MAKEOPTS="-j2". Видимо двум экземплярам компилятора памяти не хватает, надо в один поток компилить.

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

При наличии distfiles на локальном фтп, можно прописать зеркало: GENTOO_MIRRORS="ftp://ip.your.lan.pc";
(В корне фтп должна находиться папка distfiles, содержащая пакеты.
Внимание. Не все пакеты скачиваются с зеркала, за некоторыми идёт обращение сразу, по жёстко прописанному адресу, в интернет, невзирая на то, что пакеты есть на зеркале.)

Прописываем путь к distfiles: DISTDIR="/home/gentoo/distfiles"
Путь для хранения бинарных версий пакетов: PKGDIR="/home/gentoo/packages"

Две строки для elogv:
PORTAGE_ELOG_CLASSES="warn error log qa"
PORTAGE_ELOG_SYSTEM="save"

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

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

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

Монтирование файловых систем /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

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

Настройка Portage.

Если есть интернет: # emerge --sync
Остальные: # emerge --metadata

На предложение обновить portage, делаем: # emerge portage
Обновляем, если необходимо, конфиги: # dispath-conf
(всегда обновляем внимательно, смотрим что удаляет и что добавляет, и решаем, нужно нам это или нет)

Выбор нужного профиля. *опционально* *пример*


Выяснение используемого профиля: # ls -FGg /etc/make.profile
lrwxrwxrwx 1 48 Apr 8 18:51 /etc/make.profile -> ../usr/portage/profiles/default-linux/x86/2006.1/

Выяснение всех существующих профилей: # ls /usr/portage/profiles/default-linux/x86/ -l
drwxr-xr-x 2 portage portage 160 Май 8 04:39 2006.0
drwxr-xr-x 4 portage portage 176 Фев 12 23:36 2006.1
drwxr-xr-x 4 portage portage 176 Апр 14 06:06 2007.0
...

Как видно, существует более новый профиль (2007.0), можно переключиться на него, хотя это делать и не обязательно (пока текущий профиль не объявлен "deprecated").
# ln -snf /usr/portage/profiles/default-linux/x86/2007.0 /etc/make.profile

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

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

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

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

Региональные параметры GLIBC

Скорее всего, вы будете использовать в системе один-два набора региональных параметров. Нужные регионы можно указать в /etc/locale.gen:
# 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:
# locale-gen

7. Настройка ядра.

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

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

Устанавливаем свой часовой пояс:
Ищем свою зону: # ls /usr/share/zoneinfo/
Устанавливаем: # cp /usr/share/zoneinfo/Asia/Krasnoyarsk /etc/localtime (мой часовой пояс)

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

Установка исходных кодов ядра: # emerge gentoo-sources
Должен поставиться один пакет - gentoo-sources, если это не так, читаем handbook.

Далее будем настраивать ядро, а для этого желательно знать какое железо стоит на машине. Смотрим во второй консоли (Alt+F2):
# lspci (входит в состав пакета pciutils)
# lsmod (отображает список модулей, которые загрузил LiveCD)
А в первой переходим к конфигу ядра:
# cd /usr/src/linux
# make menuconfig

Настройку ядра производил по этому руководству:
http://img1.liveinternet.ru/images/attach/b/1/3563/3563924_kernel_make.zip

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

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

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

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

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

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

   /dev/hda1            /boot           ext2     noauto,noatime          1 2
/dev/hda3 / reiserfs noatime 0 1
/dev/hda2 none swap sw 0 0
/dev/hda4 /home reiserfs exec,rw 0 1
 
/dev/hdc /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

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

Установка имени узла (машины): # 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" # рабочая группа?

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

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

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

Задаем пароль администратора: # passwd

Устанавливаем более приятный шрифт для консоли:
# emerge terminus-font

# nano /etc/conf.d/clock
CLOCK="local" (вместо UTC)
TIMEZONE="Asia/Krasnoyarsk" (измените на свою)
CLOCK_OPTS="--directisa" (только для ноутбуков)

Локализация: # nano /etc/env.d/02locale
LC_ALL=""
LANG="ru_RU.UTF-8"
LC_NUMERIC="POSIX"

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

# nano /etc/conf.d/consolefont
CONSOLEFONT="ter-k14n"

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

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

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

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

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

Установка GRUB: # emerge grub

Создание grub.conf: # nano /boot/grub/grub.conf
default 0
timeout 10
splashimage=(hd0,0)/boot/grub/splash.xpm.gz

title=Gentoo
root (hd0,0)
kernel /boot/bzImage root=/dev/hda3

Запускаем grub: # grub
grub> root (hd0,0) //раздел с /boot
grub> setup (hd0)
grub> quit

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

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

# exit
cdimage # cd
cdimage ~# umount /mnt/gentoo/boot /mnt/gentoo/home
cdimage ~# umount /mnt/gentoo/dev /mnt/gentoo/proc
cdimage ~# umount /mnt/gentoo
cdimage ~# reboot

11. Послесловие.

Если система загрузилась - поздравляю! Значит вы удачно сконфигурировали ядро, по-крайней мере для загрузки ^_^
Проверьте дату/время: # date
Проверьте набор/отображение русских букв (переключение раскладок - правый Ctrl).
Запустите # nano, обратите внимание на строки меню внизу, корректно ли отображаются?
# locale выдаёт ru_RU.UTF-8 везде, кроме LC_NUMERIC?

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

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 и редактируем ядро:
cdimage ~# mount /dev/hda3 /mnt/gentoo
cdimage ~# mount /dev/hda1 /mnt/gentoo/boot
cdimage ~# mount /dev/hda4 /mnt/gentoo/home
cdimage ~# mount -t proc none /mnt/gentoo/proc
cdimage ~# mount -o bind /dev /mnt/gentoo/dev
cdimage ~# 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
cdimage ~# umount /mnt/gentoo/boot /mnt/gentoo/home
cdimage ~# umount /mnt/gentoo/dev /mnt/gentoo/proc
cdimage ~# umount /mnt/gentoo
cdimage ~# reboot
(возможно некорректное отображение рамочек в menuconfig)


Теги: установка


  • evridika
    1 октября 2008|13:27|ссылка
    решила поставить генту, чет не поняла, а где у тя картиночки?м?))

    • gentoo
      1 октября 2008|14:13|ссылка
      Поставь и наскриншоть мне картиночек, мм?))

      • evridika
        1 октября 2008|21:30|ссылка
        мож те еще мувиков наснимать?))

        • gentoo
          1 октября 2008|23:31|ссылка
          Не сдерживай себя! ;)

  • studer
    11 декабря 2008|03:43|ссылка
    Скачал gentoo liveCD
    гружусь с него, а потом проблемы ибо рутового пароля не знаю
    гуглил-гуглил, так ничего и не выгуглил :(
    не можешь ничего по этой теме подсказать?

    • alektronik
      30 декабря 2008|01:36|ссылка
      с помощью passwd смени пароль для рута и заходи :)

      • studer
        30 декабря 2008|03:07|ссылка
        не помню сейчас что там уже с passwd было. Все оказалось значительно проще
        sudo su и вот у тебя готовая рутовая консолька...

  • alektronik
    30 декабря 2008|01:38|ссылка
    gentoo

    Подправь строчку
    Обновляем, если необходимо, конфиги: # dispath-conf
    на
    Обновляем, если необходимо, конфиги: # dispatch-conf
    ###( dispath - > dispatch)

  • seven-lies
    17 ноября 2009|06:49|ссылка
    О-о-о.... Гентуууу