Я обновил свою ОС до Ubuntu 16.04 и пытаюсь установить гостевую систему ubuntu 14.04 с нуля, используя мой инструмент управления KVM , который я успешно использую в Ubuntu 14.04 уже некоторое время. К сожалению, похоже, что virt-install изменилась и больше не принимает параметр --location
с ISO-изображением, поскольку он выдаст следующую ошибку:
Starting install...
ERROR Could not find an installable distribution at '/home/programster/apps/KVM-Command-Generator/installation_media/Ubuntu_14.04.iso'
The location must be the root directory of an install tree.
Однако, если я не буду использовать --cdrom
параметр вместо --location
ему больше не нравится тот факт, что у меня есть параметр --extra-args
, указывающий местоположение файла кикстарта / предварительного семени и что консоль должна использовать ttyS0.
--extra-args "console=ttyS0 ks=http://pastebin.com/raw.php?i=SrTvbt6Z"
В этот момент я попытался просто удалить параметр --extra-args для установки с компакт-диска, но если вы это сделаете, вы не увидите никаких выходных данных в CLI для установки. Я предполагаю, что он хочет, чтобы вы подключились через VNC или что-то не идеальное.
Для справки, исходные команды установки были:
qemu-img create -f qcow2 -o preallocation=metadata,lazy_refcounts=on /home/programster/apps/KVM-Command-Generator/vms/ubuntu14.04.img 20G
virt-install --connect qemu:///system \
--nographics \
--os-type linux \
--accelerate \
--hvm \
--network network=default,model=virtio \
--name ubuntu14.04 \
--os-variant=ubuntu14.04 \
--location /home/programster/apps/KVM-Command-Generator/installation_media/Ubuntu_14.04.iso \
--extra-args "console=ttyS0 ks=http://pastebin.com/raw.php?i=SrTvbt6Z" \
--disk /home/programster/apps/KVM-Command-Generator/vms/ubuntu14.04.img,bus=virtio,format=qcow2 \
--ram 512 \
--vcpus 2
И новые команды:
qemu-img create -f qcow2 -o preallocation=metadata,lazy_refcounts=on /home/programster/apps/KVM-Command-Generator/vms/ubuntu14.04.img 20G
virt-install --connect qemu:///system \
--nographics \
--os-type linux \
--accelerate \
--hvm \
--network network=default,model=virtio \
--name ubuntu14.04 \
--os-variant=ubuntu14.04 \
--cdrom /home/programster/apps/KVM-Command-Generator/installation_media/Ubuntu_14.04.iso \
--disk /home/programster/apps/KVM-Command-Generator/vms/ubuntu14.04.img,bus=virtio,format=qcow2 \
--ram 512 \
--vcpus 2
Как я могу получить virt-install установить из локального ISO-образа с дополнительными аргументами, чтобы указать местоположение файла кикстарта / preseed, и позволить мне видеть ход и, возможно, выбирать параметры через CLI, а не с помощью VNC?
Возможно, у меня есть указать веб-URL вместо ISO-образа для --location
, но я бы предпочел, чтобы я мог передать локальное местоположение в случае, если Интернет не так хорош.
@Programster - я сообщил об этой проблеме специалистам по обслуживанию virt-менеджера в их списке рассылки. См. http://www.redhat.com/archives/virt-tools-list/2016-August/msg00009.html . Можно следовать за тем потоком для получения дополнительной информации. Знание, что это работало в Ubuntu 14.04 а не в Ubuntu 16.04, было ключевым для разрешения проблемы.
Нижняя строка, это фиксируется теперь в основном ответвлении https://github.com/virt-manager/virt-manager.
фиксация, которая зафиксировала его: https://github.com/virt-manager/virt-manager/commit/3f15a489cda87f8028828d567848193dd2640a43
я не уверен, когда это превратит его в различные пакеты virt-менеджера. Но можно захватить источник и выполнить virt-установку оттуда. (Отметьте: Вы должны будете добавить некоторые пакеты и вероятно должны создать виртуальную среду Python, таким образом, Вы могли бы хотеть экспериментировать на VM перед имением предосудительные отношения с дополнительными пакетами в системе, необходимо остаться стабильными и чистыми.)
После чтения эти --location
раздел в страницах справочника для virt-установки, это похоже на одну , должен все еще смочь использовать location
для определения пути к ISO-образу, это не работает на меня. К счастью это дало некоторые примеры, из которых был перечисленный для Ubuntu:
http://us.archive.ubuntu.com/ubuntu/dists/wily/main/installer-amd64/
Используя это работал на меня так, чтобы заставить это устанавливать Ubuntu 14.04 все, что я сделал был измениться wily
на trusty
и Ваш дядя Bob's! Мне бы хотелось установить от локального mini.iso, но тем временем это должно работать на меня и других.
adduser
на самом деле должен уже сделать многое из этого автоматически..
– derHugo
6 November 2017 в 19:23
Следующее работало на меня устанавливающий Debian 10 от хост-системы Ubuntu 16.04:
cd /usr/share/virt-manager/virtinst/
patch <<.
--- urlfetcher.py.orig 2019-07-25 13:54:37.496567791 +1200
+++ urlfetcher.py 2019-07-25 13:54:43.180373257 +1200
@@ -663,6 +663,8 @@
]
_hvm_paths = [("pxeboot/vmlinuz",
"images/pxeboot/initrd.img"), # Fedora
+ ("install.amd/vmlinuz",
+ "install.amd/initrd.gz"), # Debian
]
_iso_paths = ["images/boot.iso", # RH/Fedora
"boot/boot.iso", # Suse
.
virt-install --debug ... --location=/srv/software/Debian/debian-10.0.0-amd64-netinst.iso --extra-args='console=tty0 console=ttyS0,115200n8'
Я столкнулся с той же проблемой, что и сегодня, некоторые из предыдущих ответов помогли мне найти способ сделать это. Решение для меня было найдено в руководстве virt-install об установке iso, так как я использовал iso-установку по сети, мне нужно было указать дополнительные параметры ядра и initrd, указывающие путь в iso, чтобы найти их.
Благодаря опции --debug
я нашел код установщика, чтобы лучше понять, что происходит. Итак, в конце концов строка инициализации выглядела примерно так:
virt-install --name centos7 \
--virt-type kvm \
--memory 2048 \
--vcpus 2 \
--disk path='/path_to_isos/CentOS-7-x86_64-NetInstall-2003.iso',device=cdrom \
--disk path=centos7.qcow2,device=disk \
--location '/path_to_isos/CentOS-7-x86_64-NetInstall-2003.iso',initrd=isolinux/initrd.img,kernel=isolinux/vmlinuz \
--graphics none \
--os-type Linux \
--os-variant centos7.0 \
--network type=direct,source=enp3s0,source_mode=bridge,model=virtio \
--extra-args 'console=ttyS0,115200n8 serial' \
--console pty,target_type=serial \
--debug
Ключевым моментом здесь являются дополнительные параметры расположения, указывающие vmlinuz
как ядро и initrd.img
. Чтобы найти путь в iso, я использовал команду isoinfo
следующим образом:
$ isoinfo -J -i '/path_to_isos/CentOS-7-x86_64-NetInstall-2003.iso' -l
В данном случае я нашел их в папке isolinux. Кроме того, я определил диск для устройства cdrom, чтобы я мог получить к нему доступ во время установки, но, поскольку в этом случае я использовал сетевой репозиторий, я определил источник как одно из зеркал для CentOS 7 через текстовые меню установки. . Я предполагаю, что источником может быть полный образ CD/DVD, если это необходимо. Использование местоположения включает дополнительные аргументы, поэтому я могу получить к ним доступ с помощью текстовой консоли для всего процесса установки. Надеюсь, это поможет завершить ответ на исходный вопрос.
useradd -U -m -G adm,cdrom,dip,plugdev,lpadmin <username>
– Videonauth 6 November 2017 в 19:21