|
Bog BOS: anaconda - программа установки дистрибутивов Red Hat
|
Последнее изменение файла: 2022.02.10
Скопировано с www.bog.pp.ru: 2023.11.30
Bog BOS: anaconda - программа установки дистрибутивов Red Hat
При установке и обновлении дистрибутива семейства Red Hat используется система anaconda.
Оператор может выбрать устройство загрузки, с которого загружается и запускается ядро Linux и программа
установки первой очереди. Задача программы первой очереди загрузить модули ядра, необходимые для
монтирования файловой системы, содержащей программу второй очереди и "нормального" окружения
периода выполнения (может обеспечивать работу клиента X и сервера VNC). Установщик второй очереди (перемещён в initrd?)
позволяет указать местонахождение дистрибутива (используется термин "метод установки"),
интерфейс общения (текстовый, графический, VNC, пакетный) и параметры установщика и ядра.
Форматируются указанные файловые системы (поддерживается программный 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 (опции ядра обрабатываются там).
Перед установкой необходимо скачать выбранные ISO-образы CD или DVD,
проверить контрольные суммы (можно использовать checkisomd5
из пакета anaconda-runtime (пакета isomd5sum), который проверяет встроенную в ISO контрольную сумму, или md5sum/sha1sum
и дополнительный файл с сайта производителя) и записать на болванки или USB диск (dd) или развернуть дерево файлов для локального
использования или на сервере FTP, HTTP или NFS (образы установщика, пакеты, .treeinfo и repodata).
Изменения (кастомизация) в программе установки доступны в виде флоппи образов (updates.img, product.img), которые можно указать в момент установки.
Также можно "подсунуть" модули ядра для нестандартного оборудования в виде ISO образа, содержащего rpm.
В основном, это требуется для блочных и сетевых устройств, без которых невозможен доступ к установщику второй очереди или дереву файлов.
При первой загрузке установленной системы может запускаться
процедура начальной установки (ранее firstboot): предъявление EULA, создание учётных записей.
Также возможно изменение многих настроек ("firstboot --reconfig" в kickstart).
Имеются графические и текстовые варианты.
Возможные загрузочные устройства:
- дистрибутивный CD-ROM (DVD-ROM)
- загрузочный CD-ROM (images/boot.iso - небольшой ISO образ, содержащий только загрузчик)
- USB Mass Storage (images/diskboot.img - образ файловой системы VFAT, содержащий только загрузчик;
в новых версиях нужно записать .iso образ дистрибутивного DVD или загрузочного CD с помощью dd; прощай разделы!)
- сетевая загрузка (см. настройка PXE сервера); требуется минимум 2ГБ ОП
- те же устройства в UEFI режиме (BOOTX64.efi, grubx64.efi)
В RHEL7 ко всем именам параметров добавлена опциональная приставка "inst.".
Предусмотрены следующие типы интерфеса общения оператора с программой установки
- графический интерфейс с использованием мышки и клавиатуры (используется по умолчанию), параметры:
- inst.graphical (требуется указать явно при установке по сети, 800x600)
- inst.xdriver=имя-драйвера (указать явно имя видеодрайвера (fbdev, vesa, nouveau, intel, modesetting),
будет использоваться как при установке, так и во время работы)
- inst.usefbx (синоним: xdriver=fbdev)
- {inst.resolution=1280x800 | vga=VESA-режим | vga=ask} (в любом случае, небольшое окно в левом верхнем углу,
но хотя бы шрифт не расплывается)
- lowres (режим 640x480)
- video=режим
- inst.vnc inst.vncport=5901 inst.vncpassword=пароль (запускается vnc-сервер, который позволяет производить
удалённую установку в графическом режиме с помощью vncviewer;
разрешено одновременное подключение нескольких клиентов;
установленная система будет загружаться в текстовом режиме;
предварительно запрашивается язык, раскладка и настройка сети)
- inst.vnc inst.vncpassword=пароль inst.vncconnect=адрес-консоли:порт (подсоединиться
к указанной консоли (vncviewer -listen) для удалённой установки;
необходимо открыть порт (по умолчанию 5900) в сетевом экране; пароль передаётся в открытом виде)
- display=адрес:номер-экрана (предварительно разрешить допуск командой xhost; удалено в RHEL7)
- inst.noninteractive
- текстовый интерфейс (типа 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.cmdline (настройки задаются в файле kickstart или в командной строке)
Метод установки по умолчанию определяется загрузочным устройством, может запрашиваться опцией askmethod (удалено в RHEL7).
При использовании kickstart расположение репозитория может задаваться командой url.
Методы установки (repo или inst.repo указывает на репозиторий yum, опция method объявлена устаревшей):
- дистрибутивный CD-ROM (DVD-ROM)
linux inst.repo=cdrom[:устройство]
- по сети по протоколу FTP (в т.ч. неанонимный доступ, до RHEL 6.5 требуется наличие адекватного .treeinfo)
linux inst.repo=ftp://[имя-пользователя:пароль@]сервер/каталог-развёрнутый/
- по сети по протоколу HTTP[S] (опция inst.noverifyssl для самоподписанных сертификатов)
linux inst.repo=http[s]://сервер/каталог-развёрнутый/
- по сети по протоколу NFS (можно использовать как дерево файлов, так и неразвёрнутые ISO образы, по умолчанию - NFSv3,
опции: nfsvers=версия)
linux inst.repo=nfs[iso][:опции]:сервер:/каталог/
- с локального жёсткого диска (в т.ч. USB); в файловой системе (ext2, ext3, ext4, vfat (FAT-32), xfs)
на разделе жёсткого диска (не LVM) должны располагаться дистрибутивные .iso файлы;
имя устройства можно задавать с помощью LABEL= (пробел записывается как "\x20") и UUID=
linux inst.repo=hd:устройство-и-раздел:/каталог/
- ?с файловой системы
file:///имя-файла
При использовании сетевых методов установки запрашиваются сетевые параметры, которые можно задать вручную или с помощью DHCP.
Опции при загрузке (предваряются командой linux, разделяются пробелами,
начиная с RHEL 7 имена опций установщика предваряются строкой "inst."):
Начиная с Fedora 7 тип интерфейса задаётся выбором из
первоначального текстового (псевдографика) меню: текстовая установка,
графическая, восстановление, загрузка с локального диска, memtest.
Переход к редактору параметров происходит по нажатию кнопки "Tab".
Где-то во времена Fedora 15 (RHEL 7) меню стало вложенным.
Для загрузки используется ISOLINUX (isolinux/isolinux.cfg, см. pxelinux)
Позволяет выбрать из меню
- установить
- проверить носитель и установить (rd.live.check)
- установить в упрощённом графическом режиме (xdriver=vesa nomodeset)
- войти в режим восстановления (inst.rescue) - 2 виртуальных консоли с bash (Ctrl+Alt+F1 и Ctrl+Alt+F2);
обнаруженная система монтируется по желанию в /mnt/sysimage/ (в неё можно перейти по "chroot /mnt/sysimage"
и переустановить загрузчик "/sbin/grub2-install диск");
по желанию поднимается сеть
- тестирование памяти (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 (BIOS) - отредактировать выбранную опцию
- Esc (BIOS) - ввести строку загрузки (начинать с linux)
- e (UEFI) - отредактировать выбранную опцию (завершение по ^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
- проверка слуха
Новая (RHEL7) версия anaconda после выбора языка на время установки выводит на экран единую приборную доску установки,
которая позволяет оператору самостоятельно выбирать порядок решения подзадач установки с подсветкой обязательных
и незавершённых частей. При этом система может обрабатывать выбранные настройки параллельно в фоновом режиме.
Имеется кнопка Help.
Shift+PrintScreen сохраняет снимок экрана в /tmp/anaconda-screenshots/.
Подзадачи:
- дата и время, часовой пояс, NTP
- язык и местность для установленной системы, может быть много
- раскладки клавиатуры, комбинации клавиш переключения; действуют и во время установки; не рекомендуется забывать English (US)
- источник пакетов (см. inst.repo); можно добавить дополнительные репозитории
- настройки сети (VPN, bridge, bonding, team, VLAN), интерфейсы опознаются автоматически, имена интерфейсов,
рекомендуется указывать короткое имя (не FQDN) хоста, чтобы клиент DHCP смог добавить к нему имя домена, или localhost.localdomain,
чтобы клиент DHCP смог установить FQDN имя хоста
- выбор ПО; очень упрощённый - выбор одного из Наборов (Environment: минимальный набор, инфраструктурный сервер,
файловый сервер, веб сервер, сервер с графикой, сервер виртуализации) и набор дополнений (Add-on, groups) - универсальных и специфических;
набор пакетов можно подсмотреть в файлах repodata/*comps*.xml; точный подбор пакетов с помощью kickstart установки
или yum после установки
- настройка хранилищ и их использование: выбор затрагиваемых дисков (можно настраивать multipath,
добавлять диски iSCSI, FCoE, firmware RAID);
выбор между MBR (устройство меньше 2ТБ)
и GPT (больше 2 ТБ или UEFI (требуется раздел /boot/efi размером 50 MiB, а лучше 200 MiB)
или inst.gpt, требуется раздел biosboot размером 1 MiB при использовании BIOS) при отсутствии таблицы разделов;
разбивать вручную или автоматически, шифрование LUKS,
куда записать загрузчик GRUB2 (BIOS и MBR - между MBR и первым разделом;
BIOS и GPT - в отдельный раздел biosboot размером 1МБ;
UEFI и GPT - в раздел EFI System Partition размером от 50 до 200 МБ,
вносятся изменения в переменные менеджера загрузки UEFI;
biosboot и ESP не могут быть на LVM);
можно удалить или уменьшить (только простые случаи) существующий раздел;
при ручном разбиении точкам монтирования назначаются разделы типа обычный раздел, BTRFS, RAID, LVM, LVM с отложенным выделением (thin)
с файловой системой типа xfs, ext4, ext3, ext2, vfat, swap, biosboot, efi; /boot нельзя размещать на LVM и btrfs;
/usr нельзя размещать на btrfs
- настройка kdump (начиная с RHEL 7.1)
- политика безопасности (SCAP)
Безмышечная работа: Tab, Shift+Tab, стрелки, пробел или Enter (выбор), Alt-буква (выбор).
Порча дисков начинается только после нажатия кнопки "начать установку".
Во время установки нужно задать пароль root и завести пользователей, с указанием uid, а также группы с указанием gid).
Пользователи из группы wheel будут иметь полный контроль над системой с помощью sudo.
После перезагрузки настройка продолжается (Initial Setup):
- принять лицензию
- заведение себя и установка пароля (перед первым входом надо поменять uid/gid на свои)
Затем запускатеся firstboot, который оформляет подписку на портале Red Hat.
В создаваемое меню загрузки grub2 добавляется строка rescue для загрузки минималистского окружения
В момент установки доступны (только локально)
дополнительные виртуальные консоли (переход по 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/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,
ifcfg.log, journal.log, ks-post.log (указан в настройках kickstart), ks-script-wNkstV.log, packaging.log, program.log, storage.log). Где anaconda.xlog?
На удалённый сервер syslog передаётся в режиме TCP,
на установленной системе syslog работает как ожидается.
Журнал устанавливаемой гостевой машины может передаваться с помощью virtio.
|
Bog BOS: anaconda - программа установки дистрибутивов Red Hat
|
Copyright © 1996-2023 Sergey E. Bogomolov; www.bog.pp.ru