Ich habe vergeblich mit QEMU und Virt-Install gekämpft und stecke nun völlig fest, obwohl mir eine nicht hilfreiche Fehlermeldung angezeigt wird, die mich absolut nicht weiterbringt.
ZUERST einige notwendige Systemkonfigurationen:
Das Basis-Betriebssystem ist Ubuntu Server 20.04 LTS. Keine Desktop-Umgebung. Das VM-Betriebssystem wird Ubuntu Server 18.04 LTS sein. Keine Desktop-Umgebung.
Ich habe ein 60 GB großes LVM, /dragonode
das ich als primäres Speichervolume für diese virtuelle Maschine verwenden möchte:
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
Ich habe erfolgreich eine Brücke mit Netplan konfiguriert, die als Metallschnittstelle für das System dient:
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
Und nun der Befehl, den ich zusammengeschustert habe, und das Problem:
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.
Den größten Teil dieses Befehls habe ich zusammengestellt mitdieser Leitfadenmit ein paar zusätzlichen Verweisen aufdiese Sammlung von Beispielen(insbesondere der verlinkte Abschnitt) unddiese hilfreiche RedHat-Dokumentation, und habe auch direkt mit dem Autor des ersten Artikels Nachrichten ausgetauscht.
Beim Ausführen des obigen Befehls wird jedoch der wenig hilfreiche allgemeine Fehler angezeigt.
Das Frustrierende daran ist, dass diese URLdirekt von der Manpage fürvirt-install
in der --location
Argumentdefinition:
-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
Ich habe mehrere Varianten des Problembefehls ausprobiert:
- Mit verschiedenen
--location
URLs einschließlichhttps://cloud-images.ubuntu.com/bionic/Undhttp://ftp.at.debian.org/debian/dists/stable/main/installer-amd64/ - Ich habe eine Installations-ISO direkt von Ubuntu heruntergeladen und versucht, darauf zu verweisen mit
--location
- Ich habe versucht, ein vollständiges Bild zu verwenden (insbesondere:https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img)
Alle Vorschläge stammen von einem Freund, der denselben Fehler schon einmal hatte und sich nicht erinnern konnte, wie er ihn gelöst hat.
Der Versuch der ISO resultierte in diesen letzten Zeilen, nach demschienwie anfängliche Erfolge:
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)
Ich bin mit meiner eigenen Lösungskompetenz so weit überfordert und brauche dringend Hilfe, um eine VM zum Laufen zu bekommen.
Das VM-Setup, das ich durchführen möchte:
- VM am Pfad
/dragonode/dragonode.qcow2
- VM-Betriebssystem: Ubuntu 18.04 LTS, ohne Grafik
- Binden Sie die virtuelle Netzwerkschnittstelle der VM an
br0
- Bereitstellung mit der IP-Adresse 192.168.1.144, damit ich sofort per SSH darauf zugreifen kann
- Der Rest sollte im Originalbefehl selbsterklärend sein
Antwort1
Ich benutze nur dieAbschnitt „Virt-Install“ im Ubuntu Serverguideals Referenz. Außerdem werden Grafiken benötigt, um die eigentliche Installation durchzuführen, die über VNC erfolgen kann. Bei Verwendung der ISO-Methode, wobei das ISO bereits heruntergeladen wurde und sich im aktuellen Verzeichnis befindet, ist hier ein empfohlener Befehl (vorausgesetzt, er kann eine IP-Adresse vom DHCP des Hostnetzwerks abrufen):
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