Главная | Контакты | Настройки СМЕНИТЬ ПАЛИТРУ:

Главная > Операционные системы > UNIX > Linux > Gentoo

Детальная установка gentoo linux

Детальная установка 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)

Оригинал статьи gentoo.blog.ru
Главная > Операционные системы > UNIX > Linux > Gentoo