My Opera is closing 3rd of March

linux gentoo

Заметки

Subscribe to RSS feed

Установка Gentoo часть 1

Итак, Linux Gentoo. Будем создавать десктопную, то бишь обычную пользовательскую систему, с красивостями, рабочим столом, музыкой и другими прелестями :-) .Машина у меня не очень мощная, Сел P IV 1800 MHz, ram 384 M, два жестких диска, резак сиди и dvd-не очень проворный :-) .
Имеется два харда: 80 и 40 Gb. На первом есть winxpsp2 (20 Gb).
На руках у меня два дистра от ЛинуксЦентра, Gentoo 2004.3 и 2005.0 (dvd). Так как на dvd диске не оказалось третей стадии для 4-го пня (там вообще ни одной третьей стадии не оказалось), то его пришлось качать из сети. Встал вопрос, какую именно стадию качать, то бишь, за какое число. На дворе 2006 год, а исходники у меня за 2005, качать все дистфайлы из сети, зачем тогда я диски покупал? Подошёл такой (по дате создания он соответствовал файлу portage на моём dvd) stage3-pentium4-2005.1.tar.bz2, всё равно глобальной разницы нет, а дистфайлы на dvd относятся к определённому portage (не все конечно, но большинство из них имеет значение во премя компиляции).

Грузимся с загрузочного cd, я взял 2004.3, просто он мне больше понравился :-) , dvd - привод у меня не очень расторопный. Подготавливаем диски для работы. Я не собирался сразу использовать LVM и разбивать пользовательские директории, машина домашняя, ей пользуются, точнее будут пользоваться порядка 8 человек, все домашние и знакомые, в том числе и дети (круг лиц ограничен).
Вызываем fdisk
#fdisk /dev/hda (то есть первый диск)
Проверяем, что у нас имеется
#p
Device Boot Start End Blocks Id System
/dev/hda1 * 1 2550 20482843+ 7 HPFS/NTFS

Имеется первичный раздел 20 Gb с установленной win. Создаём boot раздел (не boot-сектор :|), в последствии этот раздел при загрузке не будет монтироваться, каталог /boot вообше будет пустым, но загрузчик GRUB будет считывать из него информацию, так же в нём разместим копии системных файлов.
Поехали, как сказал Юрий Алексеевич :-)

n (создаём новый раздел)
p (указываем, что он будет первичным)
Далее жмём Enter, чтобы отсчёт начинался с последующего цилиндра, потом пишем +64M (чтобы размер раздела равнялся 64 Mb (можно и меньше сделать, например 32 Mb)), Проверяем "p", появился раздел размером в 64 Mb

Device Boot Start End Blocks Id System
/dev/hda1 * 1 2550 20482843+ 7 HPFS/NTFS
/dev/hda2 2551 2559 72292+ 83


Теперь нужно сделать этот раздел загрузочным, жмём "a", выбираем номер раздела, это "2", жмём Enter, проверяем "p", видим, что у /dev/hda2 появилась звёздочка, и это хорошо :-) Раздел будет загрузочным.

Device Boot Start End Blocks Id System
/dev/hda1 * 1 2550 20482843+ 7 HPFS/NTFS
/dev/hda2 * 2551 2559 72292+ 83

Теперь нам нужен раздел подкачки, у Linux это отдельный раздел со своей файловой системой, жмём "n" - создание нового раздела, далее "p" - то есть раздел будет опять же primary, снова жмём Enter, так как отсчёт должен начаться со следующего свободного цилиндра, без пропусков, потом берём калькулятор и считаем. У меня объём оперативной памяти 256+128=384 Mb (где там мой калькулятор?). Я долго не думал, и умножил общий объём на 2, получился объём подкачки равный 768 Mb, значит и быть посему, всё таки проблему чётности стоит учитывать... Пишем +768M (не забыть бы M написать :-)), жмём Enter, проверяем "p", получилось вроде бы. Раздел подкачки имеет свою файловую систему. Стоит сразу об этом позаботиться. Жмём "t", в hex-режиме разделы swap нумеруются кодом 82 (это можно подглядеть в справке). Указываем номер раздела, это в моём случае третий, выполняем, проверяем:

Device Boot Start End Blocks Id System
/dev/hda1 * 1 2550 20482843+ 7 HPFS/NTFS
/dev/hda2 * 2551 2559 72292+ 83
/dev/hda3 2560 2653 755055 82 Linux swap / Solaris

