Вопрос или проблема
Я не могу автоматизировать установку Rocky9 Linux на KVM. Я использую Kickstart для автоматизации установки. Вместо автоматической установки на экране появляется экран установки, если я вхожу в консоль ВМ.
Вот скрипт Kickstart:
# Сгенерировано Anaconda 34.25.4.9
# Сгенерировано pykickstart v3.32
#version=RHEL9
# Использовать текстовый режим установки
text
repo --name="minimal" --baseurl=file:///run/install/sources/mount-0000-cdrom/minimal
%addon com_redhat_kdump --enable --reserve-mb='auto'
%end
# Язык системы
lang en_US.UTF-8
# Использовать установочные носители CDROM
cdrom
%packages
@^minimal-environment
%end
# Запустить Агент Настройки при первом запуске
firstboot --enable
# Не настраивать X Window System
skipx
# Сгенерировано с использованием Blivet версии 3.6.0
ignoredisk --only-use=vda
# Конфигурация загрузчика системы
bootloader --append="crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M" --location=mbr --boot-drive=vda
autopart
# Информация о очистке разделов
clearpart --all --initlabel --drives=vda
# Часовой пояс системы
timezone America/New_York --utc
# Пароль root
rootpw 1234567890
Вот как я создаю ВМ:
$ sudo virt-install \
--virt-type kvm \
--name kvm6 \
--ram 2048 \
--vcpus 2 \
--disk size=20 \
--os-variant rocky9 \
--network network=bridged-network \
--graphics none \
--location /tmp/Rocky-9.4-x86_64-minimal.iso \
--check all=off \
--initrd-inject inst.ks \
--extra-args="ks=file:/inst.ks console=tty0 console=ttyS0,115200" \
--noautoconsole
Начало установки...
Получение 'vmlinuz' | 13 MB 00:00:00
Получение 'initrd.img' | 102 MB 00:00:00
Распределение 'kvm6.qcow2' | 20 GB 00:00:00
ПРЕДУПРЕЖДЕНИЕ Переопределение памяти на 3072 MiB, необходимых для сетевой установки rocky9.
Создание домена... | 00:00:00
Домен все еще работает. Установка может быть в процессе.
Вы можете переподключиться к консоли, чтобы завершить процесс установки.
$
Если я войду в консоль, я вижу экран установки по умолчанию, а также следующее вверху:
Запуск установщика, подождите...
15:04:13 Обнаружен аргумент загрузки ядра 'ks'. Вы хотели использовать 'inst.ks' для установщика вместо этого?
15:04:13 Все аргументы загрузки ядра Anaconda теперь требуют использования префикса 'inst.'!
15:04:13
############## Ошибки установщика, возникшие во время загрузки ##############
'ks' устарел и был удален.
Все случаи использования аргументов загрузки Anaconda без префикса 'inst.' были удалены. Пожалуйста, используйте inst.ks вместо этого.
Проблема заключалась в том, что мне нужно было добавить inst.
к ks
в том, что я передавал в --extra-args
. Сообщение об ошибке в моем вопросе указало мне на решение.
sudo virt-install \
--virt-type kvm \
--name kvm6 \
--ram 2048 \
--vcpus 2 \
--disk size=20 \
--os-variant rocky9 \
--network network=bridged-network \
--graphics none \
--location /tmp/Rocky-9.4-x86_64-minimal.iso \
--check all=off \
--initrd-inject inst.ks \
--extra-args="inst.ks=file:/inst.ks console=tty0 console=ttyS0,115200" \
# ^^^^^ Это нужно было добавить
--noautoconsole
Имя файла не имеет значения.
Ответ или решение
Для автоматизации установки Rocky9 Linux на KVM с использованием Kickstart, вам необходимо внести некоторые изменения в команду virt-install
, которую вы используете. Проблема, с которой вы столкнулись, связана с использованием устаревшего синтаксиса для загрузочных аргументов.
На основе вашей команды и сообщения об ошибке следует изменить параметр --extra-args
, добавив префикс inst.
к имени файла Kickstart. Правильное использование будет следующим:
sudo virt-install \
--virt-type kvm \
--name kvm6 \
--ram 2048 \
--vcpus 2 \
--disk size=20 \
--os-variant rocky9 \
--network network=bridged-network \
--graphics none \
--location /tmp/Rocky-9.4-x86_64-minimal.iso \
--check all=off \
--initrd-inject inst.ks \
--extra-args="inst.ks=file:/inst.ks console=tty0 console=ttyS0,115200" \
--noautoconsole
Здесь вы видите исправленное использование inst.ks
вместо просто ks
. Это изменение обязательно, так как в новых версиях Anaconda (которые используются для установки) требуется применять префикс inst.
для всех аргументов.
После внесения этого изменения, ваш Kickstart-скрипт будет правильно интерпретироваться инсталлятором, и установка должна пройти в автоматическом режиме без показа экранов установки при доступе к консоли VM.
Дополнительно убедитесь, что файл inst.ks
действительно доступен в ожидаемом месте. Вы можете проверить его на наличие ошибок, и убедиться, что он соответствует требованиям для автоматизированной установки.
Если у вас возникнут другие вопросы или потребуется помощь с настройкой сети или конфигурацией, не стесняйтесь задавать дополнительные вопросы.