|
Bog BOS: anaconda - программа установки дистрибутивов Red Hat
|
Последнее изменение файла: 2024.04.03
Скопировано с www.bog.pp.ru: 2024.11.23
Bog BOS: anaconda - программа установки дистрибутивов Red Hat
При установке дистрибутива семейства Red Hat (RHEL, Fedora, CentOS, CentOS Stream, Rocky Linux,
Oracle Linux, AlmaLinux, VzLinux, SUSE Liberty, EuroLinux) используется система Anaconda,
которая представляет собой специализированную систему Linux, запускаемую непосредственно с установочного носителя (live).
Anaconda также позволяет отремонтировать установленную систему (Rescue).
Оператор может выбрать устройство и образ загрузки.
Загрузчик BIOS (ISOLINUX) или UEFI (GRUB2)
использует выбранное устройство и образ для загрузки и запуска ядра Linux, которому предоставляется корневая файловая система в формате initrd.
Корневая файловая система должна содержать все необходимые для работы с оборудованием модули
и окружение периода выполнения, в частности может обеспечивать работу клиента X и сервера VNC.
Предустановленная в корневую файловую систему Anaconda позволяет указать
Далее форматируются указанные оператором файловые системы (поддерживается программный RAID,
LVM2, iSCSI,
multipath) и устанавливается указанное ПО из дистрибутива.
Протокол установки записывается в файл /root/anaconda-ks.cfg в виде,
готовом для автоматической установки (kickstart),
рекомендуется проверять его перед использованием (в частности, вставляет "selinux --enforcing"),
в RHEL7 и выше также записывается original-ks.cfg и initial-setup-ks.cfg.
В ходе установки пишутся многочисленные журналы (в новом стиле).
Написана на Python 2 (Python 3?) и GTK+ 3, используется dracut (опции обрабатываются там; dracut.cmdline(7)) и systemd.
Изменения (кастомизация) в программе установки доступны в виде изменённых установочных ISO образов (образы DVD ISO и Boot ISO):
меню загрузки (фон, цвета, опции по умолчанию), графический интерфейс (лого, фон), дополнения (новые экраны и команды kickstart).
Оформляются в виде файла product.img (cpio.gz), который Anaconda загружает из каталога images/ установочного образа.
Также его можно указывать с помощью опции загрузки inst.updates (USB, SATA, HTTP, FTP, NFS).
При сетевой загрузке установщика с использованием PXE меню загрузки можно сделать самостоятельно
(BIOS из BaseOS/x86_64/os/isolinux/isolinux.cfg, UEFI из BaseOS/x86_64/os/EFI/BOOT/grub.cfg).
Также в момент установки можно предоставить модули ядра для нестандартного оборудования в виде ISO образа, содержащего rpm.
В основном, это требуется для блочных и сетевых устройств, без которых невозможен доступ к дереву файлов установки или используемому устройству хранения.
При первой загрузке установленной системы может запускаться
процедура начальной установки (ранее firstboot): предъявление EULA, создание учётных записей.
Также возможно изменение многих настроек ("firstboot --reconfig" в kickstart).
Имеются графические и текстовые варианты.
Возможные загрузочные устройства:
- дистрибутивный DVD-ROM (isos/дистрибутив-версия-x86_64-dvd1.iso)
- загрузочный CD-ROM (isos/дистрибутив-версия-boot.iso - небольшой ISO образ, содержащий только загрузчик и систему установки без пакетов;
в дальнейшем потребуется указать источник пакетов)
- USB Mass Storage (нужно записать .iso образ дистрибутивного DVD или загрузочного CD с помощью dd; прощай разделы!)
- те же устройства в UEFI режиме (BOOTX64.efi, grubx64.efi), в частности
- сетевая загрузка (см. настройка PXE сервера для BIOS или UEFI);
требуется минимум 2ГБ ОП
Перед установкой необходимо скачать выбранные ISO-образы CD или DVD,
проверить контрольные суммы (можно использовать checkisomd5 из пакета anaconda-runtime (пакета isomd5sum),
который проверяет встроенную в ISO контрольную сумму, или md5sum/sha1sum и дополнительный файл с сайта производителя)
и записать на болванки или USB диск (dd) или развернуть дерево файлов для локального
использования или на сервере FTP, HTTP или NFS (образы установщика, пакеты, .treeinfo и repodata).
В RHEL7 ко всем именам опций добавлена приставка "inst.", в RHEL8 она стала обязательной.
Предусмотрены следующие типы интерфеса общения оператора с программой установки
- графический интерфейс с использованием мышки и клавиатуры (используется по умолчанию), опции:
- inst.graphical (требуется указать явно при установке по сети, 800x600)
- inst.xdriver=имя-драйвера (указать явно имя видеодрайвера (fbdev, vesa, nouveau, intel, modesetting),
будет использоваться как при установке, так и во время работы)
- inst.usefbx (синоним: xdriver=fbdev)
- {inst.resolution=1280x800 | vga=VESA-режим | vga=ask} (в любом случае, небольшое окно в левом верхнем углу,
но хотя бы шрифт не расплывается)
- inst.xtimeout=секунд (максимальное ожидание запуска X сервера)
- lowres (режим 640x480)
- video=режим
- inst.vnc inst.vncport=5901 inst.vncpassword=пароль (режим Direct (соединение устанавливает vnc-клиент); запускается vnc-сервер, который позволяет производить
удалённую установку в графическом режиме с помощью vncviewer;
разрешено одновременное подключение нескольких клиентов;
установленная система будет загружаться в текстовом режиме;
предварительно запрашивается язык, раскладка и настройка сети)
- inst.vnc inst.vncpassword=пароль inst.vncconnect=адрес-консоли:порт (режим Connect (соединение устанавливает vnc-сервер); подсоединиться
к указанной консоли (запуск: "vncviewer -listen") для удалённой установки;
необходимо открыть порт (по умолчанию 5900) в сетевом экране; пароль передаётся в открытом виде)
- display=адрес:номер-экрана (предварительно разрешить допуск командой xhost; удалено в RHEL7)
- inst.noninteractive (настройки задаются в файле kickstart или в командной строке)
- текстовый интерфейс (типа curses - действуют стрелки, Tab и Shift-TAB, пробел (пометить выбор),
Enter (нажать текущую кнопку), F12 (нажать кнопку OK), "+" и "-" (развернуть список)),
нельзя настроить непростые методы хранения (LVM, RAID, FCoE, iSCSI) и нестандартную таблицу разделов
(но можно выйти в соседнюю консоль - Ctrl-Alt-F2 - и сделать самому),
нельзя настроить расположение загрузчика и список пакетов, при установке действует только английский язык и раскладка клавиатуры US
(настройки языка и клавиатуры действуют на установленную систему), параметры:
- inst.text [utf8] (установка в текстовом режиме, в RHEL7 - utf8 всегда)
- serial (использовать терминал на последовательном порту вместо монитора; удалён в RHEL7)
- console=ttyS0 (использовать терминал на последовательном порту вместо монитора, можно использовать несколько раз,
загрузчик пишет на все, anaconda - на последний)
- text telnet (запускается сервер telnet (без пароля!), который позволяет производить
удалённую установку в текстовом режиме; его не удалили?)
- автоматическая установка kickstart (опции inst.ks, inst.ks.sendmac, inst.ks.sendsn, inst.ksstrict, inst.ks.all)
- inst.cmdline (настройки задаются в файле kickstart или в командной строке)
Для использования VNC всё равно нужна консоль на целевой системе.
Метод установки по умолчанию определяется загрузочным устройством, может запрашиваться опцией askmethod (удалено в RHEL7).
При использовании kickstart расположение репозитория может задаваться командой url.
Методы установки (repo или inst.repo указывает на репозиторий yum, опция method объявлена устаревшей):
- дистрибутивный CD-ROM (DVD-ROM)
linux inst.repo=cdrom[:устройство]
- по сети по протоколу FTP (в т.ч. неанонимный доступ, до RHEL 6.5 требуется наличие адекватного .treeinfo; в RHEL 8 опять заявлено это требование)
linux inst.repo=ftp://[имя-пользователя:пароль@]сервер/каталог-развёрнутый/
- по сети по протоколу HTTP[S] (опция inst.noverifyssl для самоподписанных сертификатов)
linux inst.repo=http[s]://сервер/каталог-развёрнутый/
- по сети по протоколу NFS (можно использовать как дерево файлов, так и неразвёрнутые ISO образы, по умолчанию - NFSv3,
опции: nfsvers=версия; nfsiso удалено в RHEL 7)
linux inst.repo=nfs[iso][:опции]:сервер:/каталог/
- с локального жёсткого диска (в т.ч. USB); в файловой системе (ext2, ext3, ext4, vfat (FAT-32), xfs)
на разделе жёсткого диска (не LVM) должны располагаться дистрибутивные .iso файлы
linux inst.repo=hd:устройство-и-раздел:/каталог/имя.iso
- linux inst.repo=hmc (Hardware management console? запрашиваются дополнительные параметры ядра)
Имена устройств можно задавать в явном виде (/dev/sda1)
или по метке файловой системы (LABEL=RHEL8, пробел записывается как "\x20") или по UUID (UUID=...).
Можно задать дополнительный репозиторий: inst.addrepo=имя-репозитория,URL (URL аналогичен inst.repo: http, https, ftp, nfs, file, hd),
который не копируется в настройки установленной системы.
При использовании сетевых методов установки запрашиваются сетевые параметры, которые можно задать вручную или с помощью DHCP.
inst.repo не нужен при использовании kickstart.
Опции при загрузке (предваряются командой linux, разделяются пробелами,
начиная с RHEL 7 имена опций установщика предваряются строкой "inst."):
Начиная с Fedora 7 тип интерфейса задаётся выбором из
первоначального текстового (псевдографика) меню: текстовая установка,
графическая, восстановление, загрузка с локального диска, memtest.
Переход к редактору параметров происходит по нажатию кнопки "Tab".
Где-то во времена Fedora 15 (RHEL 7) меню стало вложенным.
Для загрузки используется ISOLINUX для систем с BIOS (isolinux/isolinux.cfg, см. pxelinux) и GRUB2 для систем с UEFI
Позволяет выбрать из меню
- установить
- проверить носитель и установить (rd.live.check)
- установить в упрощённом графическом режиме ([xdriver=vesa] nomodeset)
- войти в режим восстановления (inst.rescue) - 2 виртуальных консоли с bash (Ctrl+Alt+F1 и Ctrl+Alt+F2);
обнаруженная система монтируется по желанию в /mnt/sysimage/ (в неё можно перейти по "chroot /mnt/sysimage"
и переустановить загрузчик "/sbin/grub2-install диск");
по желанию поднимается сеть
- только BIOS - тестирование памяти (kernel memtest), (Memtest86 v1.65 (94600) в CentOS5, Memtest86+ v4.10 в CentOS6.2-6.7,
Memtest86+ 5.01 (183012) в CentOS 6.8-6.9, Memtest86+ v4.20 (176500) в CentOS 7-7.2,
Memtest86+ 5.01 (190896) в CentOS 7.3-7.4
- только BIOS - загрузить установленную ранее систему с диска (localboot 0xffff)
Управляющие клавиши (isolinux.cfg):
- стрелки вверх и вниз - перемещение по меню
- Enter - выбор текущей строки или вход в подменю или подтверждение
- Tab - отредактировать выбранную строку меню (Esc - выход без запуска установщика)
- Esc - ввести команду загрузки самостоятельно (начинать с linux; можно вводить опции ядра, установщика (inst.)
и dracut; Tab - вывести строку помощи)
Управляющие клавиши (grub.cfg):
- стрелки вверх и вниз - перемещение по меню
- Enter - выбор текущей строки или вход в подменю
- e - отредактировать выбранную опцию (начинать с linuxefi; запуск установщика по ^X или F10)
Старая (до RHEL7) версия anaconda последовательно выводит формы для заполнения параметров настройки,
имеется возможность вернуться к предыдущей форме (пользоваться с осторожностью - падает), например:
- Next
- язык установки - russian
- раскладка - russian (Shift+Shift, индикатором служит Scroll Lock)
- установка Fedora Core (не обновление) с удалением разделов Linux (только на /dev/sda!)
- разбиение диска автоматически с последующей правкой, физическое разбиение
- логическое разбиение группы томов system (тома делаются в режиме linear)
- GRUB в MBR /dev/sda без LBA32 (FC6 на /dev/system/root) без пароля, конфигурационный файл /boot/grub/grub.conf
- настройка сети - eth0 без DHCP, включать при загрузке, адреса вручную - 192.168.0.1/255.255.255.0, задать имя, без шлюза и DNS
- временная зона - Europe/Moscow, UTC
- установка пароля для root
- установка - офисные приложения, разработка, настроить сейчас
- здесь же можно подключить дополнительные репозитарии для yum, например, extras
- выбираем пакеты (индивидуальный выбор; система выбора теперь трёхуровневая: категории, группы и пакеты)
- согласование зависимостей пакетов
- последняя возможность сказать "нет"
- форматирование блочных устройств и установка пакетов
После перезагрузки настройка продолжается (firstboot):
- принять лицензию
- включить сетевой экран (SSH)
- SELinux
- установка текущего времени
- заведение себя и установка пароля (перед первым входом надо поменять uid/gid на свои)
- настройка kdump
- проверка слуха
Новая (RHEL 7 и новее) версия Anaconda после выбора языка установки выводит на экран единую приборную доску установки,
которая позволяет оператору самостоятельно выбирать порядок решения подзадач установки с подсветкой обязательных
и незавершённых частей. При этом система может обрабатывать выбранные настройки параллельно в фоновом режиме.
Имеется кнопка Help.
Shift+PrintScreen сохраняет снимок экрана в /tmp/anaconda-screenshots/.
Подзадачи (в разных версиях по разному распределены по группам):
- локализация (пытается использовать GeoIP или inst.lang)
- дата и время, часовой пояс, NTP
- язык и местность для установленной системы, может быть много
- раскладки клавиатуры, комбинации клавиш переключения; действуют и во время установки; не рекомендуется забывать добавить English (US)
- ПО
- источник пакетов (см. inst.repo); можно добавить дополнительные репозитории
- выбор ПО; очень упрощённый - выбор одного из Наборов (Base Environment): Server with GUI, Server, Workstation, Minimal Install, инфраструктурный сервер (удалён?),
файловый сервер (удалён?), веб сервер (удалён?), Virtualization Host, Custom) и набор дополнений (Add-on, groups) к ввыбранному окружению - универсальных и специфических;
имена наборов пакетов можно подсмотреть в файлах repodata/*comps*.xml (этикетки environment и group; "yum group list");
точный подбор пакетов с помощью kickstart установки или yum после установки
- настройки сети (реальные и виртуальные интерфейсы bridge, bonding, team, VLAN) и имени хоста,
реальные интерфейсы опознаются автоматически, имена интерфейсов;
настройки действуют как на время установки, так и для установленной системы;
рекомендуется указывать короткое имя (не FQDN) хоста, чтобы клиент DHCP смог добавить к нему имя домена, или localhost[.localdomain],
чтобы клиент DHCP смог установить FQDN имя хоста
- настройка хранилищ и их использование: выбор затрагиваемых дисков (можно настраивать multipath,
добавлять диски iSCSI, FCoE, firmware RAID, NVDIMM);
выбор между MBR (устройство меньше 2ТБ)
и GPT (больше 2 ТБ или UEFI (требуется раздел /boot/efi размером 50 MiB, а лучше 200 MiB)
или inst.gpt, требуется раздел biosboot размером 1 MiB при использовании BIOS) при отсутствии таблицы разделов;
разбивать вручную или автоматически, шифрование LUKS (LUKS2),
куда записать загрузчик GRUB2 (BIOS и MBR - между MBR и первым разделом;
BIOS и GPT - в отдельный раздел biosboot размером 1МБ;
UEFI и GPT - в раздел EFI System Partition размером от 50 до 200 МБ,
вносятся изменения в переменные менеджера загрузки UEFI;
biosboot и ESP не могут быть на LVM);
можно удалить или уменьшить (только простые случаи) существующий раздел;
при ручном разбиении точкам монтирования назначаются разделы типа обычный раздел, BTRFS (удалён в RHEL 8), RAID, LVM, LVM с отложенным выделением (thin)
с файловой системой типа xfs, ext4, ext3, ext2, vfat (не для /, /boot, /usr и т.п.), swap, biosboot, efi; /boot нельзя размещать на LVM и btrfs;
/usr нельзя размещать на btrfs
- RHEL 8: настройка пароля root и добавление пользователей (рекомендуется задать пароль, можно указать домашний каталог, uid, gid, принадлежность к группе wheel (sudo))
- настройка kdump (начиная с RHEL 7.1)
- политика безопасности (OpenSCAP)
Безмышечная работа: Tab, Shift+Tab, стрелки, пробел или Enter (выбор), Alt-буква (выбор).
Порча дисков начинается только после нажатия кнопки "начать установку".
До RHEL 8: во время установки нужно задать пароль root и завести пользователей, с указанием uid, а также группы с указанием gid.
Пользователи из группы wheel будут иметь полный контроль над системой с помощью sudo.
До RHEL 7: после перезагрузки настройка продолжается (Initial Setup):
- принять лицензию
- заведение себя и установка пароля (перед первым входом надо поменять uid/gid на свои)
RHEL 7 и новее: при первой загрузке запускается firstboot, который запрашивает лицензию и оформляет подписку на портале Red Hat.
В создаваемое меню загрузки grub2 добавляется строка rescue для загрузки минималистского окружения.
В системе с UEFI добавляется строка в аппаратный список загрузки для загрузки GRUB2.
Если включён UEFI Secure Boot, то необходимо побороться с MOK (Machine Owner Key).
В момент установки доступны (только локально)
дополнительные виртуальные консоли (переход по Ctrl-Alt-Fx),
уровень выводимых сюда сообщений (в файлы пишется всё) задаётся ключом loglevel:
- 1 - диалог установки
- 2 - командная оболочка bash
- 3 - сообщения от программы установки (/tmp/anaconda.log и yum.log)
- 4 - сообщения системы (syslog, /tmp/storage.log)
- 5 - прочие сообщения (/tmp/program.log)
- 6 - графический дисплей установки
Для отладки в процессе установки создаются файлы (набор варьируется от версии к версии)
- /tmp/anaconda.log (шаги установки)
- /tmp/syslog (сообщения ядра и приближённых к нему - NetworkManager и т.п.)
- /tmp/X.log (журнал X сервера)
- /tmp/program.log (вывод внешних программ - stdout и stderr)
- /tmp/storage.log (обнаружение устройств хранения и манипуляции с ними)
- /tmp/yum.log
- /tmp/ifcfg.log (не переносится в систему)
- /tmp/anaconda-screenshots (копии экрана по ключу --autoscreenshot команды autostep)
После установки отладочные файлы записываются в следующие файлы:
- в файл /var/log/anaconda.log записываются сообщения, выдаваемые на виртуальную консоль при установке
(ошибки и отладочная печать)
- часть журнала syslog записывается в файлы /var/log/anaconda.syslog
и /root/install.log.syslog (можно передать на удалённый сервер syslog с помощью ключа syslog)
- /mnt/sysimage/root/install.log.syslog
- в файл /var/log/anaconda.xlog записывается журнал X сервера при установке
- /var/log/anaconda.program.log
- /var/log/anaconda.storage.log
- список установленных пакетов записывается в /root/install.log
(в некоторых версиях сюда же записывается список неустановленных пакетов) - /mnt/sysimage/root/install.log
- /root/anaconda-screenshots - копии экрана из /tmp/anaconda-screenshots
В RHEL 7.1 все консоли установщика сведены в одну (tty1, переход - Ctrl+Alt+F1, обратно - Ctrl+Alt+F6) с помощью tmux,
переключение между панелями tty1 производится с помощью Alt+Tab, переход на панель - "Ctrl+b номер"
- 1 - основной экран
- 2 - bash с полномочиями root и без пароля
- 3 - шаги установки (/tmp/anaconda.log), обнаружение устройств хранения и манипуляции с ними, yum
- 4 - информация об устройствах хранения (/tmp/storage.log)
- 5 - вывод внешних программ - stdout и stderr (/tmp/program.log)
Для отладки в процессе установки создаются файлы (набор варьируется от версии к версии)
- /tmp/anaconda.log (шаги установки)
- /tmp/ifcfg.log
- /tmp/syslog (сообщения ядра и приближённых к нему - NetworkManager и т.п.)
- /tmp/storage.log (обнаружение устройств хранения и манипуляции с ними)
- /tmp/storage.state
- /tmp/program.log (вывод внешних программ - stdout и stderr)
- /tmp/packaging.log
- /tmp/dbus.log
- /tmp/sensitive-info.log (не копируется на установленную систему)
- /tmp/yum.log
- /tmp/dnf.log (удалён?)
- /tmp/dnf.hawkey.log (удалён?)
- /tmp/dnf.rpm.log (удалён?)
- /tmp/rpm-script.log
- /tmp/x.log (удалён? или не создаётся в текстовом режиме)
В CentOS7 (Fedora 15) все отладочные файлы записываются в каталог /var/log/anaconda/ (syslog, anaconda.log,
dbus.log, ifcfg.log, journal.log, ks-post.log (указан в настройках kickstart), ks-script-wNkstV.log, packaging.log, program.log, storage.log),
если при установке не указано inst.nosave=logs.
На удалённый сервер syslog передаётся в режиме TCP,
на установленной системе syslog работает как ожидается.
Журнал устанавливаемой гостевой машины может передаваться с помощью virtio.
|
Bog BOS: anaconda - программа установки дистрибутивов Red Hat
|
Copyright © 1996-2024 Sergey E. Bogomolov; www.bog.pp.ru