Оставшееся пространство я решил полностью отдать под корневую файловую систему, жмём n (новый), потом p (primary), fdisk нас предупреждает, что это 4-й первичный раздел (больше на одном физическом диске быть не должно), потом дважды Enter, задаём начало (использование следующего свободного цилиндра и конечный, он же последний свободный цилиндр). Проверяем:

Device Boot Start End Blocks Id System
/dev/hda1 * 1 2550 20482843+ 7 HPFS/NTFS
/dev/hda2 * 2551 2559 72292+ 83
/dev/hda3 2560 2653 755055 82 Linux swap / Solaris
/dev/hda4 2654 9729 56837970 83

Теперь сохраняем свои изменения, жмём w и Enter. Ждём окончания калькуляции. fdisk сразу не применяет изменения разделов, поэтому до команды "w" всё можно переиграть, или просто выйти без сохранения "q", но мне то это к чему? Со вторичным жестяком я поступил кардинальным образом :-) , так как он у меня не будет загрузочным, будет использоваться в режиме файло-помойки, я удалил на нём все разделы вообще. Таким образом, в корневой системе у меня будет присутствовать определённая дирректория, которая будет полностью подключена ко второму винту. Итак, диски вроде бы подготовлены, теперь было бы неплохо создать на них файловые системы, так ими будет удобнее пользоваться :-) . Мне почему то больше понравилась reiserfs, вот её и буду использовать. Где то читал, что после использования fdisk, машину стоит перезагрузить перед установкой на разделы именно reiserfs, точно не помню где, но пару раз у меня были ошибки из за этого, посему перезагрузимся
# reboot

Перезагрузили машину, опять же с cd.
Проверим, поднялся режим dma или нет:
# hdparm -v /dev/hda
using_dma = 1 (on) (проверяем эту сторчку, остальные пока можно не трогать). DMA включён, проверяем то же на втором венике, Если DMA не поднят, то
# hdparm -d1 /dev/hda
# hdparm -d1 /dev/hdb (на втором диске)

Идём дальше...
Настало время разместить файловые системы на созданных разделах. На диске /dev/hda у меня их 4, не забыть бы про то, что /dev/hda1 это win, и его не стоит трогать. Второй раздел /dev/hda2 размером в 64 метра будет работать как /boot и иметь файловую систему ext2. Создаём
# mke2fs /dev/hda2

Характеристики reiserfs:

Размер блока До 64KB
Максим. размер файловой системы Пока что фиксирован, 4KB 4GB of blocks, 16 Tb
Максим. размер файла 4GB, 2^10 petabytes in ReiserFS (3.6.xx)

Для корневого раздела будет использоваться reiserfs, создаём:
# mkereiserfs /dev/hda4 (четвёрный раздел)
Теперь раздел подкачки
# mkswap /dev/hda3 (третий раздел)
Активируем раздел подкачки, пора бы уже :-)
# swapon /dev/hda3
Создаём файловую систему на втором диске
# mkereiserfs /dev/hdb (у меня это всё пространство)

Всё прошло успешно, дисковые разделы определены, созданы файловые системы, раздел подкачки определён и активирован, то есть уже "дышит".
*****************************************
Настало всемя разобраться со стадиями и portage, Стадия распаковки у меня находится на диске hdb, portage - на dvd диске. Сейчас система работает с cd. Нужно ко всему этому богатству получить доступ. Переходим на вторую консоль Alt+F2, проверяем, что имеется в каталоге /mnt
# ls /mnt
cdrom gentoo (больше нет ничего).

Мне нужно еще два каталога: dvd (для монтирования dvd - привода) и media (для диска hdb), создаем:
mkdir /mnt/dvd
mkdir /mnt/media

Так, на счёт, создания файловой системы на hdb я пошутил :-) там она уже была и софт на нём также был %-).
Теперь монтируемся:

# mount /dev/cdroms/cdrom1 /mnt/dvd (dvd-привод идёт вторичным диском у меня, первичным идёт резак)
# mount /dev/hdb /mnt/media (монтируем в корень второй жестяк).

Сразу монтируем hda4 под свежесоздаваемую корневую систему

# mount /dev/hda4 /mnt/gentoo
Создаём в ней раздел /boot
# mkdir /mnt/gentoo/boot
Монтируем hda2 в /mnt/gentoo/boot
# mount /dev/hda2 /mnt/gentoo/boot

