Установка Linux Gentoo на виртуальный сервер (VDS)
Почему люди выбирают Gentoo? Потому, что его можно сделать самым быстрым из всех дистрибутивов. Он относится к source-based linux distributions — все программы, в том числе и система устанавливаются из исходников, которые можно скомпилировать конкретно под ваш процессор, используя все его функции. За счет этого повышается скорость работы.
Установка Gentoo Linux — это длительный процесс. Загружаемся с LiveCD и проверяем интернет:
Во время загрузки система попытается подключиться по DHCP, если у вас статический IP адрес, тогда нужно его прописать с помощью команды ifconfig, а DNS прописать в /etc/resolv.conf.
Настройка сети вручную
Данные для настройки сети можно почерпнуть у администратора, а в качестве DNS-сервера использовать любой доступный публичный (например, 8.8.8.8).
livecd ~# ifconfig eth0 ваш_ip_адрес netmask маска_подседи up
livecd ~# route add default gw ip_адрес_шлюза
livecd ~# echo "nameserver 8.8.8.8" > /etc/resolv.conf
Устанавливаем пароль для root:
Запускаем демон SSH:
и подключаемся по SSH к LiveCD, используя пароль, указанный выше. Посмотреть IP адрес можно, указав команду ifconfig.
Затем необходимо разбить диск. Для этого можно воспользоваться утилитой fdisk. Предположим, что мы разбили диск на 2 раздела: /root и swap. Теперь необходимо отформатировать разделы. При помощи команды mkfs, форматируем раздел, в указанную после точки файловую систему. Атрибут -L задает метку разделу.
При помощи команды mkswap форматируем раздел подкачки (swap):
Командой swapon подключаем раздел подкачки:
Далее необходимо подключить (смонтировать) корневой раздел командой mount. Монтируем раздел root в каталог /mnt/gentoo:
Переходим в каталог /mnt/gentoo:
Скачиваем сюда файлы. Воспользуемся консольным браузером links. Открываем его и выбираем mirrors (стрелкой вниз), подходящее зеркало (например, bloodhost.ru). Затем выбираем «releases», нужную архитектуру, например «amd64», autobuilds, current-stage3-amd64-… и выбираем stage3-….tar.xz.
Для того, чтобы скачать, нажимаем «d», после загрузки, чтобы выйти из браузера links, нажимаем букву «q». Смотрим, что у нас:
lost+found stage3-amd64-nomultilib-….tar.xz
Распаковываем:
Убедитесь, что в команде указаны те же самые параметры (xpf и --xattrs-include='*.*'). x указывает на извлечение (extract), p для сохранения (preserve) прав доступа и f для обозначения, что мы хотим извлечь файл (file), а не стандартный ввод. --xattrs-include='*.*' позволит также сохранить расширенные атрибуты во всех пространствах имён, хранящиеся в архиве. Наконец, --numeric-owner используется для того, чтобы убедиться, что идентификаторы пользователей и групп распаковываемых файлов останутся такими же, как и задумывались командой Gentoo.Примечание
Выбираем зеркало для установки:
Копируем информацию о DNS. DNS адреса хранятся в файле «/etc/resolv.conf».
Монтируем необходимые необходимые файловые системы:
livecd gentoo # mount --rbind /sys /mnt/gentoo/sys
livecd gentoo # mount --make-rslave /mnt/gentoo/sys
livecd gentoo # mount --rbind /dev /mnt/gentoo/dev
livecd gentoo # mount --make-rslave /mnt/gentoo/dev
livecd gentoo # mount --bind /run /mnt/gentoo/run
livecd gentoo # mount --make-slave /mnt/gentoo/run
Параметр --make-rslave необходим для дальнейшей поддержки systemd в ходе установки.
С помощью chroot, изменяем корневой каталог с «/» на «/mnt/gentoo»:
Вы в новой системе. Перезагрузим настройки /etc/profile в память, с помощью source и для понятности изменим командную строку:
livecd / # export PS1="(chroot) ${PS1}"
Если установка Gentoo будет случайно прервана где-то далее после этой точки, то можно «продолжить» установку с последнего состояния. Не нужно разбивать диск снова. Просто смонтируйте корневой раздел снова и проделайте предыдущие шаги, начиная с копирования информации о DNS.
Устанавливаем последний снимок (которые выпускаются каждый день) с одного из зеркал Gentoo и распакуем его в системе:
Посмотрим, какие профили доступны в системе (вывод команды является примером и может меняться время от времени).
Available profile symlink targets:
[2] default/linux/amd64/13.0/selinux
[3] default/linux/amd64/13.0/desktop
…
[10] default/linux/amd64/13.0/developer
[11] default/linux/amd64/13.0/no-multilib
…
Выбираем нужный нам вариант, например 11:
При использовании systemd, пожалуйста, убедитесь, что название профиля содержит слово systemd. И наоборот, при использовании OpenRC, убедитесь, что названия профиля не содержит слово systemd.
Часовой пояс и язык
Настроим часовой пояс. Посмотреть варианты можно компандой ls /usr/share/zoneinfo, предположим, что мы в Москве.
Перенастроим пакет timezone-data, что обновит файл /etc/localtime, основываясь на записи в /etc/timezone. Файл /etc/localtime используется системной библиотекой C, чтобы узнать, в каком часовом поясе находится система.
Отредактируем «locale».
Добавим в файл «locale.gen» русский.
en_US ISO-8859-1
en_US.UTF-8 UTF-8
ru_RU.UTF-8 UTF-8
Генерируем locale.
Проверить выбранные локали можно, запустив команду locale -a.
Оптимизация компиляции
Отредактируем файл make.conf, указав соответствующие параметры оптимизации.
Укажем текущую архитектуру процессора. Добавляем в CFLAGS параметр -march=native. Указание используемой архитектуры важно для производительности. Чтобы задействовать все процессоры или ядра системы при компиляции, необходио добавить (или изменить) строку MAKEOPTS="-jn", где n — количество процессоров (ядер) в вашей системе плюс один.
Далее, в этом же файле, можно настроить переменную «USE». Эта переменная содержит флаги, которые управляют поведением сборки устанавливаемых пакетов. Список всех значений можно посмотреть здесь. Например, если вы не используете IPv6, можно указать собирать пакеты без поддержки IPv6, дописав в USE флаг «-ipv6». Флаг bindist лушче убрать (если есть). Например:
USE="-ipv6 -debug"
Для экономии места можно отказаться от установки всевозможной документации к пакетам, указав в этом же файле:
FEATURES="nodoc noinfo noman"
Укажем более тонкую оптимизацию для CPU (amd64 архитектура). В файле /etc/portage/make.conf закомментируем (поставим «#») CPU_FLAGS_X86.
#CPU_FLAGS_X86="…"
Установим cpuid2cpuflags:
Добавим вывод cpuinfo2cpuflags-x86 (установится именно с таким именем) в файл /etc/portage/make.conf:
В редакторе nano можно открыть его и посмотреть изменения.
Установка ядра Gentoo Linux
С помощью команды «emerge» устанавливаем исходные коды Gentoo Linux.
Устанавливаем genkernel — утилиту для автоматизации процесса сборки ядра и initramfs:
Редактируем «fstab»:
fstab — конфигурационный файл, в котором указываются точки подключения разделов, порядок подключения, который хранит информацию о разделах дисков и файловых системах. Он может быть таким:
# NOTE: If your BOOT partition is ReiserFS, add the notail option to opts. # # NOTE: Even though we list ext4 as the type here, it will work with ext2/ext3 # filesystems. This just tells the kernel to use the ext4 driver. # # NOTE: You can use full paths to devices like /dev/sda3, but it is often # more reliable to use filesystem labels or UUIDs. See your filesystem # documentation for details on setting a label. To obtain the UUID, use # the blkid(8) command.
/dev/sda1 / ext4 noatime 0 1 /dev/sda2 none swap sw 0 0
Компилируем ядро, предварительно его настроив:
Одно из преимуществ source-based дистрибутивов — это возможность без особых хлопот перекомпилировать всю систему. Компиляция одно ядра не даст 100% прирост производительности, т. к. интенсивно используются различные системные библиотеки, не входящие в ядро.
Обновляем, перекомпилируем и пересобираем Gentoo в соответствии с нашими параметрами оптимизации.
Это самый долгий процесс, может занять часа 2–3 и больше.
Настройка сети и необходимого минимума
Назовём свой компьютер, например, «tux» (будет выводиться в приглашении командной строки):
# Устанавливаем переменную hostname в выбранное значение имени узла
hostname="tux"
Установим минимум необходимых программ. Если IP адрес получается по DHCP, добавьте dhcpcd.
Настроим интернет. Создадим файл net.
Для автоматического получения IP (DHCP), добавим такую строчку:
config_eth0="dhcp"
Для статического IP адреса, прописываем следующие (указав свои данные):
config_eth0="192.168.0.2 netmask 255.255.255.0 brd 192.168.0.255"
routes_eth0="default via 192.168.0.1"
eth0 — это имя сетевой карты, у вас может быть другим, чтобы посмотреть доступные сетевые интерфейсы, наберите команду ifconfig.
Чтобы сетевые интерфейсы запускались при загрузке, нужно сделать следующие:
livecd init.d # ln -s net.lo net.eth0
livecd init.d # rc-update add net.eth0 default
livecd init.d # cd /
Установим самый главный пароль для пользователя «root», набрав:
При вводе пароля «root», пароль не отображается.
Дальше, установим раскладку клавиатуры:
Найдем строчку keymap="us" и заменим на keymap="-u ru".
Настроим часы. Введем значение clock="local":
Также можно настроить /etc/rc.conf, но пока оставим как есть.
Добавляем в автозагрузку журналирование (syslog) и планировщик задач (cron):
livecd / # rc-update add cronie default
livecd / # rc-update add dhcpcd default
Последняя строчка нужна, если вы используете DHCP.
Настройка загрузчика GRUB
Установим загрузчик GRUB:
Генерируем файл grub.cfg:
Установка Gentoo Linux закончена. Удаляем архив, скачанный в начале установки:
Выходим из среды «chroot» и перезагружаемся.
livecd gentoo # reboot
После перезагрузки, войдем в систему под суперпользователем root. Пароль для пользователя root мы ввели во время установки командой «passwd».