Поиск

Установка gentoo


Что-то я каждый раз с новой железякой начинаю рыться в интернете, что там да как.

Для начала грузимся с systemResque. Скачать образ можно отсюда, а здесь почитать, как его записать на флешку. Мне пришлось грузиться в режиме «disable kernel-mode-settings», т.к. стандартный зависал на попытке получения системного времени из hardware clock.
Дальше сперва-наперво настраиваем сеть (ifconfig, route, /etc/) и по необходимости устанавливаем переменные XXX_proxy. На рабочем компьютере у меня по умолчанию NAT с форвардингом отключены, поэтому от рута надо запустить скриптик:

echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t filter -A FORWARD -p all -s 192.168.99.0/24 -d 192.168.2.0/23 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.99.0/24 -d 192.168.2.0/23 -j SNAT --to-source 192.168.3.225

До скачивания образа нужно разбить диск. Я последнее время целиком системный диск делаю корнем, чтобы не париться. В случае с ноутбуком (где несчастных 465ГБ жесткого диска) это тем более необходимо. (кстати, оказалось, что на заказанном ноутбуке несмотря на явное «операционная система: отсутствует» была зачем-то установлена дебильная десятка; хорошо хоть не наляпали уродливых этикеток). Файловая система — reiserfs или ext4. Предпочитаю reiserfs (главное — не забыть потом при настройке ядра включить ее поддержку в ядро).
Монтируем корень в /mnt/gentoo и качаем туда stage3 (stage3 проще взять с зеркала yandex). Кстати, проверять целостность витой пары можно при помощи свитча: суем в соседние гнезда концы шнурка, если соответствующие светодиоды загорятся, все ОК.
Удобней всего сразу же зайти по ssh на «пациента» (для этого сначала надо сменить пароль рута). Тогда можно копипасту втыкать из браузера и т.п. Stage3 лучше сразу взять «no-multilib». Скайп не нужен.
Распаковываем stage3 (tar -xf).
Дальше копируем make.conf из существующей системы в целевую, редактируя необходимое (лучше поменьше оставлять разрешающих флагов). Вот так, например:

CFLAGS="-pipe -O2 -march=native"
CXXFLAGS="${CFLAGS}"
CHOST="x86_64-pc-linux-gnu" ENABLE="7zip alsa bash-completion cleartype corefonts djvu dri dri2 enca ffmpeg fuse \
gnuplot gost mencoder mplayer ntfs opengl openmp pdf rar spell threads truetype ttf type1 v4l2 \
X x264 xorg" # All that must be disabled
DISABLE="-abiword -bluetooth -consolekit -doc -eds -go -gnome -gtk3 -handbook \
-java -joystick -libav -libproxy -networkmanager -perl -phonon -policykit -pulseaudio \
-python -ruby -rust -systemd -udisks -upower -wallpapers -webkit" USE="${ENABLE} ${DISABLE}" VIDEO_CARDS="radeon"
FEATURES="$FEATURES parallel-fetch -xattr" LINGUAS="ru ru_RU en"
L10N="ru en en-GB"
AUTOCLEAN="yes" GENTOO_MIRRORS="http://mirror.yandex.ru/gentoo-distfiles/ http://gentoo.bloodhost.ru/ http://mirror2.corbina.ru/gentoo-distfiles/ http://gentoo.inode.at/ http://de-mirror.org/gentoo/ http://mirror.bytemark.co.uk/gentoo/ " ACCEPT_KEYWORDS="amd64" PORTDIR="/usr/portage"
DISTDIR="${PORTDIR}/distfiles"
PKGDIR="${PORTDIR}/packages"
PORTAGE_TMPDIR="/tmp" EMERGE_DEFAULT_OPTS="-v -j4 --load-average=7 --with-bdeps y --keep-going y --quiet-build n --autounmask n"
MAKEOPTS="-j4" PORTAGE_NICENESS="13"
PORTAGE_IONICE_COMMAND="ionice -c 3 -p \${PID}"


Сразу же можно заполнить информацию о прокси, DNS и настройках сети; скопировать /etc/profile.d и т.п. Или сделать это позже.
Еще лучше бы сохранить весь выхлоп lsmod, чтобы потом, когда что-то не заработает, можно было быстро определить, какой модуль ядра забыл собрать.
Перенесем в новую систему /var/lib/portage/world из старой, оставив нужное.
Дальше готовимся к чруту:

mount -t proc /proc /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev


И делаем чрут в /mnt/gentoo. После этого синхронизируемся (emerge-webrsync); проверяем, правильный ли профиль (eselect profile list) и обновляем system.
Пока обновляется система, устанавливаем временнýю зону:

echo "Europe/Moscow" > /etc/timezone

Добавляем строчки

ru_RU.KOI8-R KOI8-R
ru_RU.UTF-8 UTF-8

в /etc/locale.gen (вторая строчка в принципе и не нужна, но пусть будет на всякий случай). Запускаем locale-gen и при помощи eselect locale устанавливаем локаль по умолчанию в КОИ8-Р.
Теперь можно начать в одной вкладке терминала установку системы (так как файл world уже сформирован, все нужные пакеты «залпом» будут установлены), разве что придется сначала немного подправить частные USE-флаги (кое-какая гадость, например, не может с флагом -qt, ей нужно явно какой-нибудь qtx поставить; частично можно портировать эти файлы со старой системы). На стадии заполнения частных USE-флагов поможет вот такое упрощение:

function x() { echo "$1 $2" >> $(echo $1 | sed 's|/.*||'); emerge -uDN world; }


Тем временем, пока компилируется «мир», ставим исходники свежего ядра:

echo "sys-kernel/gentoo-sources ~amd64" >> /etc/portage/package.keywords/sys-kernel
emerge -1 sys-kernel/gentoo-sources


И при помощи make menuconfig, посматривая на имеющееся железо, конфигурируем, а затем собираем ведро. Здесь, в разделе «Включаем обязательные опции» описано, что нужно не забыть включить в ведро (+ NLS КОИ8-Р и поддержку reiserfs).
Сделать это одновременно на ноутбуке вечером не успел. А когда пришел с утра, оказалось, что из 800 с лишним пакетов еще установилось не все: осталось 244. А ноутбук тормозит так, что даже на нажатие любой клавиши реагирует спустя полминуты-минуту. Вот такая гадость этот двухъядерный AMD. Восьмиядерный i7 намного веселей (особенно когда еще 32ГБ оперативы есть)! Пришлось перезагрузить ноутбук и продолжить.
С установкой загрузчика у меня возникла проблема: ненужный UEFI я отключил в биосе, но все равно:

grub-install /dev/sda --target=i386-pc
Installing for i386-pc platform.
grub-install: warning: this GPT partition label contains no BIOS Boot Partition; embedding won't be possible.
grub-install: warning: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged..
grub-install: error: will not proceed with blocklists.
sysresccd /usr/src/linux # grub-mkconfig -o /boot/grub/grub.cfg


Разбивал fdisk’ом, какие-то GPT не выставлял…

продолжение следует, когда разберусь, почему grub не хочет устанавливаться. eddy_em.livejournal.com

Добавить комментарий