Я счастливый обладатель внутреннего pci модема на чипе HSF. Перед началом (и в процессе) установки мне его поднять не удалось, именно поэтому, есть необходимость пользоваться именно третьей стадией, хоть выкачивать из сети пришлось почти 100 метров, во второй стадии я обнаружил отсутствие оболочки bash :-( , что свело мои труды на нет, и пришлось сначала искать именно третью стадию. В процессе установки модем нормально поднялся, проблем почти не было, но это всё вручную и потом... Теперь я просто скопирую portage и stage в дирректорию /mnt/gentoo:

cp mnt/media/portage-xxxxxxxx.tar.bz2 /mnt/gentoo
cp /mnt/dvd/snaphots/* /mnt/gentoo
Скопировать нужно так же принадлежащие этим файлам файлы md5

Идём на третью консоль Alt+F3
Хэндбук под рукой никогда не помешает, ищем его например на dvd
# links /mnt/dvd/docs/handbook/html/x86/index.html (будем читать в процессе)

Возвращаемся на первую консоль Alt+F1
Переходим в каталог /mnt/gentoo, больше мы из него выходить не захотим :-)
# cd /mnt/gentoo
# ls (видим скопированные файлы portage, stage и их md5)
Распаковываем стадию, мы находимся в каталоге /mnt/gentoo (в разделе hda4), посему, без дополнительных параметров распаковка будет проходить в этот каталог (файлы тоже здесь).
# tar xvjpf stage3-XXXXXXXXXXXX.tar.bz2 (stage у каждого свой), параметр "p" - обязателен, это сохранение прав, v - вывод на экран, не обязателен.
После распаковки стоит распаковать portage (снимок), мы всё так же находимся в /mnt/gentoo:
# tar xvjf portage-XXXXXXXX.tar.bz2 -C /mnt/gentoo/usr (параметры распаковки уже другие, "p" нет, "v" - не обязателен, -С идёт заглавная, перед ней и после - пробелы, далее - каталог для распаковки, уже /mnt/gentoo/usr. Распаковка длится минут 10 -15.
Если всё прошло удачно, stage и portage файлы нам больше не нужны, смотрим, что имеем и удаляем:
# ls -al
# rm portage-*
# rm stage*
Проверяем результат
# ls -al
********************************
Теперь проверяем каталог /mnt/gentoo/usr/portage/distfiles, если он есть, наверное его лучше удалить:
# ls /mnt/gentoo/usr/portage/distfiles (он может и быть, а может и не быть)
# rm -r /mnt/gentoo/usr/portage/distfiles, а потом пересоздать по новой, если его нет, всё равно создаём :-)
# mkdir /mnt/gentoo/usr/portage/distfiles (создали, замечательно).
На диске dvd, у меня находится 3.5 Gb исходников, во время компиляции они все мне понадобятся, посему их стоит скопировать на жёсткий диск. По умолчанию Gentoo ищет исходники в дирректории /usr/portage/distfiles. Возвращаемся на вторую консоль Alt+F2, переходим в каталог /mnt/dvd/distfiles и копируем всё, что там есть на диск.
# cd /mnt/dvd/distfiles
# cp -R * /mnt/gentoo/usr/portage/distfiles/
Объём данных довольно большой, поэтому можно успеть покурить, да и не только покурить ;-)
*********************************
Паккурили...
Теперь стоит разобраться с флагами оптимизации
Почитать про них можно например здесь http://gcc.gnu.org/onlinedocs/

# nano -w /mnt/gentoo/etc/make.conf
Открываем make.conf. Параметр -w (nowrap) обязателен, предполагает не заворачивать длинные линии.
Видим:

CFLAGS="-O3 -march=pentium4 -fomit-frame-pointer -pipe" (Я внёс сразу -O3(это буква О) -fomit-frame-pointer -pipe под свой процессор, потом мы всё поменяем)
CHOST="i686-pc-linux-gnu" (здесь ничего не меняем, пока что)
CXXFLAGS="${CFLAGS}" (тоже ничего не трогаем)
MAKEOPTS="-j2" (это нужно прописать самому, в системе у меня один процессор + 1 математический сопроцессор, параметр считается по количеству Центральных процессоров + 1, итого, 1+1=2, можно конечно же рискнуть со значениями)
Закрываем редактор ctrl+c, сохраняем изменения.
*********************************

Переходим в новую среду. Так как я сетью не пользовался, то параметры resolv.conf мне копировать вроде бы ни к чему. Сеть будет подниматься позже.
# mount -t proc none /mnt/gentoo/proc (монтируем файловую систему proc)
# chroot /mnt/gentoo /bin/bash (переходим в корень)
# env-update
# source /etc/profile (перечитываем профиль).
Всё, вошли в свою свежесозданную систему %-)
*********************************
Кстати, на этом моменте можно в принципе выйти из свежесозданной среды, смело отмонтировать все разделы и выключить компьютер, ничего не случится, обратно можно начать с загрузки с cd, монтирования /mnt/gentoo, /mnt/gentoo/boot, активации swap, после чего вновь войти в созданную среду. Вдруг понадобится кому :-)
# exit
# exit
# umount -a
# mount (проверяем, что примонтировано, все веники должны быть отмонтированы)
или вместо umount -a
# umount /mnt/gentoo/boot
# umount /mnt/gentoo/proc
# umount /mnt/gentoo
# umount /mnt/dvd
# umount /mnt/media
# swapoff /dev/hda3
# halt (отбой!)
*********************************
Но мы идём дальше. Нужно проверить используемый в систему профиль
# ls -FGg /etc/make.profile
lrwxrwxrwx 1 48 Апр 21 03:20 /etc/make.profile -> ../usr/portage/profiles/default-linux/x86/2005.1/
#
У меня это 2005.1, им и пользуюсь.
Теперь нужно синхронизировать дерево портов, так как сети у меня пока нет, выполним слудующую команду:
# emerge --metadata (процесс займёт минут 10 - 15, можно паккурить %-))
Далее, укажем USE-флаги
# nano -w /etc/make.conf
Я решил пока не мудрить, интернета то нет, и всех необходимых исходников тоже нет, посему USE были такими:
USE="-gtk -gnome qt kde arts dvd alsa cdr cups mmx usb encode mad opengl audiofile avi crypt foomaticdb gif ipv6 jpeg mad"

Смотреть допустимые USE-флаги здесь (локально)
# nano /usr/portage/profiles/use.desc

Ещё добавил переменную
LINGUAS="ru"
Сохраняем. Теперь стоит разобраться с временной зоной, Листаем каталог, выбираем, что больше подходит, там много временных зон.
# ls /usr/share/zoneinfo/
Копируем что выбрали, у меня так (я создал символьную ссылку):
# ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
Проверяем дату
# date
Смотрим на часы :-) на руке, если не сходится, выставляем дату:
# date ммддччммгггг
********************************
Будем выбирать ядро. У меня на руках оказалось 5 разных ядер. Самое свежее из них linux-2.6.12-gentoo-r10, буду использовать его. Материнская плата у меня ASUS - P4 - GE - VM, предполагает использование ядра linux не ниже 2.4 (оно у меня тоже есть). Вообще, нужно прочесть readme, что там написано про включенные в portage ядра (которые имеются в наличии), проверить, какое ядро будет установлено можно такой командой:

$ emerge --pretend gentoo-sources (--pretend только просмотреть, не устанавливать)

These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild NS ] sys-kernel/gentoo-sources-2.6.12-r10
$
# emerge -pv gentoo-sources (не устанавливать, проверить наличие исходников в /usr/portage/distfiles), должен показать 0 Kb, то есть исходники имеются в наличии, если нет :-( придётся выкачивать из сети 40 метров.

Поискать необходимые ядра можно так:
# emerge --searchdesc sources Увидим какие ядра есть еще:

* sys-kernel/gentoo-sources
Latest version available: 2.6.16-r6 (текущая поддерживаемая версия)
Latest version installed: 2.6.12-r10 (текущая установленная версия)
Size of downloaded files: 120,273 kB
Homepage: http://dev.gentoo.org/~dsd/genpatches
Description: Full sources including the gentoo patchset for the 2.6 kernel tree
License: GPL-2
* sys-kernel/vanilla-sources (дополнительное ядро от разработчика Linux)
Latest version available: 2.6.15.1 (текущая поддерживаемая версия)
Latest version installed: [ Not Installed ] (не установлено)
Size of downloaded files: 116,717 kB
Homepage: http://www.kernel.org
Description: Full sources for the Linux kernel
License: GPL-2
Проверяем, есть ли исходники в /usr/portage/distfiles:
# emerge -pv gentoo-sources
Должен ответить 0Kb, то есть, качать ничего не нужно, всё есть в наличии, устанавливаем:
# emerge gentoo-sources
Идём курить :-{
****************************
Проверяем, куда смотрит символьная ссылка в /usr/src/
$ ls -l /usr/src/linux
lrwxrwxrwx 1 root root 23 Апр 21 00:07 /usr/src/linux -> linux-2.6.12-gentoo-r10
$
Если смотрит не туда, куда нужно, исправляем:
# rm /usr/src/linux
# cd /usr/src
# ln -s linux-2.6.12-gentoo-r10
Собирать ядро будем вручную, перед этим процессом нужно как следует подкрепиться, например - пообедать :-) .
February 2014
S M T W T F S
January 2014March 2014
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28