Альтернативные методы установки

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Installation alternatives and the translation is 75% complete.
Outdated translations are marked like this.
This article has some todo items:
  • Verify & validate these methods
  • A few more details and references would be helpful
  • Better wording


Данная статья описывает альтернативные способы установки Gentoo, для ситуаций, требующих особого подхода при установке, например, отсутствие CD-ROM/DVD-ROM или невозможность загрузки с компакт-дисков.

Если стандартная установка загрузись-с-CD не работает (её невозможно использовать, либо просто не нравится), то здесь можно найти некоторые подсказки. Данное руководство дает список альтернативных методов установки Gentoo для тех, кому они нужны. Либо, если так больше нравится, это место, где можно разместить нестандартные методы установки. Если знаете метод установки, который считаете полезным, либо нашли удивительный метод установки Gentoo, не стесняйтесь написать что-нибудь о нем здесь, в этой статье.

Установка с помощью не Gentoo LiveCD

Важно
Разработчики Gentoo не смогут предоставить поддержку, если что-то пойдёт не так не с Gentoo LiveCD, поскольку нет возможности исправить, диагностировать и документировать каждую странность каждого LiveCD. Официально поддерживаются только LiveCD Gentoo. Пожалуйста, посетите Форумы Gentoo для получения поддержки от сообщества при возникновении проблем с альтернативными установочными носителями.

Пользователи могут загружать другие LiveCD помимо тех, которые предоставлены Gentoo. Вне зависимости от этого, LiveCD предоставляет функциональную среду для использования во время компиляции и установки Gentoo. Приведённые здесь инструкции в принципе должны работать с практически любым другим LiveCD.

В списке указано очень много LiveCD, но возможно вы захотите попробовать Knoppix. Он имеет полностью графический интерфейс рабочего стола, с офисными приложениями, браузерами и играми, чтобы занять себя. Knoppix доступен только для пользователей x86, так что в зависимости от потребностей пользователя, могут потребоваться другой LiveCD или другой метод установки.

Предупреждение
Имейте в виду, что если что-то сохранено в домашнем каталоге пользователя LiveCD во время ожидания установки системы Gentoo, то это не будет доступно после перезагрузки в Gentoo. Убедитесь, что сохранили важные файлы на жёсткий диск или на какой-нибудь другой компьютер!

Загрузитесь с LiveCD. Откройте терминал и выполните su -, чтобы можно было изменить пароль. Это позволит установить root пароль для CD. Теперь, если потребуется, sshd может быть настроен для удалённого входа. После этого, создайте точку монтирования /mnt/gentoo – это необходимо.

root #mkdir /mnt/gentoo

С этого момента может быть использовано стандартное руководство по установке – Подготовка дисков. Однако, когда будет нужно примонтировать файловую систему proc, выполните следующую команду:

root #mount -o bind /proc /mnt/gentoo/proc

При распаковке архива stage в Распаковке архива stage убедитесь, что используете следующие опции команды tar, чтобы в распакованном stage были применены правильные ID группы:

root #tar --numeric-owner --xattrs -xvJpf stage3-*.tar.xz -C /mnt/gentoo

Если используется Ubuntu, имейте в виду, что /dev/shm – символьная ссылка на /run/shm. Он должен быть связано смонтирован, или необходимо настроить tmpfs в этом расположении (в рамках chroot). Для связанного монтирования пути, выполните следующую команду (перед выполнением chroot):

Когда всё будет готово к выполнению chroot в распакованный stage в Установке базовой системы Gentoo, придётся использовать другую последовательность команд для chroot. Это обеспечивает правильность установки переменных среды.

Заметка
Некоторые LiveCD используют забавные настройки среды, поэтому выполните env -i для её очистки в приемлемое состояние.
root #chroot /mnt/gentoo /bin/env -i TERM=$TERM /bin/bash
root #env-update
root #source /etc/profile
root #export PS1="(chroot) $PS1"

Наконец, учитывайте, что некоторые Portage FEATURES могут не работать в LiveCD. Особенно остерегайтесь значений userpriv и usersandbox. Если случаются ошибки, попробуйте отключить некоторые или все опциональные FEATURES.

Бездисковая установка с использованием PXE с LiveCD

Данный способ проще в настройке, чем PXE-загрузка на основе iSCSI или NFS. Множество машин может загружаться с одинакового набора образов, распространяемых через TFTP, и загрузка запросто может быть расширена для работы по HTTP или по другим протоколам.

Наличие хорошего роутера или роутера, способного запускать такие прошивки с открытым исходным кодом как LEDE (преемник OpenWRT), – один из способов централизировать TFTP и DHCP. Получение прошивки онлайн может оказаться тяжёлым боем в зависимости от вашего опыта.

Некоторые другие дистрибутивы, включая Fedora, уже распространяют образы, необходимые для создания LiveCD или установочного CD. С Gentoo это не так. Вместо этого пользователи должны распаковать файлы из образа ISO.

root #emerge --ask --oneshot app-cdr/cdrtools
КОД Prepare Gentoo in tftproot
mkdir -p /tftpboot/gentoo/
cd /tftpboot/gentoo/
isoname=/tftpboot/ISO-IMAGES/install-amd64-minimal-20210725T170534Z.iso
isoinfo -R -i ${isoname} -X -find -path /boot/gentoo && mv boot/gentoo kernel && rmdir boot
isoinfo -R -i ${isoname} -X -find -path /image.squashfs
# combine initrd + squashfs
(isoinfo -R -i ${isoname} -x /boot/gentoo.igz; (echo image.squashfs | cpio -H newc -o)) > network.igz
rm image.squashfs
ls -lhF kernel network.igz

These instructions may be sufficient for more experienced users. See below for more directions, depending on the PXE flavor in use. There are different PXE boot-codes, but all of them require a kernel and eventually a ramdisk.

Please take a look at PXE page for details on the alternatives, then come back here.

TFTP

Это будет необходимо в связке с DHCP сервером для многих ПК с PXE загрузкой. Но помните, что загрузку iPXE можно использовать без TFTP или DHCP сервера! См. ipxe.org для получения сведений о встраивании сценариев, поэтапной и ручной загрузке. У TFTP загрузки всё же есть такие преимущества как широкий спектр поддерживаемых устройств, поэтому приступим к использованию TFTP!

Установите net-ftp/tftp-hpa, убедитесь, что он предоставляет /tftproot и запустите его.

Теперь загрузочный сервис TFTP готов, поэтому следующим шагом будет настройка сервиса DHCP.

DHCP

Настройка DHCP сервера на одинаковых устройствах возможна – просто убедитесь, что запущенные устройства подключены к нему. Или просто измените настройки существующего роутера.

Ниже находится пример конфигурации сервиса DHCP для OpenWRT:

ФАЙЛ /etc/config/dhcp
config boot linux                   
        option filename boot/grub/i386-pc/core.0
        option servername boot
        option serveraddress 84.246.161.86

С этого момента инструкции меняются в зависимости от того, какой у вас PXE (т.е. GRUB, iPXE).

SYSLINUX

ФАЙЛ /tftproot/pxelinux.cfg/default
label gentoo install (squashfs/http)
  kernel gentoo/kernel
  initrd gentoo/network.igz
  append root=/dev/ram0 init=/linuxrc  dokeymap looptype=squashfs loop=/image.squashfs  cdroot net.ifnames=0

GRUB

