Avertissement :
J'utilise maintenant virt-manager
pour créer et gérer ma machine virtuelle et c'est vraiment un épargnant de vie. Il peut être utilisé à distance (à partir d'une troisième machine, généralement votre poste de travail) si l'hôte n'a pas d'affichage graphique.
Les occurrences de vnc
dans les didacticiels d'installation que j'ai trouvés m'ont fait penser que la procédure "recommandée" exigeait des trucs X sur l'hôte, l'invité ou les deux. Absolument pas. Mon erreur. Si vous êtes dans la même situation, réfléchissez-y à deux fois avant d'essayer d'installer la machine virtuelle à partir de la ligne de commande.
J'essaie d'installer une machine virtuelle Debian dans un hôte Debian en utilisant virt-install
et je ne sais pas comment lui transmettre l'image .iso.
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#
Les solutions que j'ai vues semblent assez tordues, comme utiliser apache pour servir localement l'image .iso comme si elle venait d'un endroit éloigné.
- Linux Mint 14: installez le serveur Ubuntu 12.10 dans KVM via CLI (pas d'interface graphique)
- [Xen-users] installant un vm avec virt-install (C'est Xen mais il semble que ce soit le même problème de toute façon.
Je ne peux pas croire que ce soit si compliqué. C'est ça?
man virt-install
dit:
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
N'est-ce pas ce que je fais?
Quelqu'un dit qu'il a déplacé le .iso vers / cdrom et cela a fonctionné mais je n'ai pas compris exactement ce qu'il a fait et je n'ai pas pu le reproduire.
Je ne peux pas utiliser à la --cdrom
place de --location
comme dans cette question car --extra-args
ne fonctionne que si spécifié avec --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
Éditer:
Connectez-vous avec --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.
Cela fonctionne avec --location http://ftp.us.debian.org/debian/dists/stable/main/installer-amd64/
mais n'est-ce pas un peu dommage de le faire lorsqu'une image .iso est disponible localement?
Perte de traçabilité: vous ne pouvez pas reproduire plus tard en étant sûr d'obtenir exactement la même source.
Utilisation multipliée de la bande passante des serveurs / miroirs.
Besoin d'un accès Internet.
Ralentissez.
Réponses:
virt-install
essaie d'extraire le noyau et les fichiers initrd de l'image ISO. Avec--debug
vous pouvez voir l'ensemble de ses activités, y compris le montage en boucle, la recherche de ces fichiers, etc.Je suppose
virt-install
que ne prend pas en charge les images ISO Debian netinst avec--location
(mais en quelque sorte Ubuntu est-il pris en charge?).Pour démarrer un noyau avec
--extra-args
,virt-install
doit avoir ce noyau et les fichiers initrd correspondants.--cdrom
attache simplement l'ISO au lecteur de CD de l'invité, ce qui est insuffisant pour travailler avec--extra-args
.Si vous voulez l'utiliser
--extra-args
, je vous recommande d'utiliser les fichiers noyau / initrd "netboot" en spécifiant l'URL du programme d'installation Debian de votre miroir le plus proche, comme--location http://ftp.us.debian.org/debian/dists/stable/main/installer-amd64/
décrit dans le manuel.la source
Cette méthode a fonctionné pour moi:
la source
La différence réside dans les fichiers iso utilisés.
Ce n'est pas lié à la façon dont il
virt-install
est utilisé (--location
utilisé avec l'URL http par rapport--location
au chemin vers un fichier iso local).Voici une commande qui fonctionne lorsque vous utilisez les référentiels en ligne Debian en tant que
--location
(y compris obtenir la sortie pour terminer l'installation jusqu'au premier démarrage (puis deux autres étapes sont nécessaires pour enfin accéder à la nouvelle machine virtuelle, mais c'est une autre histoire):Vous pouvez prendre la commande exactement le même, mais en utilisant mentionné ci - dessus fichier ISO Centos comme
--location
, et il fonctionne aussi bien (sauf que la connexion à la console série ne semble pas fonctionner au début, mais en principe le début de l' installation à l' aide --location et le fichier ISO):La sortie est:
Mais si vous utilisez le fichier ISO Debian pour
--location
, vous obtenez l'erreur:À mon humble avis, cela prouve qu'il y a quelque chose manquant / quelque chose de "mal" avec l'ISO Debian (je ne sais pas au moment d'où je l'ai obtenu, mais peut-être que quelqu'un peut en télécharger un nouveau et répéter les tests ...)
la source
virt-install
on peut "parcourir" la structure de répertoires à la recherche deinitrd.img
etkernel.img
. Avec un ISO local,virst-install
doit d'abordmount
l'ISO pour parcourir la structure de répertoires, et bien sûr,mount
nécessite un accès root pour monter desfstab
emplacements (non ) arbitraires .--location
pour tous les 3. Le Centos-6virt-install
ne reconnaît pas la structure du répertoire Ubuntu et--debug
vous le dit. Le niveau supérieur du Centos-7 inclut un.treeinfo
, qui est l'une des choses àvirt-install
rechercher, il essaie donc de le démarrer. Mais échoue plus tard de toute façon. Je suis étonné de voir ce tas de **** ce logiciel.Ce qui suit a fonctionné pour moi en installant Debian 10 à partir d'un système hôte Ubuntu 16.04:
la source
C'est moche, surtout si vous voulez utiliser des fichiers kickstart, mais voici ce que j'ai fait pour lancer ce processus:
La différence fondamentale entre ce que j'ai fait et ce que vous avez fait est que j'ai utilisé la
--location
balise (-l
pour faire court) pour pointer vers mon iso.la source
RHCE2
.récemment rencontré ce problème. Utilisez simplement un programme d'installation à distance avec --location. Je dois souligner que selon votre version virsh, les liens pour les installateurs distants peuvent être obsolètes dans la page de manuel.
Je viens de suivre cet exemple et tout s'est bien passé: https://www.packet.com/developers/guides/kvm-and-libvirt/
Dans mon cas, j'ai changé «xenial» pour «bionic» dans http://us.archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/ et l'installation s'est terminée . Je vais utiliser cette méthode à chaque fois à partir de maintenant.
la source