Установка 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 не позволит этму быть.Можно, конечно, сгородить такую типа конструкцию:
Я это к чему: это есть недоработка или я чего-то недопонимаю?
Еще один момент
Я столкнулся с еще одним приколом. В ядре почему-то (и, главное, зачем?) отключена поддержка файловой системы ext2, из-за чего прописанное в fstab автомонтирование раздела /dev/sda1 на /boot не срабатывает. И сделано всё по хендбуку - раздел отформатирован в ext2. Зачем мне это понадобилось? Да просто изменить ядро - добавить драйвер второй сетевой карточки, а глядь - а папка /boot пустая.
Так что будьте осторожны.
Я даже знаю того не хорошего
Я даже знаю того не хорошего человек, который в этом виноват ;) ) ) )
Но не буду показывать пальцем :)
rc_parallel="YES" Ататат!!!
rc_parallel="YES"
Ататат!!! Не надо это сразу при инсталляции выставлять, - может жопэ приключится, когда сервисы все разом стартуют и потом ждут когда же нужный им сервис таки дозапустится, или, чего хуже, закольцуются, тоже само и при остановке. Особенно актуально с dm и lvm и много чем ещё.
Лучше после того как всё устаканится включить сабж и постепенно выправлять взаимозависимости сервисов.
> Вместо этой записи лучше
> Вместо этой записи лучше сразу записать параметры сборки ядра для portage, чтобы потом их не указывать каждый раз:
Не лучше. Это стоит ставить только если вы хотите каждый раз обновлять ядро. Иначе может выйти конфуз, выйдет новая версия, симлинк поменяется и тут вам понадобится, что-то добавить в ядро. В итоге высок риск, получить нерабочую систему.