Вопрос или проблема
Я пытался создать свою первую виртуальную машину с помощью KVM, но получаю загадочную ошибку от virt-install. Она говорит, что у меня есть «недопустимые аргументы», но не указывает, какой именно аргумент:
$ sudo virt-install \
> --name centos7_vm1 \
> --memory 1024 \
> --disk /data/kvm_images/centos7-vm1.qcow2,device=disk \
> --disk /data/kvm_images/centos7-vm1.iso,device=cdrom \
> --os-type linux \
> --os-variant centos7.0 \
> --virt-type kvm \
> --graphics none \
> --network default \
> --import
usage: virt-install --name NAME --memory MB STORAGE INSTALL [options]
virt-install: error: unrecognized arguments:
$
Я смотрел документацию и искал в Интернете, но не могу понять, что не так. Я использую CentOS 7, virt-install 1.5.0.
$ ls -l /data/kvm_images
total 70584
-rw------- 1 qemu qemu 26847870976 May 11 00:06 centos7-docker.qcow2
-rw-r--r-- 1 root root 374784 May 11 14:35 centos7-vm1.iso
-rw-r--r-- 1 root root 68026368 May 11 14:02 centos7-vm1.qcow2
-rw-r--r-- 1 root root 104 May 11 14:33 centos7-vm1.setup.yaml
$
Вот что я сделал, чтобы дойти до этого момента
Первое, что я сделал, это загрузил образ
$ wget wget https://cloud.centos.org/centos/7/images/CentOS-7-ppc64le-GenericCloud-2003.qcow2
Затем проверил, что он в порядке
$ qemu-img info CentOS-7-ppc64le-GenericCloud-2003.qcow2
image: CentOS-7-ppc64le-GenericCloud-2003.qcow2c
file format: qcow2
virtual size: 8.0G (8589934592 bytes)
disk size: 395M
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
Затем я изменил размер на двадцать пять ГБ
$ qemu-img resize CentOS-7-ppc64le-GenericCloud-2003.qcow2 25G
И использовал qemu-img convert
$ sudo qemu-img convert -f qcow2 -O qcow2 CentOS-7-ppc64le-GenericCloud-2003.qcow2 /data/kvm_images/centos7-vm1.qcow2
Затем я создал файл centos7-vm1.setup.yaml
#cloud-config
password: xxxxxxxxxx
chpasswd: { expire: False }
ssh_pwauth: True
hostname: centos7-vm1
и выполнил
$ sudo cloud-localds centos7-vm1.iso centos7-vm1.setup.yaml
Что-то определенно странное. Эта ошибка возникает из-за python argparse, так что это не что-то, что делает virt-install явно. Я предполагаю, что у вас есть какое-то странное пробел или что-то в вашей командной строке, что argparse интерпретирует как явный аргумент командной строки.
Попробуйте написать эту команду вручную без переносов строк и посмотрите, будет ли virt-install продолжать выдавать ошибку.
Я разобрался, я запускал от имени sudo и выяснил, что это не очень хорошая идея для virt-install (помимо этой проблемы, это может вызвать проблемы в будущем)
Ответ или решение
Проблема, с которой вы столкнулись при использовании virt-install
, связана с ошибкой, указывающей на «нераспознанные аргументы». Эта ошибка может возникнуть из-за различных факторов, включая наличие лишних символов или неправильные параметры командной строки. Давайте рассмотрим ваше решение и последовательные шаги, которые вы можете предпринять для устранения проблемы.
-
Проверка пробелов и символов: Первая рекомендация – убедитесь, что в вашей команде нет лишних пробелов, табуляций или невидимых символов, которые могут вызывать проблемы при парсинге аргументов командной строки. Попробуйте ввести команду в одной строке без переноса:
sudo virt-install --name centos7_vm1 --memory 1024 --disk /data/kvm_images/centos7-vm1.qcow2,device=disk --disk /data/kvm_images/centos7-vm1.iso,device=cdrom --os-type linux --os-variant centos7.0 --virt-type kvm --graphics none --network default --import
-
Запуск без sudo: Ваша команда
virt-install
может столкнуться с проблемами, если вы используете ее с правамиsudo
. В большинстве случаев, повышенные привилегии не нужны. Важно запускатьvirt-install
от пользователя с правами доступа к виртуальным машинам и образам, а не от суперпользователя:virt-install --name centos7_vm1 --memory 1024 --disk /data/kvm_images/centos7-vm1.qcow2,device=disk --disk /data/kvm_images/centos7-vm1.iso,device=cdrom --os-type linux --os-variant centos7.0 --virt-type kvm --graphics none --network default --import
-
Проверка наличия зависимостей: Убедитесь, что все необходимые пакеты и зависимости для
virt-install
установлены и обновлены. Иногда обновления могут исправить баги или несовместимости. -
Логи и отладка: Если ошибка продолжает возникать, посмотрите логи
libvirt
для получения более подробной информации о причинах сбоя. Логи можно найти в/var/log/libvirt/
. -
Документация и версия: Убедитесь, что вы обращаетесь к актуальной документации для вашей версии
virt-install
, так как синтаксис или параметры могут изменяться между версиями.
Следуя этим шагам, вы сможете выявить и устранить источник ошибки «нераспознанные аргументы», и в дальнейшем успешно создать виртуальную машину с помощью virt-install
.