Virt-установка с использованием местоположения с ISO-образом больше не работает

Я обновил свою ОС до 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, но я бы предпочел, чтобы я мог передать локальное местоположение в случае, если Интернет не так хорош.

Дополнительная информация

7
задан 20 June 2016 в 17:55

4 ответа

@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 перед имением предосудительные отношения с дополнительными пакетами в системе, необходимо остаться стабильными и чистыми.)

4
ответ дан 21 June 2016 в 03:55
  • 1
    Или сделайте все это в одной команде useradd -U -m -G adm,cdrom,dip,plugdev,lpadmin <username> – Videonauth 6 November 2017 в 19:21

После чтения эти --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, но тем временем это должно работать на меня и других.

0
ответ дан 21 June 2016 в 03:55
  • 1
    Спасибо @Videonauth мне никогда не были нужны те группы, но хорошо.. I' m, не используя графический интерфейсы пользователя ^^ И когда я, я всегда добавлял тех пользователей в GUI так я don' t теперь, какие группы действительно необходимы, чтобы быть добавленными вручную. 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'
0
ответ дан 29 September 2019 в 12:07

Я столкнулся с той же проблемой, что и сегодня, некоторые из предыдущих ответов помогли мне найти способ сделать это. Решение для меня было найдено в руководстве 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, если это необходимо. Использование местоположения включает дополнительные аргументы, поэтому я могу получить к ним доступ с помощью текстовой консоли для всего процесса установки. Надеюсь, это поможет завершить ответ на исходный вопрос.

0
ответ дан 24 August 2020 в 07:51

Другие вопросы по тегам:

Похожие вопросы: