Емельянов Эдуард Владимирович (eddy_em) wrote,
Емельянов Эдуард Владимирович
eddy_em

Category:

Установка gentoo

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

Для начала грузимся с systemResque. Скачать образ можно отсюда, а здесь почитать, как его записать на флешку. Мне пришлось грузиться в режиме "disable kernel-mode-settings", т.к. стандартный зависал на попытке получения системного времени из hardware clock.
Прежде всего, если это новый компьютер, заменяем GPT на MBR. Естественно, в биосе отключаем всякую идиотскую муть вроде EFI и т.п. ненужного дерьма.
Дальше сперва-наперво настраиваем сеть (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

После этого обязательно надо запустить emerge --config timezone-data, чтобы системное время не показывало UTC!
Добавляем строчки
ru_RU.KOI8-R KOI8-R
ru_RU.UTF-8 UTF-8

в /etc/locale.gen (вторая строчка в принципе и не нужна, но пусть будет на всякий случай). Запускаем locale-gen и при помощи eselect locale устанавливаем локаль по умолчанию в КОИ8-Р. Обязательно надо проверить, чтобы в /etc/rc.conf значением параметра unicode было "NO" (или он был закомментирован), иначе в консоли не будет русского.
Теперь можно начать в одной вкладке терминала установку системы (так как файл 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ГБ оперативы есть)! Пришлось перезагрузить ноутбук и продолжить.
При необходимости можно создать initrd:
genkernel --install --no-ramdisk-modules initramfs

После сборки и установки ядра с модулями устанавливаем загрузчик:
grub-install /dev/sda --target=i386-pc
grub-mkconfig -o /boot/grub/grub.cfg


После этого можно перезагружаться и проверять, что было забыто при конфигурировании ядра.
Tags: gentoo
Subscribe

  • Опять Подорванка смыла мост

    В четверг лило настолько, что, похоже, опять на подорванке забилась стремнина бревнами, а потом внезапно это все прорвало. МЧСовсцы перетаскивали…

  • Diskworld

    Смотрели вчера с женой на кухне "Крепкого орешка" и зацепился мой взгляд за дочкину поделку: Я жене и говорю: прямо-таки просится эти белые…

  • Юпитер и Сатурн

    Слишком близко к Солнцу, чтобы что-то получилось, а также слишком разные по яркости, чтобы без обработки их можно было бы снять одновременно.

promo eddy_em august 17, 2019 12:33 3
Buy for 10 tokens
Юра намедни напечатал корпус для хронометра. Для первого блина получилось неплохо: И еще немного фотографий:
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic
  • 13 comments

  • Опять Подорванка смыла мост

    В четверг лило настолько, что, похоже, опять на подорванке забилась стремнина бревнами, а потом внезапно это все прорвало. МЧСовсцы перетаскивали…

  • Diskworld

    Смотрели вчера с женой на кухне "Крепкого орешка" и зацепился мой взгляд за дочкину поделку: Я жене и говорю: прямо-таки просится эти белые…

  • Юпитер и Сатурн

    Слишком близко к Солнцу, чтобы что-то получилось, а также слишком разные по яркости, чтобы без обработки их можно было бы снять одновременно.