Установка Gentoo · 9 min read · Feb 06, 2026
Идеальный сервер - Gentoo 2007.0 - Страница 2
3 Базовая система
3.1 Загрузка установочного диска
Вставьте ваш CD с минимальной установкой Gentoo в систему и загрузитесь с него. Вы можете установить некоторые параметры в загрузчике, но если просто оставить как есть, он продолжит и загрузит Linux самостоятельно.

(По умолчанию будет использоваться консоль с кадровым буфером, но в интересах меньших скриншотов я изменил опцию на использование VGA, нажав F1 и выбрав ядро gentoo-nofb.)
На экране будет прокручиваться множество текста, пока ядро загружается и установочный CD обнаруживает ваше оборудование. Затем вам будет предложен выбор раскладки клавиатуры.

Если вы используете клавиатуру США, вы можете просто оставить как есть или нажать Enter, и этот запрос истечет с этим выбором. Я живу в Британии, поэтому мне нужна раскладка uk.
Больше текста прокручивается…

Пока вы не окажетесь на приглашении root.

Скорее всего, он нашел DHCP-сервер во время обнаружения, и вы уже подключены к интернету. Однако мы хотим сразу указать свой собственный IP-адрес, поэтому мы вводим,
net-setup eth0И проходим через параметры по мере необходимости:









Теперь вы снова на приглашении root, как предложено, вы можете просто проверить, что ваша сеть работает нормально.
ifconfig
И любые другие команды, которые вы хотите выполнить, чтобы убедиться, что у вас есть интернет-соединение. Например (из справочника Gentoo):
ping -c 3 www.gentoo.orgТеперь временно установите ваше имя хоста. Мы будем считывать это позже, чтобы автоматизировать некоторые последующие этапы установки.
hostname server1.example.com3.2 Вход в установочную среду удаленно
Установите пароль root. Это только для системы установки, а не для окончательной установленной системы:
passwdИ запустите sshd:
/etc/init.d/sshd startБудут созданы ключи хоста, и демон sshd будет запущен. Теперь вы можете войти в систему установки с удобством вашего обычного терминального приложения на вашем компьютере. Очевидно, если вы предпочитаете или должны, вы можете пропустить этот шаг и продолжить использовать консоль.
ssh [email protected]Очевидно, это будет работать только если server1.example.com разрешается в вашей системе.

