qemu + kvm, erro inútil de virt-install --location

qemu + kvm, erro inútil de virt-install --location

Lutei com o qemu e o virt-install sem sucesso e estou completamente preso a uma mensagem de erro inútil que não me leva a lugar nenhum.

PRIMEIRO, algumas configurações de sistema necessárias:

O sistema operacional básico é o Ubuntu Server 20.04 LTS. Nenhum ambiente de área de trabalho. O sistema operacional da VM será Ubuntu Server 18.04 LTS. Nenhum ambiente de área de trabalho.

Tenho um LVM de 60 GB /dragonodeque pretendo usar como volume de armazenamento primário para esta máquina virtual:

calyodelphi@dragonweyr:~$ lsblk
NAME                           MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
[loop partitions omitted]
nvme0n1                        259:0    0   477G  0 disk 
├─nvme0n1p1                    259:1    0   512M  0 part /boot/efi
├─nvme0n1p2                    259:2    0     1G  0 part /boot
└─nvme0n1p3                    259:3    0 475.4G  0 part 
  ├─ubuntu--vg-ubuntu--lv      253:0    0    50G  0 lvm  /
  ├─ubuntu--vg-dragonode--lv   253:1    0    60G  0 lvm  /dragonode
  └─ubuntu--vg-dragonhoard--lv 253:2    0 365.4G  0 lvm  /dragonhoard

Configurei com sucesso uma ponte com netplan para servir como interface metálica para o sistema:

calyodelphi@dragonweyr:~$ ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP mode DEFAULT group default qlen 1000
    link/ether f8:75:a4:b5:ca:ba brd ff:ff:ff:ff:ff:ff
3: wlo1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000
    link/ether 94:e6:f7:36:91:d8 brd ff:ff:ff:ff:ff:ff
4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether f8:75:a4:b5:ca:ba brd ff:ff:ff:ff:ff:ff

E agora o comando que juntei e o problema:

calyodelphi@dragonweyr:~$ virt-install --name dragonode --ram=2048 --disk path=/dragonode/dragonode.qcow2,size=50,format=qcow2 --vcpus 1 --os-type linux --os-variant ubuntu18.04 --graphics none --network bridge:br0 --location 'http://archive.ubuntu.com/ubuntu/dists/bionic/main/binary-amd64/' --extra-args "console=tty0 console=ttyS0,115200n8 ip=192.168.1.144::192.168.1.1:255.255.255.0:dragonode.home:eth0:none"
ERROR    Error validating install location: Could not find an installable distribution at 'http://archive.ubuntu.com/ubuntu/dists/bionic/main/binary-amd64/'

The location must be the root directory of an install tree.
See virt-install man page for various distro examples.

A maior parte deste comando eu montei principalmente usandoeste guiacom um pouco de referência adicional deesta coleção de exemplos(especificamente a seção vinculada) eesta documentação útil do RedHat, e também trocou mensagens diretamente com o autor do primeiro artigo.

No entanto, ao executar o comando acima, você pode ver o erro genérico inútil.

A parte frustrante disso é que esse URL vemdiretamente da página de manual dovirt-installna --locationdefinição do argumento:

-l, --location OPTIONS
   Distribution tree installation source. virt-install can recognize certain distribution trees and fetches a bootable kernel/initrd pair to
   launch the install.

   --location allows things like --extra-args for kernel arguments, and using --initrd-inject. If you want to use those options with CDROM media,
   you can pass the ISO to --location as well which works for some, but not all, CDROM media.

   The "LOCATION" can take one of the following forms:

   https://host/path
       An HTTP server location containing an installable distribution image.

   ftp://host/path
       An FTP server location containing an installable distribution image.

   ISO Probe the ISO and extract files using 'isoinfo'

   DIRECTORY
       Path to a local directory containing an installable distribution image. Note that the directory will not be accessible by the guest after
       initial boot, so the OS installer will need another way to access the rest of the install media.

   Some distro specific url samples:

   Fedora/Red Hat Based
       https://download.fedoraproject.org/pub/fedora/linux/releases/29/Server/x86_64/os

   Debian
       https://ftp.us.debian.org/debian/dists/stable/main/installer-amd64/

   Ubuntu
       https://us.archive.ubuntu.com/ubuntu/dists/wily/main/installer-amd64/

   Suse
       https://download.opensuse.org/pub/opensuse/distribution/leap/42.3/repo/oss/

   Additionally, --location can take 'kernel' and 'initrd' sub options. These paths relative to the specified location URL/ISO that allow
   selecting specific files for kernel/initrd within the install tree. This can be useful if virt-install/ libosinfo doesn't know where to find
   the kernel in the specified --location.

   For example, if you have an ISO that libosinfo doesn't know about called my-unknown.iso, with a kernel at 'kernel/fookernel' and initrd at
   'kernel/fooinitrd', you can make this work with:

     --location my-unknown.iso,kernel=kernel/fookernel,initrd=kernel/fooinitrd

Eu tentei várias variações do comando do problema:

Todas as sugestões de um amigo que já encontrou o mesmo erro antes e não se lembrava como o resolveu.

A tentativa ISO resultou nestas últimas linhas depois do quepareceucomo sucesso inicial:

mount: mounting /root/cdrom/casper/extras/modules.squashfs-generic on /root/lib/modules failed: No such file or directory
mount: mounting /dev on /root/dev failed: No such file or directory
[a few more of these]
run-init: current directory on the same filesystem as the root: error 0
Target filesystem doesn't have requested /sbin/init.
[more run-init errors]
No init found. Try passing init= bootarg.


BusyBox v1.27.2 (Ubuntu 1:1.27.2-2ubuntu3.3) built-in shell (ash)
Enter 'help' for a list of built-in commands.

(initramfs)

Estou muito além da minha capacidade de resolver isso e preciso desesperadamente de ajuda para colocar uma VM em execução.

A configuração da VM que pretendo realizar:

  • VM no caminho/dragonode/dragonode.qcow2
  • VM OS: Ubuntu 18.04 LTS, sem gráficos
  • Vincule a interface de rede virtual da VM abr0
  • Forneça o endereço IP 192.168.1.144 para que eu possa fazer ssh imediatamente
  • O resto deve ser autoexplicativo no comando original

Responder1

Eu só uso oSeção Ubuntu Serverguide sobre virt-installcomo referência. Além disso, são necessários gráficos para realizar a instalação real, que pode ser via VNC. Usando o método ISO, com o iso já baixado e no diretório atual, aqui está uma sugestão de comando (supõe que ele possa obter um endereço IP do DHCP da rede host):

virt-install --name dragonode --ram 2048 \
--disk path=/dragonode/dragonode.img,bus=virtio,size=50 \
-c ubuntu-18.04.6-live-server-amd64.iso \
--network bridge=br0,model=virtio \
--video=vmvga --graphics vnc,listen=0.0.0.0 --noautoconsole -v --vcpus=1

informação relacionada