Установка Gentoo 11.0 с нуля - не наступайте на грабли! ( 05.06.2011 )

Эта заметка написана с целью предостеречь пользователей Gentoo, устанавливающих систему "с нуля" о проблемах, которые их поджидают в новой сборке "Gentoo 11.0" и дать несколько советов.

Я рассматриваю вариант установки системы по хэнд-буку ("http://www.gentoo.org/doc/ru/handbook/"). Так как этот документ не обновлялся уже достаточно давно, некоторые указания, данные в нём уже потеряли свою актуальность, а некоторые моменты и вовсе не были описаны. Их я тоже коснусь.

Итак, начну по порядку самого хэндбука:

О выборе между DVD и minimal-cd не мне вам говорить. Каждый выбирает себе наиболее удобный вариант.

Загружаемся с Live-CD и настраиваем "сеть". При ручной настройке соединения предлагается править resolv.conf:

nano -w /etc/resolv.conf

nameserver ${NAMESERVER1}
nameserver ${NAMESERVER2}

На мой взгляд, проще в /etc/conf.d/net.eth0 к параметрам config_eth0 и routes_eth0 приписать ещё и DNS-сервера:

dns_servers_eth0="${NAMESERVER1} ${NAMESERVER2}"

При перезапуске сетевого интерфейса, resolv.conf будет сгенерирован автоматически.

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

В качестве зеркала для загрузки стадии и снапшота можно использовать Yandex:

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

В сборке links на Live-CD закралась некая ошибка. Он может не допустить на FTP-сервер. Это не значит, что FTP-зеркало не действует. Воспользуйтесь http.

Распаковка архивов так же производится по хэнд-буку.

/mnt/gentoo/etc/make.conf

Я предпочитаю заполнять этот файл сразу по уже существующему шаблону. В целом, всё так же. Разве что можно по-красивее заполнить USE-флаги. Например, так:

USE="${USE_CPU} ${USE_SYSTEM} ${USE_AUDIO} ${USE_VIDEO} ${USE_LOCALE} ${USE_KDE} ${USE_GNOME}"

USE_CPU="mmx sse sse2 sse3 ssse3 sse4 sse4.1"
USE_SYSTEM="qt gtk ncurses slang -hal samba java"
USE_AUDIO="alsa audio mp3 ogg vorbis"
USE_VIDEO="video X xorg opengl virtualbox dvd"
USE_LOCALE="locale userlocales l10n utf8 unicode"
USE_KDE="kde webkit"
USE_GNOME="gnome eds evo gstreamer"

Хоть resolv.conf и создаётся автоматически, но скопировать его всё же стоит, ведь на данном этапе система не позволит применить свои настройки к сетевому интерфейсу. Но вместе с ним стоит скопировать и /etc/conf.d/net:

cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
cp -L /etc/conf.d/net /mnt/gentoo/etc/conf.d/net

До выбора профиля выполняйте всё по инструкции хэнд-бука.

Выбор профиля по инструкции производится вручную, но уже давно этот процесс упрощён утилитой eselect:

eselect profile list
eselect profile set [номер]

Далее до сборки ядра выполняйте указания хенд-бука.

USE="-doc symlink" emerge gentoo-sources

Вместо этой записи лучше сразу записать параметры сборки ядра для portage, чтобы потом их не указывать каждый раз:

mkdir /etc/portage
echo "sys-kernel/gentoo-sources -doc symlink" >> /etc/portage/package.use
emerge gentoo-sources

Внимание! Первый опасный момент!

В новой версии ядра модуль devtmpfs по-умолчанию выключен. Если оставить как есть, то загрузка системы остановится сразу после запуска ядра при старте init. Причём, ядро работать не перестанет. Чтобы этого избежать, стоит включить этот модуль:

Kernel Configuration ->
  Device Drivers ->
    Generic Driver Options ->
      (*) Maintain a devtmpfs filesystem to mount at /dev
      (*)   Automount devtmpfs at /dev, after the kernel mounted the rootfs

Перед тем, как собирать ядро, заранее стоит поставить grub (или lilo), т.к. иначе символическая ссылка может не создаться. Не факт, что так и будет. На моей практике такое случалось в 50/50.

Далее выполняем инструкции хэнд-бука. При настройке сети не забываем про dns_servers_eth0.

А вот сценарий инициализации eth0 потребуется создать. В последней сборке самостоятельно он не создаётся:

cd /etc/init.d
ln -s net.lo net.eth0
rc-update add net.eth0 default

Редактируя rc.conf , можно включить параллельную загрузку.

rc_parallel="YES"

Немного ускоряет запуск системы. Однако, в нём появился новый закомментированный по-умолчанию параметр:

rc_sys=""

Его стоит указать, иначе при запуске системы будет выдаваться предупреждение. Что этот параметр означает, подробно описано в комментарии.