ФАЙЛ /tftproot/boot/grub/grub.cfg
menuentry "gentoo install" {
    linux /gentoo/kernel root=/dev/ram0 init=/linuxrc  dokeymap looptype=squashfs loop=/image.squashfs  cdroot net.ifnames=0
    initrd /gentoo/network.igz

iPXE

ФАЙЛ /tftproot/gentoo.ipxe
#!ipxe                                                                    
menu PXE                                                 
item --gap LAN
item gentoo gentoo install (squashfs/http)
 
:gentoo
kernel kernel root=/dev/ram0 init=/linuxrc  dokeymap looptype=squashfs loop=/image.squashfs  cdroot net.ifnames=0 initrd=network.igz
initrd network.igz
boot

Бездисковая установка с использованием PXE загрузки и NFS

Необходимые требования

PXE (Preboot eXecution Environment) ­– это способ загрузки компьютеров через PXE-совместимый сетевой интерфейс (и с использованием BIOS, поддерживающей PXE). В случае если система не поддерживает PXE загрузку на уровне сетевого интерфейса или BIOS, PXE всё равно может быть использован посредством загрузки с блочных устройств (таких как CD или USB). В таких случаях минимальная загрузочная среда имитирует сетевую карту, поддерживающую PXE (см. также Etherboot/gPXE).

Базовая настройка сервера

Создайте каталоги: первое, что нужно сделать — это создать каталоги, в которых будет хранится бездисковая система. Создайте каталог /diskless, в котором будут размещены каталоги для каждого бездискового клиента. В оставшейся части руководства клиент, с которым мы работаем, будет называться 'eta'.

root #mkdir -p /diskless/eta

Настройка DHCP и TFTP: клиент будет получать загрузочную информацию через DHCP и загружать все необходимые файлы по TFTP.

Для dhcpd просто выполните emerge dhcp (или любой другой DHCP сервер по выбору). Убедитесь, что в /etc/conf.d/dhcpd выбран правильный интерфейс и настройте его. Затем добавьте следующее в /etc/dhcp/dhcpd.conf.

Заметка
Это предоставит клиенту статический IP-адрес и путь к загрузочному образу PXE, в данном случае pxegrub. MAC-адрес сетевой карты клиента из примера необходимо заменить на правильный MAC-адрес так же, как и каталог, в котором будут сохранены файлы клиента.
ФАЙЛ dhcpd.conf
option option-150 code 150 = text ;
ddns-update-style none ;
host eta {
hardware ethernet 00:00:00:00:00:00;
fixed-address ip.add.re.ss;
option option-150 "/eta/boot/grub.lst";
filename "/eta/boot/pxegrub";
}

Затем, настройте интерфейс в /etc/conf.d/net так, чтобы от не был очищен во время загрузки. Подробнее см. /usr/share/doc/openrc-*/net.example.bz2.

ФАЙЛ /etc/conf.d/netУбедимся, что интерфейс (здесь, в качестве примера eth0) не будет перенастроен во время загрузки
config_eth0="noop"

Для TFTP, установите пакет net-ftp/tftp-hpa. В файле /etc/conf.d/in.tftpd вставьте следующее:

ФАЙЛ in.tftpd
INTFTPD_PATH="/diskless"
INTFTPD_USER="nobody"
INTFTPD_OPTS="-u ${INTFTPD_USER} -l -vvvvvv -p -c -s ${INTFTPD_PATH}"

Установите GRUB:

root #emerge --ask sys-boot/grub

После установки GRUB, создайте загрузочный каталог для бездисковых клиентов:

root #grub2-mknetdir --net-directory=/diskless/eta

Первоначальный способ заключался в копировании PXE образа на бездисковый клиент, но этот путь, похоже, больше не существует.

root #mkdir /diskless/eta/boot
root #cp /usr/lib/grub/pxegrub /diskless/eta/boot/pxegrub

Далее, отредактируйте конфигурационный файл grub.lst.

root #nano -w /diskless/eta/boot/grub.lst
ФАЙЛ grub.lst
default 0
timeout 30
  
title=Diskless Gentoo
root (nd)
kernel /eta/bzImage ip=dhcp root=/dev/nfs nfsroot=ip.add.re.ss:/diskless/eta
  
# Для опции nfsroot IP-адрес — это адрес сервера, а
каталог  это каталог, в котором расположены файлы бездискового клиента (на сервере).

NFS крайне прост в настройке. Всё, что нужно сделать — это добавить строку в файл /etc/exports:

ФАЙЛ /etc/exports
/diskless/eta eta(rw,sync,no_root_squash)

Сейчас важно сделать одну вещь ­– изменить файл /etc/hosts для соответствия требованиям.

ФАЙЛ /etc/hosts
127.0.0.1 localhost
192.168.1.10 eta.example.com eta
192.168.1.20 sigma.example.com sigma

Создание системы на сервере

Следующий шаг – это перезагрузить сервер с установочного CD Gentoo (хотя опытные администраторы могут продолжать и без этого, если они достаточно хорошо разбираются в установке Gentoo). Следуйте стандартным инструкциям по установке, описанным в Gentoo Handbook, НО с некоторыми отличиями: при монтировании файловой системы, выполните следующий шаг (sdaX – это раздел, в котором создан каталог /diskless).

root #mount /dev/sdaX /mnt/gentoo

Монтирование любых других разделов необязательно, поскольку все файлы будут находиться в каталоге /diskless/eta.

Данный пример использует архив stage3. Примонтируйте /proc к каталогу diskless и выполните chroot, чтобы продолжить установку. Далее следуйте руководству по установке до настройки ядра.

Предупреждение
Будьте внимательны при распаковке stage-архива, чтобы не закончить её поверх существующей установки.
root #cd /mnt/gentoo/diskless/eta/
root #tar -xvjpf /mnt/cdrom/gentoo/stage3-*.tar.bz2
root #mount -t proc /proc /mnt/gentoo/diskless/eta/proc
root #cp /etc/resolv.conf /mnt/gentoo/diskless/eta/etc/resolv.conf
root #chroot /mnt/gentoo/diskless/eta/ /bin/bash
root #env-update
root #source /etc/profile

Во время настройки ядра в make menuconfig не забудьте включить следующие опции вместе с остальными рекомендуемыми в руководстве по установке опциями.

ЯДРО Опции, необходимые для бездисковых установок
- Поддержка устройства сетевой карты
(В ядре, *не* в модуле!)
  
-*- Networking support --->  
  Networking options --->
    [*] TCP/IP networking
    [*] IP: kernel level autoconfiguration
    [*] IP: DHCP support
    [*] IP: BOOTP support
  
File systems --->
  [*] Network File Systems --->
    <*> NFS file system support
    [*] Provide NFSv3 client support
    [*] Root file system on NFS

Сохраните ядро в корне chroot (/) (не в /boot) в соответствии с определённой ранее настройкой pxegrub. Далее настройте /etc/fstab бездискового клиента.

ФАЙЛ /etc/fstab
/dev/cdroms/cdrom0 /mnt/cdrom iso9660 noauto,ro 0 0

Теперь, чтобы предотвратить клиента от запуска проверки файловой системы:

root #touch /fastboot
root #echo "touch /fastboot" >> /etc/conf.d/local.start

Установите net-fs/nfs-utils, поскольку клиент будет сильно от них зависеть:

root #emerge --ask net-fs/nfs-utils

Не устанавливайте другой загрузчик, потому что он уже есть – pxegrub. Просто завершите установку и перезапустите сервер. Запустите сервисы, которые необходимы для загрузки нового клиента: DHCP, TFTPD и NFS.

root #service dhcp start
root #service in.tftpd start
root #service nfs start

Загрузка нового клиента

Для того чтобы новый клиент загрузился должным образом, BIOS и сетевая карта должны быть настроены для использования PXE в качестве первого метода загрузки: перед CD-ROM или дискетой. За помощью в этом обратитесь к руководствам оборудования или сайту производителя. Сетевая карта должна получить IP-адрес по DHCP и загрузить образ GRUB PXE по TFTP. Затем должно появиться красивое чёрно-белое загрузочное меню GRUB, в котором пользователи могут выбрать ядро для загрузки и нажать клавишу Enter (Ввод). Если всё хорошо, ядро должно загрузиться, примонтировать файловую систему по NFS, и предоставить запрос входа в систему. Наслаждайтесь.

Установка Gentoo из уже установленного дистрибутива Linux

Важно
The only fully guaranteed method for installing Gentoo is with the Minimal Install CD. That said, installing from another, recent, Linux environment will usually work just as well. Support will often still be forthcoming using this method, but be ready to revert to the Minimal Install CD, if needed. Of course, in case of issues with other distributions, users will be refered to other channels for help.

Необходимые требования

Чтобы установить Gentoo из существующего дистрибутива Linux, в последнем должна быть установлена команда chroot и потребуется копия установленного Gentoo или предназначенный для установки ISO. Сетевое соединение крайне рекомендуется, поскольку в противном случае можно будет работать только с файлами, доступными на установочном носителе. Кстати, tarball ­– это просто файл, заканчивающийся на .tbz или .tar.gz. Давайте начнём!

Общий обзор

Первым делом, выделите раздел для Gentoo изменением размера существующего раздела Linux, примонтируйте его, распакуйте tar-архив на примонтированный раздел, выполните chroot в псевдосистему и начните установку. Когда закончится процесс первоначальной установки, осуществите некоторые заключительные настройки системы, чтобы быть уверенными в том, что система загрузится, затем перезапустите Gentoo.

Как создать пространство для Gentoo?

Корневой раздел ­– это файловая система, примонтированная к /. Первый пример показывает вывод mount в системе. Второй пример использует df (disk free), чтобы узнать, сколько места осталось и насколько изменять размер. Заметьте, что изменение размера корневого раздела необязательно! Размер чего-нибудь другого из поддерживаемого тоже можно изменить, но об этом позже.

root #mount
/dev/sdb2 on / type ext3 (rw)
none on /proc type proc (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
none on /dev/shm type tmpfs (rw,nodev,nosuid,noexec)
root #df -h
Filesystem           Size Used Avail Use% Mounted on
/dev/sdb2            4.0G 1.9G  2.4G  82% /
none                  38M    0   38M   0% /dev/shm

Как видите, раздел, смонтированный как / с именем /dev/sdb2, имеет 2,4 ГБ свободного места. В данном случае было решено изменить его размер, чтобы оставить 400 МБ свободного места, таким образом выделив 2 ГБ для Gentoo. Неплохо, там может быть установлено довольно много всего. Однако, 1 ГБ считается достаточным для большинства пользователей. Итак, разделяйте и властвуйте!

Использование parted для изменения размера раздела

sys-block/parted is extremely useful for resizing partitions. It is included on the Minimal installation CD.

Заметка
There are other tools for doing resize of partitions as well, but an elaborate description of these tools is outside the scope of this guide.

Look up on that page the type of file system to resize and see if parted can do it. If not, some partitions might need to be destroyed to make space for Gentoo. Go ahead downloading the software and install it. In the next step, a problem arises: the Linux root partition needs to be resized, therefore a boot medium with a minimal Linux system must be booted in order to resize /. If the partition can be unmounted while still running in Linux then the following steps are not needed. Just install sys-block/parted and run it on a chosen unmounted partition to resize. Here's how it was done on this system.

Важно
Make sure that the operations that are required for partitioning are supported by parted!
Заметка
Note again that Linux is synonym of "There's one more way to do it". The objective is to run parted on an unmounted partition so it can do its work. This step might not even be needed to do at all: there may only be the need to umount the filesystem to repartition in the Linux session and run parted on it.

Time to reboot and resize the partition. Do this only after taking a quick look at the parted documentation on the GNU website. The resize can be long for large hard-drives, be patient. Reboot the system with the Minimal installation CD. Run parted to be able to resize the partition. Once this lengthy process is done, continue with installing Gentoo. Reboot back into the old Linux system for now. The drive to operate on is the drive containing the partition that is going to be resized. For example, if the partition to be resized is /dev/sda3, the drive is /dev/sda.

root #parted
(parted)print
Disk geometry for /dev/sdb: 0.000-9787.148 megabytes
Disk label type: msdos
Minor    Start       End     Type      Filesystem  Flags
1          0.031   2953.125  primary   ntfs
3       2953.125   3133.265  primary   linux-swap
2       3133.266   5633.085  primary   ext3
4       5633.086   9787.148  extended
5       5633.117   6633.210  logical
6       6633.242   9787.148  logical   ext3
(parted)help resizepart
  resizepart NUMBER END                    resize partition NUMBER

        NUMBER is the partition number used by Linux.  On MS-DOS disk labels, the primary partitions
        number from 1 to 4, logical partitions from 5 onwards.
        END is disk location, such as 4GB or 10%.  Negative value counts from the end of the disk.
        For example, -1s specifies exactly the last sector.
(parted)resizepart 2 3133.266 4000.000
Важно
Будьте терпеливы! Компьютер работает! Просто взгляните на индикатор работы жёсткого диска, чтобы убедиться в его активности. Процесс может занять от 2 до 30 минут.

Once the resize has finished, boot back into the old Linux as described. Then go to The Gentoo Handbook: Preparing the Disks and follow the instructions.

Chrooting

When chrooting, use the following command to flush the environment:

root #env -i HOME=$HOME TERM=$TERM chroot /mnt/gentoo /bin/bash
root #/usr/sbin/env-update
root #source /etc/profile

Наслаждайтесь!

Смотрите также


This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Gerald Normandin Jr., Travis Tilley, Oleg Raisky, Alex Garbutt, Alexandre Georges, Magnus Backanda, Faust A. Tanasescu, Daniel Ahlberg, Ken Nowack, Tiemo Kieft, Benny Chuang, Jonathan Smith, and
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.