Haftungsausschluss :
Jetzt virt-manager
erstelle und verwalte ich meine VM und sie ist wirklich ein Lebensretter. Es kann remote verwendet werden (von einem dritten Computer, normalerweise Ihrer Workstation), wenn der Host keine grafische Anzeige hat.
Die Vorkommen vnc
in den Installations-Tutorials, die ich gefunden habe, ließen mich denken, dass die "empfohlene" Prozedur X-Zeug entweder auf Host, Gast oder beidem erforderte. Absolut nicht. Mein Fehler. Wenn Sie sich in der gleichen Situation befinden, überlegen Sie es sich zweimal, bevor Sie versuchen, die VM über die Befehlszeile zu installieren.
Ich versuche, eine Debian-VM unter Verwendung von auf einem Debian-Host zu installieren, virt-install
und ich weiß nicht, wie ich das ISO-Image übergeben soll.
virt-install --connect qemu:///system --virt-type kvm --name prod --ram 6144 --disk /srv/vm/prod.qcow,format=qcow2,size=10 --location=/home/jerome/debian-8.0.0-amd64-netinst.iso --network bridge=br0 --os-type linux --os-variant debianwheezy --extra-args='console=tty0 console=ttyS0,115200n8 serial'
Starting install...
Retrieving file info... | 160 B 00:00 ...
ERROR Could not find an installable distribution at '/home/jerome/debian-8.0.0-amd64-netinst.iso'
The location must be the root directory of an install tree.
Domain installation does not appear to have been successful.
If it was, you can restart your domain by running:
virsh --connect qemu:///system start prod
otherwise, please restart your installation.
root@versailles:/etc#
Die Lösungen, die ich gesehen habe, scheinen ziemlich verdreht zu sein, als würde Apache lokal für das ISO-Image verwendet, als wäre es von einem entfernten Ort.
- Linux Mint 14: Installiere Ubuntu 12.10 Server innerhalb von KVM via CLI (keine GUI)
- [Xen-Benutzer] installieren eine VM mit virt-install (Es ist Xen, aber es sieht so aus, als ob es sowieso das gleiche Problem ist.
Ich kann nicht glauben, dass es so kompliziert ist. Ist es?
man virt-install
sagt:
If you want to use those options with CDROM media, you have a few options:
* Run virt-install as root and do --location ISO
* Mount the ISO at a local directory, and do --location DIRECTORY
* Mount the ISO at a local directory, export that directory over local http, and do --location http://localhost/DIRECTORY
Mache ich das nicht?
Jemand sagt, er habe die ISO-Datei auf / cdrom verschoben, und es hat funktioniert, aber ich habe nicht genau verstanden, was er getan hat, und ich konnte sie nicht reproduzieren.
Ich kann nicht --cdrom
statt --location
wie in dieser Frage verwenden, weil --extra-args
nur funktionieren, wenn angegeben mit --location
.
virt-install --connect qemu:///system --virt-type kvm --name prod --ram 6144 --disk /srv/vm/prod.qcow,format=qcow2,size=10 --cdrom=/home/jerome/debian-8.0.0-amd64-netinst.iso --network bridge=br0 --os-type linux --os-variant debianwheezy --extra-args='console=tty0 console=ttyS0,115200n8 serial'
ERROR --extra-args only work if specified with --location. See the man page for examples of using --location with CDROM media
Bearbeiten:
Einloggen mit --debug
virt-install --connect qemu:///system --virt-type kvm --name prod --ram 6144 --disk /srv/vm/prod.qcow,format=qcow2,size=10 --location=/home/jerome/debian-8.0.0-amd64-netinst.iso --network bridge=br0 --os-type linux --os-variant debianwheezy --extra-args='console=tty0 console=ttyS0,115200n8 serial' --debug
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (cli:187) Launched with command line: /usr/share/virt-manager/virt-install --connect qemu:///system --virt-type kvm --name prod --ram 6144 --disk /srv/vm/prod.qcow,format=qcow2,size=10 --location=/home/jerome/debian-8.0.0-amd64-netinst.iso --network bridge=br0 --os-type linux --os-variant debianwheezy --extra-args=console=tty0 console=ttyS0,115200n8 serial --debug
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (cli:195) Requesting libvirt URI qemu:///system
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (cli:199) Received libvirt URI qemu:///system
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (virt-install:193) Requesting virt method 'default', hv type 'kvm'.
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (virt-install:432) Received virt method 'kvm'
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (virt-install:433) Hypervisor name is 'hvm'
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (cli:476) DISPLAY is not set: defaulting to nographics.
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (guest:208) Setting Guest.os_variant to 'debianwheezy'
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (diskbackend:171) Path '/srv/vm' is target for pool 'srv-kvm'. Creating volume 'prod.qcow'.
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (connection:228) Fetching volume XML failed: Storage volume not found: no storage vol with matching path '/media/cdrom0/debian-8.0.0-amd64-netinst.iso'
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (virt-install:551) Guest.has_install_phase: True
Starting install...
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (distroinstaller:417) Using scratchdir=/var/lib/libvirt/boot
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:204) Preparing mount at /var/lib/libvirt/boot/virtinstmnt.srz86f
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:214) mount cmd: ['/bin/mount', '-o', 'ro,loop', '/home/jerome/debian-8.0.0-amd64-netinst.iso', '/var/lib/libvirt/boot/virtinstmnt.srz86f']
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:302) Finding distro store for location=/home/jerome/debian-8.0.0-amd64-netinst.iso
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/.treeinfo
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:325) Prioritizing distro store=<class 'virtinst.urlfetcher.DebianDistro'>
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/current/images/MANIFEST
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/daily/MANIFEST
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/Fedora
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:99) Fetching URI: /var/lib/libvirt/boot/virtinstmnt.srz86f/.disk/info
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:110) Saved file to /var/lib/libvirt/boot/virtinst-info.lZMVqL
Retrieving file info... | 160 B 00:00 ...
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:1016) Regex didn't match, not a ALT Linux distro
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/current/images/MANIFEST
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/install/netboot/version.info
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/SL
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/directory.yast
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/CentOS
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/VERSION
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/Server
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/Client
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/RedHat
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/images/pxeboot/vmlinuz
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/images/boot.iso
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/boot/boot.iso
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/current/images/netboot/mini.iso
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/install/images/boot.iso
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:225) Cleaning up mount at /var/lib/libvirt/boot/virtinstmnt.srz86f
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (cli:234) File "/usr/share/virt-manager/virt-install", line 876, in <module>
sys.exit(main())
File "/usr/share/virt-manager/virt-install", line 870, in main
start_install(guest, continue_inst, options)
File "/usr/share/virt-manager/virt-install", line 588, in start_install
fail(e, do_exit=False)
File "/usr/share/virt-manager/virtinst/cli.py", line 234, in fail
logging.debug("".join(traceback.format_stack()))
[mer., 03 juin 2015 17:46:12 virt-install 12991] ERROR (cli:235) Could not find an installable distribution at '/home/jerome/debian-8.0.0-amd64-netinst.iso'
The location must be the root directory of an install tree.
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (cli:237)
Traceback (most recent call last):
File "/usr/share/virt-manager/virt-install", line 560, in start_install
dom = guest.start_install(meter=meter, noboot=options.noreboot)
File "/usr/share/virt-manager/virtinst/guest.py", line 384, in start_install
self._prepare_install(meter, dry)
File "/usr/share/virt-manager/virtinst/guest.py", line 277, in _prepare_install
util.make_scratchdir(self.conn, self.type))
File "/usr/share/virt-manager/virtinst/installer.py", line 201, in prepare
self._prepare(guest, meter, scratchdir)
File "/usr/share/virt-manager/virtinst/distroinstaller.py", line 444, in _prepare
self._prepare_kernel_url(guest, fetcher)
File "/usr/share/virt-manager/virtinst/distroinstaller.py", line 347, in _prepare_kernel_url
store = urlfetcher.getDistroStore(guest, fetcher)
File "/usr/share/virt-manager/virtinst/urlfetcher.py", line 346, in getDistroStore
fetcher.location))
ValueError: Could not find an installable distribution at '/home/jerome/debian-8.0.0-amd64-netinst.iso'
The location must be the root directory of an install tree.
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (cli:248) Domain installation does not appear to have been successful.
If it was, you can restart your domain by running:
virsh --connect qemu:///system start prod
otherwise, please restart your installation.
Domain installation does not appear to have been successful.
If it was, you can restart your domain by running:
virsh --connect qemu:///system start prod
otherwise, please restart your installation.
Es funktioniert mit, --location http://ftp.us.debian.org/debian/dists/stable/main/installer-amd64/
aber ist es nicht eine Schande, dies zu tun, wenn ein ISO-Image lokal verfügbar ist?
Verlust der Rückverfolgbarkeit: Sie können später nicht mehr reproduzieren, wenn Sie sicher sind, dass Sie genau dieselbe Quelle erhalten.
Mehrfache Nutzung der Bandbreite von Servern / Spiegeln.
Benötigen Sie einen Internetzugang.
Langsamer.
Antworten:
virt-install
versucht, Kernel- und initrd-Dateien aus dem ISO-Image zu extrahieren. Mit--debug
können Sie die gesamten Aktivitäten sehen, einschließlich Loop-Montage, Suche nach diesen Dateien usw.Ich nehme an,
virt-install
dass Debian mit ISO-Images nicht unterstützt wird--location
(aber irgendwie Ubuntu unterstützt?).Um einen neuen Kernel mit Booten
--extra-args
,virt-install
Bedürfnisse, jene Kernel und entsprechenden initrd - Dateien.--cdrom
Verbindet einfach die ISO-Datei mit dem CD-Laufwerk des Gastes, was nicht ausreicht, um damit zu arbeiten--extra-args
.Wenn Sie verwenden möchten
--extra-args
, empfehle ich Ihnen, "netboot" -Kernel / initrd-Dateien zu verwenden, indem Sie die Debian-Installations-URL Ihres nächsten Spiegels wie--location http://ftp.us.debian.org/debian/dists/stable/main/installer-amd64/
im Handbuch beschrieben angeben .quelle
Diese Methode hat bei mir funktioniert:
quelle
Der Unterschied liegt in den verwendeten ISO-Dateien .
Es hängt nicht mit der Art und Weise der
virt-install
Verwendung zusammen (--location
verwendet mit http URL im Vergleich--location
zum Pfad zu einer lokalen ISO-Datei).Hier ist ein Befehl, der funktioniert, wenn Sie die Debian-Online-Repositorys wie folgt verwenden
--location
(einschließlich der Ausgabe, um die Installation bis zum ersten Start abzuschließen (dann sind zwei weitere Schritte erforderlich, um endlich in die neue VM zu gelangen, aber das ist eine andere Geschichte):Sie können genau den gleichen Befehl ausführen , aber die oben genannte Centos-ISO-Datei als verwenden
--location
, und dies funktioniert auch (mit der Ausnahme, dass die Verbindung zur seriellen Konsole zunächst nicht funktioniert, die Installation jedoch im Prinzip mit --location beginnt und die ISO-Datei):Ausgabe ist:
Aber wenn Sie die Debian-ISO-Datei für verwenden
--location
, erhalten Sie den Fehler:IMHO beweist dies, dass etwas fehlt / irgendetwas "falsch" mit der Debian-ISO ist (im Moment nicht sicher, woher ich es habe, aber vielleicht kann jemand ein neues herunterladen und die Tests wiederholen ...)
quelle
virt-install
die Verzeichnisstruktur gesuchtinitrd.img
und "durchsucht" werden kannkernel.img
. Bei einer lokalen ISOvirst-install
muss zuerstmount
die ISO die Verzeichnisstruktur durchlaufen undmount
benötigt natürlich Root-Zugriff, um beliebige (Nicht-fstab
) Speicherorte bereitzustellen .--location
für alle 3. Der Centos-6virt-install
erkennt die Ubuntu-Verzeichnisstruktur nicht und--debug
sagt dir das. Die oberste Ebene von Centos-7 enthält eine.treeinfo
, nach der gesucht wird. Daher wirdvirt-install
versucht, sie zu starten. Scheitert aber trotzdem später. Ich bin erstaunt, was für ein Haufen **** diese Software ist.Das Folgende funktionierte für mich, wenn ich Debian 10 von einem Ubuntu 16.04-Hostsystem aus installierte:
quelle
Es ist hässlich, vor allem, wenn Sie Kickstart-Dateien verwenden möchten, aber ich habe Folgendes getan, um diesen Prozess in Gang zu bringen:
Der grundlegende Unterschied zwischen dem, was ich getan habe und dem, was Sie getan haben, besteht darin, dass ich das
--location
Tag (-l
kurz) verwendet habe, um auf meine ISO zu verweisen.quelle
RHCE2
.ist kürzlich auf dieses Problem gestoßen. Benutzt einfach ein Remote-Installationsprogramm mit --location. Ich muss betonen, dass abhängig von Ihrer Virsh-Version Links für Remote-Installer in der Manpage möglicherweise veraltet sind.
Ich habe gerade dieses Beispiel befolgt und alles lief reibungslos: https://www.packet.com/developers/guides/kvm-and-libvirt/
In meinem Fall habe ich in http://us.archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/ 'xenial' für 'bionic' geändert und die Installation wurde durchgeführt. Ich werde diese Methode von nun an jedes Mal anwenden.
quelle