Редактируем /etc/conf.d/keymaps тоже по хэнд-буку. Но если вы собрались параллельно настраивать локаль, то на этом этапе пропишите автозапуск consolefont:

rc-update add consolefont boot

В новой сборке системы этот демон по-умолчанию не запускается.

Slocate можно не устанавливать. Увы, этой полезной утилиты больше нет в portage... Ищите альтернативы.

Настройка grub производится по хэнд-буку.

Внимание! Второй опасный момент!

Обязательно до перезагрузки пересоберите и пропишите в автозапуск udev!

emerge udev
rc-update add udev sysinit

Не спрашивайте меня, кто додумался его туда не вписать... Но если вы этого не сделаете, то обретёте сразу несколько проблем:

  • Ошибка установки времени;
  • Ошибка сборки некоторых пакетов;
  • Предупреждение при запуске;
  • Ошибки в работе интерпретатора python-а;
  • Ошибки в работе revdep-rebuild;
  • Отсутствие символической ссылки на cdrom ("/dev/cdrom");
  • Невозможность в дальнейшем запуска xorg-server-а:
No devices to configure. Configuration failed.
(EE) No devices detected.
Fatal server error:
no screens found.

Если выполнить рекомендацию, эти проблемы вас не коснутся.

Далее по хэнд-буку производим перезагрузку.

Внимание! Третий опасный момент!

Сразу после обновления дерева portage ("emerge --sync"), пересоберите portage и gcc!

emerge portage gcc

Если вы этого не сделаете, то обретёте зависания emerge при сборке некоторых пакетов. Эти зависания не сразу, но очень быстро "повесят" всю систему! Поможет только RESET.

В дальнейшем - всё как обычно. Главное, избегать "опасных моментов")

Хоть разработчики Gentoo и допустили эти ошибки, но, возможно, в ближайшем будущем эти проблемы утратят свою актуальность. По идее, так и должно быть. Но пока что каждый может с ними столкнуться. Я принципиально собирал эти грабли, чтобы после написания этой заметки на них не наступать. Надеюсь, она поможет и вам.

Прошу прощения, эту заметку я

Прошу прощения, эту заметку я увидел только после создания темы:
Я установил систему из нового (майского) stage3, а она не грузится! Что делать?

нехорошие

нехорошие советы

отредактируйте, пока slepnoga не проснулся ;)

что-то добрый я сегодня ....

slep спит, а вот noga нет :)

slep спит, а вот noga нет :) у нас же 24/7

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

И туд я с глупыми вопросами :)

Позволю себе немного "выкатиться из кильватерной колонны" :)
У меня давненько висят несколько ? по поводу openrc и директории /etc/local.d/.
Логично предположить, что самописные скрипты, находящиеся в этом каталоге, будут
запускать службы(сервисы/демоны - как хотите), причём, для более "внятного" их запуска,
предпочтительней использовать #!/sbin/runscript, а не #!/bin/bash (беглое прочтение man runscript подтвердит).
Но догическая конструкция [ -x $file ] && $file в файле /etc/init.d/local не позволит этму быть.
Можно, конечно, сгородить такую типа конструкцию:

for file in /etc/local.d/*.start ; do
   case  "`/usr/bin/head -1 ${file} | /bin/sed -e 's:\#!::'`" in
       /sbin/runscript)	[[ -x "${file}"  &&  -s "${file}" ]] && eval . /"${file}" ;;
       /bin/bash)			[[ -x "${file}"  &&  -s "${file}" ]] && ${file} ;;
   esac
done

Я это к чему: это есть недоработка или я чего-то недопонимаю?

Еще один момент

Я столкнулся с еще одним приколом. В ядре почему-то (и, главное, зачем?) отключена поддержка файловой системы ext2, из-за чего прописанное в fstab автомонтирование раздела /dev/sda1 на /boot не срабатывает. И сделано всё по хендбуку - раздел отформатирован в ext2. Зачем мне это понадобилось? Да просто изменить ядро - добавить драйвер второй сетевой карточки, а глядь - а папка /boot пустая.
Так что будьте осторожны.

Я даже знаю того не хорошего

Я даже знаю того не хорошего человек, который в этом виноват ;) ) ) )
Но не буду показывать пальцем :)

rc_parallel="YES" Ататат!!!

rc_parallel="YES"
Ататат!!! Не надо это сразу при инсталляции выставлять, - может жопэ приключится, когда сервисы все разом стартуют и потом ждут когда же нужный им сервис таки дозапустится, или, чего хуже, закольцуются, тоже само и при остановке. Особенно актуально с dm и lvm и много чем ещё.
Лучше после того как всё устаканится включить сабж и постепенно выправлять взаимозависимости сервисов.

> Вместо этой записи лучше

> Вместо этой записи лучше сразу записать параметры сборки ядра для portage, чтобы потом их не указывать каждый раз:

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

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

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".