3.3 Настройка системного диска
Эта часть, вероятно, будет очень отличаться на других архитектурах. Обратитесь к справочнику Gentoo, если вы не на x86 или amd64, или если вы хотите сделать что-то другое, кроме предложенной по умолчанию схемы разбиения в справочнике x86.
Чтобы разбить диск, используйте parted. Мы просто собираемся сразу настроить предложенную схему разбиения Gentoo, и parted позволяет нам сделать это так, чтобы это можно было кратко показать в тексте:
parted /dev/hdaВы получите приглашение (parted). На этом приглашении введите следующие команды:
mklabel msdos
mkpartfs primary ext2 0 32
mkpartfs primary linux-swap 32 545
mkpart primary 545 -0
set 1 boot on
printВы должны увидеть что-то вроде:
Disk /dev/hda: 5906MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 32.3kB 32.9MB 32.9MB primary ext2 boot
2 32.9MB 545MB 512MB primary linux-swap
3 545MB 5906MB 5361MB primary
(parted) Введите quit, чтобы выйти и сохранить изменения.
Мы уже создали файловые системы ext2 и swap на разделах 1 и 2, поэтому мы просто хотим создать файловую систему ext3 на разделе 3.
mke2fs -j /dev/hda3И давайте включим swap для нашей установочной среды:
swapon /dev/hda2И смонтируем файловую систему, на которую мы собираемся установить.
mount /dev/hda3 /mnt/gentoo
mkdir /mnt/gentoo/boot
mount /dev/hda1 /mnt/gentoo/boot3.4 Подготовка к Stage 3
Подтвердите, что дата и время правильные для вашей системы. Если нет, это может вызвать путаницу позже.
dateThu Aug 30 13:58:36 UTC 2007Что действительно, на момент, когда я это делал, было немного неправильно, так что исправьте это что-то вроде:
date 083013542007Теперь нам нужно скачать Stage 3 Tarball и снимок Portage. Вместо того чтобы возиться с ссылками или lynx, давайте просто используем несколько команд:
mirrorselect --interactive --output > /tmp/mirror
Выберите любые зеркала, которые подходят вам, и выберите OK. Когда вы выйдете, строка будет записана в /tmp/mirror с вашими выборами. Нам нужно только первое, так что:
source /tmp/mirror
MIRRORS=($GENTOO_MIRRORS)
MIRROR=${MIRRORS[0]}
cd /mnt/gentoo
wget ${MIRROR}releases/x86/current/stages/stage3-$(arch)-2007.0.tar.bz2 \
|| wget ${MIRROR}releases/x86/current/stages/stage3-x86-2007.0.tar.bz2
wget ${MIRROR}snapshots/portage-latest.tar.bz2На самом деле нет надежного способа определить архитектурно-специфические части вышеуказанного URL stage3, поэтому, если вы не на x86, обратитесь к справочнику Gentoo.
Распакуйте stage tarball.
tar --extract --verbose --bzip2 --preserve-permissions --file stage3-*.tar.bz2Распакуйте снимок portage.
tar --extract --verbose --bzip2 --file portage-latest.tar.bz2 --directory /mnt/gentoo/usrТеперь вы можете удалить эти загрузки, если у вас недостаточно места.
rm portage* stage*Теперь я собираюсь сделать что-то почти еретическое для сообщества Gentoo и оставить etc/make.conf в покое! Это файл, в котором настраиваются такие вещи, как CFLAGS, и где вы можете установить его так, чтобы он был оптимальным, как вам угодно. Я не собираюсь его трогать. Вам следует хотя бы проверить его на адекватность. Если он неадекватен, возможно, вы загрузили неправильный файл stage. В частности, на x86 флаг -mtune=i686 установлен по умолчанию даже в обычном файле stage3 x86, что может быть неуместно, если вы устанавливаете на старое оборудование. Но, используя $(arch), мы надеемся избежать подобных проблем.
vi /mnt/gentoo/etc/make.confМы просто собираемся добавить некоторую информацию, которая нам нужна. Во-первых, зеркала, с которых Gentoo будет загружать себя. Мы уже один раз получили зеркала для загрузки, так что, чтобы не выбирать их снова, мы возьмем этот выбор и добавим выбор для зеркала rsync.
cat /tmp/mirror >> /mnt/gentoo/etc/make.conf
mirrorselect --interactive --rsync --output >> /mnt/gentoo/etc/make.conf
Теперь мы собираемся скопировать некоторые вещи в /mnt/gentoo, чтобы войти в chroot и продолжить установку. Мы также скопируем текущую сетевую конфигурацию, чтобы установленная система имела то же самое. Этот небольшой скрипт запишет текущую конфигурацию eth0 в новый формат /etc/conf.d/net.
#!/bin/bash
cat /etc/resolv.conf > /mnt/gentoo/etc/resolv.conf
echo "HOSTNAME=\"$(hostname -f)\"" > /mnt/gentoo/etc/conf.d/hostname
eth0=$(ifconfig eth0 | grep "inet addr")
ip=$(echo $eth0 | cut -f2 -d' ' | cut -f2 -d:)
broadcast=$(echo $eth0 | cut -f3 -d' ' | cut -f2 -d:)
netmask=$(echo $eth0 | cut -f 4 -d' ' | cut -f2 -d:)
gw=$(route -n | grep -e '^0.0.0.0' | unexpand -a | cut -f3)
nservers=$(grep -e '^nameserver' /etc/resolv.conf | cut -f2 -d' ')
sdomains=$(grep -e '^search' /etc/resolv.conf | cut -f2- -d' ')
echo 'modules=( "ifconfig" )' > /mnt/gentoo/etc/conf.d/net
echo "config_eth0=( \"${ip} netmask ${netmask} broadcast ${broadcast}\" )" >> /mnt/gentoo/etc/conf.d/net
echo "routes_eth0=( \"default via ${gw}\" )" >> /mnt/gentoo/etc/conf.d/net
echo "dns_domain_eth0=\"$(hostname -d)\"" >> /mnt/gentoo/etc/conf.d/net
echo "dns_servers_eth0=\"${nservers}\"" >> /mnt/gentoo/etc/conf.d/net
if [ -n "$sdomains" ] ; then echo "dns_search_eth0=\"${sdomains}\"" ; fi >> /mnt/gentoo/etc/conf.d/netПосле этого /mnt/gentoo/etc/conf.d/net должно выглядеть так, с правильными значениями, конечно.
modules=( "ifconfig" )
config_eth0=( "192.168.1.5 netmask 255.255.255.0 broadcast 192.168.1.255" )
routes_eth0=( "default via 192.168.1.1" )
dns_domain_eth0="example.com"
dns_servers_eth0="192.168.1.1"Использование этого формата заставит скрипт инициализации сети Gentoo использовать данные в нем для записи нового /etc/resolv.conf, а также для настройки самой сети, так что в будущем будет только один файл, который нужно поддерживать в актуальном состоянии. (Мы скопировали /etc/resolv.conf системы установки чисто для использования в среде chroot, пока не загрузим установленную систему.)
Сделав это, мы можем завершить подготовку к chroot и войти.
3.5 Необязательно: Временная установка vim в среду Stage3
Система Gentoo Stage 3 не имеет vi. Вместо этого по умолчанию используется включенный редактор nano. Если вы действительно предпочитаете иметь vi, сделайте следующее сейчас:
VIM=$(which vim)
VIMDIR=$(dirname ${VIM})
cp --dereference ${VIM} /mnt/gentoo${VIM}
ln --symbolic ${VIM} /mnt/gentoo$(dirname ${VIM})/vi(Библиотеки, от которых он зависит, уже на месте.)
Тем не менее, дальнейшие инструкции будут предполагать, что вы не сделали этого. Если вы сделали, вы достаточно умны, чтобы заменить команду, которую хотите.
3.6 Вход в chroot среду Stage3
mount -t proc none /mnt/gentoo/proc
mount -o bind /dev /mnt/gentoo/dev
chroot /mnt/gentoo /bin/bash
env-update
source /etc/profile
export PS1="(chroot) $PS1"Теперь, когда мы в chroot среде, мы собираемся обновить portage до текущего состояния.
emerge --syncЕсли вас беспокоит использование консоли машины, вы можете установить раскладку клавиатуры в /etc/conf.d/keymaps. В противном случае вы можете оставить как есть.
nano --nowrap /etc/conf.d/keymapsТеперь мы устанавливаем наш часовой пояс. Ознакомьтесь с содержимым /usr/share/zoneinfo, чтобы увидеть, какой часовой пояс использовать. (Мы не будем изменять USE или профиль make по умолчанию.) Например,
cp /usr/share/zoneinfo/Europe/London /etc/localtimeУстановите часовой пояс в /etc/conf.d/clock. Просто установите переменную TIMEZONE в тот файл, который вы скопировали в /etc/localtime ранее. Например,
nano --nowrap /etc/conf.d/clockTIMEZONE="Europe/London"(Не забудьте раскомментировать строку.)
Вам может потребоваться установить CLOCK на local. Обычно это не требуется, но это обычно необходимо, если вы устанавливаете в VMWare и, возможно, в других виртуальных средах.
3.7 Установка ядра
emerge gentoo-sourcesМы просто собираемся сделать установку genkernel, чтобы установить стандартное ядро Gentoo. Это отчасти для простоты этого руководства. Если вы уверены в сборке собственных ядер, сделайте это, следуя примечаниям справочника Gentoo в главе 7.
emerge genkernel
zcat /proc/config.gz > /usr/share/genkernel/x86/kernel-config-2.6Вторая команда копирует конфигурацию ядра установочного диска, чтобы стать нашим текущим ядром. Если мы дошли до этого момента, это хорошая ставка, что эта конфигурация ядра работает для нас.
Здесь мы можем сократить что-то и сэкономить себе более сложный шаг позже. Мы хотим добавить поддержку квот в конфигурацию ядра. Что мы сделаем здесь, так это добавим это в файл шаблона конфигурации, который использует genkernel, чтобы мы не потеряли изменение при обновлении ядра.
nano --nowrap /usr/share/genkernel/x86/kernel-config-2.6Найдите # CONFIG QUOTA is not set и измените его на следующее (добавив две последующие строки):
CONFIG_QUOTA=y
# CONFIG_QFMT_V1 is not set
CONFIG_QFMT_V2=y Затем мы можем продолжить:
genkernel allЭто может занять некоторое время. Он строит поддержку для всего. Я говорил, что это будет универсальная сборка Gentoo.
Примечание: если вы устанавливаете на диск SCSI или SATA, лучше на этом этапе сделать,
genkernel --menuconfig allи выбрать соответствующий низкоуровневый драйвер для интерфейса SCSI или SATA, к которому подключен ваш системный диск, чтобы он был скомпилирован в монолитное ядро, а не как модуль. Я полагаю, это должно работать, если вы этого не сделаете (загрузка модуля драйвера из initrd так же, как и установочный диск), но в настоящее время это, похоже, не так.
3.8 Настройка файловых систем
nano --nowrap /etc/fstabПредполагая, что вы находитесь на той же схеме разбиения, что и я, т.е.: следуя этому руководству, замените /dev/BOOT на /dev/hda1; /dev/ROOT на /dev/hda3; и /dev/SWAP на /dev/hda2. Измененный файл должен выглядеть так:
[...]
#
# ЗАМЕТКА: Если ваш BOOT раздел является ReiserFS, добавьте опцию notail к opts.
/dev/hda1 /boot ext2 noauto,noatime 1 2
/dev/hda3 / ext3 noatime 0 1
/dev/hda2 none swap sw 0 0
/dev/cdrom /mnt/cdrom audo noauto,ro 0 0
#/dev/fd0 /mnt/floppy auto noauto 0 0
[...] 3.9 Запуск сети при загрузке.
rc-update add net.eth0 default
rc-update add hostname default3.10 Установка системных служб
emerge syslog-ng vixie-cron
rc-update add syslog-ng default
rc-update add vixie-cron default3.11 Загрузчик
emerge bootloaderЭто установит загрузчик по умолчанию для вашей архитектуры. Следующее предполагает, что вы находитесь на x86 или amd64 и что этот загрузчик - grub. Поскольку это ультра-универсальная установка ПК, мы собираемся обмануть и просто записать его. Если остальная часть этого руководства подходит для вашей системы, то и это должно; в противном случае обратитесь к справочнику Gentoo, глава 10.
echo -e "default 0\ntimeout 5\n\ntitle=GentooLinux\nroot (hd0,0)" > /boot/grub/grub.conf
echo "kernel `ls /boot/kernel*` root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/hda3 udev" >> /boot/grub/grub.conf
echo "initrd `ls /boot/initramfs*`" >> /boot/grub/grub.conf
grep --invert-match rootfs /proc/mounts > /etc/mtab
grub-install --no-floppy /dev/hda3.12 Завершение и перезагрузка
rc-update add sshd default
passwdИ задайте пароль root. Таким образом, мы сможем войти позже, не заходя в консоль. Предполагая, что все сработало.
Выйдите из chroot и перезагрузите.
exit
cd
umount /mnt/gentoo/boot /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo
rebootКонечно, вам может потребоваться удалить CD из привода. Это будет зависеть от вашего порядка загрузки; но вы можете избавиться от него; он больше не нужен.
Get new posts in your inbox
No spam. Unsubscribe anytime.