He luchado con qemu y virt-install sin éxito, y estoy completamente atascado con un mensaje de error inútil que no me lleva a ninguna parte.
PRIMERO, alguna configuración necesaria del sistema:
El sistema operativo base es Ubuntu Server 20.04 LTS. Sin entorno de escritorio. El sistema operativo de la VM será Ubuntu Server 18.04 LTS. Sin entorno de escritorio.
Tengo un LVM de 60 GB /dragonode
que pretendo usar como volumen de almacenamiento principal 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
He configurado con éxito un puente con netplan para que sirva como interfaz metálica para el 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
Y ahora el comando que improvisé y el 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.
La mayor parte de este comando lo monté principalmente usandoesta guíacon un poco de referencia adicional deesta colección de ejemplos(específicamente la sección vinculada) yesta útil documentación de RedHat, y también intercambió mensajes directamente con el autor del primer artículo.
Sin embargo, al ejecutar el comando anterior, puede ver un error genérico inútil.
La parte frustrante de esto es que esa URL vienedirectamente desde la página de manual paravirt-install
en la --location
definición del 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
Probé múltiples variaciones del comando del problema:
- Con diferentes
--location
URL que incluyenhttps://cloud-images.ubuntu.com/bionic/yhttp://ftp.at.debian.org/debian/dists/stable/main/installer-amd64/ - Descargué una instalación ISO directamente desde Ubuntu e intenté señalarla con
--location
- Intenté utilizar una imagen completa (específicamente:https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img)
Todas las sugerencias de un amigo que se encontró con el mismo error antes y no recordaba cómo lo resolvió.
El intento de ISO resultó en estas últimas líneas después de lo quepareciócomo éxito 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)
Estoy mucho más allá de mi propia capacidad para resolver esto y necesito desesperadamente ayuda para poner en funcionamiento una máquina virtual.
La configuración de VM que pretendo realizar:
- VM en la ruta
/dragonode/dragonode.qcow2
- SO VM: Ubuntu 18.04 LTS, sin gráficos
- Vincular la interfaz de red virtual de la VM a
br0
- Provisión con la dirección IP 192.168.1.144 para que pueda acceder a ella inmediatamente
- El resto debería explicarse por sí mismo en el comando original.
Respuesta1
yo solo uso elSección de Ubuntu Serverguide sobre virt-installcomo una referencia. Además, se necesitan gráficos para realizar la instalación real, que puede realizarse a través de VNC. Usando el método ISO, con la ISO ya descargada y en el directorio actual, aquí hay un comando sugerido (se supone que puede obtener una dirección IP del DHCP de la red 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