KVM Guest installé à partir de la console. Mais comment accéder à la console de l'invité?

J'essaie d'installer un invité entièrement virtualisé (Fedora 14 x86_64) sur KVM (RHEL 6), en utilisant uniquement la ligne de commande (hyperviseur et invité). Cela va sans erreurs et sans résultat tangible. J'aimerais savoir comment faire une installation sans texte.

Alors, voici ce que j'ai fait:

# virt-install \ --name=FE --ram=756 --vcpus=1 \ --file=/var/lib/libvirt/images/FE.img --network bridge:br0 \ --nographics --os-type=linux \ --extra-args='console=tty0' -v \ --cdrom=/media/usb/Fedora-14-x86_64-Live-Desktop.iso Starting install... Creating domain... | 0 B 00:00 Connected to domain FE Escape character is ^] ÿ 

Maintenant quoi? Comme je comprends après googling pendant quelques jours, je devrais voir la sortie de l'invité à partir de l'installation du texte, mais rien ne se passe. Virt-viewer ne peut pas se connecter à lui, suggérant gentillement que j'examine toutes les options en ajoutant –help (ce que j'ai fait). Si je me reconnais avec virsh, je vois ceci:

 Domain installation still in progress. You can reconnect to the console to complete the installation process. [root@v ~] # virsh console FEConnected to domain FE Escape character is ^] 

Cela montre que VM est en cours d'exécution

 # virsh list Id Name State ---------------------------------- 8 FE running 

Qemu log:

 LC_ALL=C PATH=/sbin:/usr/sbin:/bin:/usr/bin /usr/libexec/qemu-kvm -S -M rhel6.0.0 -enable-kvm -m 756 -smp 1,sockets=1,cores=1,threads=1 -name FE -uuid 6989d008-7c89-424c-d2d3-f41235c57a18 -nographic -nodefconfig -nodefaults -chardev socket,id=monitor,path=/var/lib/libvirt/qemu/FE.monitor,server,nowait -mon chardev=monitor,mode=control -rtc base=utc -no-reboot -boot d -drive file=/var/lib/libvirt/images/FE.img,if=none,id=drive-ide0-0-0,format=raw,cache=none -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 -drive file=/media/usb/Fedora-14-x86_64-Live-Desktop.iso,if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -netdev tap,fd=20,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:0a:65:8d,bus=pci.0,addr=0x2 -chardev pty,id=serial0 -device isa-serial,chardev=serial0 -usb -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 char device redirected to /dev/pts/1 

Sortie de /etc/libvirt/qemu/FE.xml

 # cat /etc/libvirt/qemu/FE.xml <domain type='kvm'> <name>FE</name> <uuid>6989d008-7c89-424c-d2d3-f41235c57a18</uuid> <memory>774144</memory> <currentMemory>774144</currentMemory> <vcpu>1</vcpu> <os> <type arch='x86_64' machine='rhel6.0.0'>hvm</type> <boot dev='hd'/> </os> <features> <acpi/> <apic/> <pae/> </features> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <devices> <emulator>/usr/libexec/qemu-kvm</emulator> <disk type='file' device='disk'> <driver name='qemu' type='raw' cache='none'/> <source file='/var/lib/libvirt/images/FE.img'/> <target dev='hda' bus='ide'/> <address type='drive' controller='0' bus='0' unit='0'/> </disk> <disk type='block' device='cdrom'> <driver name='qemu' type='raw'/> <target dev='hdc' bus='ide'/> <readonly/> <address type='drive' controller='0' bus='1' unit='0'/> </disk> <controller type='ide' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/> </controller> <interface type='bridge'> <mac address='52:54:00:0a:65:8d'/> <source bridge='br0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </interface> <serial type='pty'> <target port='0'/> </serial> <console type='pty'> <target port='0'/> </console> <memballoon model='virtio'> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </memballoon> </devices> </domain> 

Je manque évidemment quelque chose que beaucoup d'autres ne le font pas, mais qu'est-ce que c'est? Thanx à l'avance!

J'ai copié --extra-args='console=tty0 console=ttyS0,115200n8 serial' quelque part d'Internet la dernière fois, ça marche!

--nographics est utilisée, et vous n'avez configuré aucune console dans l'invité, en plus de la console tty0. Si vous souhaitez une console graphique, spécialement disponible à distance, vous devriez activer vga et vnc, ou qxl et spice. Ceci est un exemple: http://www.linux-kvm.com/content/tip-how-run-headless-guest-machine-using-vnc-kvm

http://www.linux-kvm.com/content/running-kvm-nographics-no-console-output ou http://ubuntuforums.org/showpost.php?p=9610421&postcount=7 est également une solution.

J'ai eu un problème similaire lorsque je tente d'effectuer une installation uniquement de texte de CentOS. Tout se résume à l'ajout d'arguments du noyau pour spécifier la console de console=ttyS0 série console=ttyS0 afin que vous puissiez vous y connecter lorsque: --graphics none ou --nographics est utilisé. Du manuel virt-install :

–graphie none

Aucune console graphique ne sera attribuée à l'invité. Les invités entièrement virtualisés (Xen FV ou QEmu / KVM) devront avoir une console de texte configurée sur le premier port série de l'invité (cela peut se faire via l'option –extra-args). Xen PV va configurer cela automatiquement. La commande 'virsh console NAME' peut être utilisée pour se connecter au périphérique série.

J'ai réussi à le résoudre de deux façons:

  1. En modifiant l'image iso et en utilisant l'option --cdrom
  2. En exposant l'image iso en tant que partage NFS et en utilisant l'option --extra-args avec --extra-args

1. Modification de l'image

Pour modifier les paramètres du noyau sur le disque d'installation iso:

  1. Obtenez un programme qui permet de manipuler des images, par exemple, isomaster .
  2. Accédez au fichier isolinux/isolinux.cfg sur l'image, ouvrez-le, trouvez la première ligne avec initrd= dessus et ajoutez console=ttyS0 à elle et toutes les autres lignes qui ont le paramètre mentionné.
  3. Enregistrez le fichier et l'image.
  4. Utilisez l'image modifiée avec virt-install comme d'habitude, par exemple:

     $ sudo virt-install --name centos-vm --ram 1024 --disk path=/home/user/domains/centos-vm --cdrom /home/user/images/centos-modified.iso --os-type linux --nographics --accelerate 

Terminé.

2. Utilisation d'un partage NFS

  1. Monter l'image:

     $ sudo mount -o loop,unhide -t iso9660 -r /home/user/images/CentOS.iso /home/user/mnt/cdrom 
  2. Démarrez le service NFS s'il ne s'exécute pas: service nfs start

  3. Ajoutez la ligne suivante dans /etc/exports pour la rendre accessible aux clients:

     /home/user/mnt/cdrom *(ro,insecure,all_squash) 
  4. Actualisez la table d'exportation du système avec:

     $ exportfs -r 
  5. Utilisez le partage avec virt-install en vous assurant d' --extra-args le --extra-args , par exemple:

     $ sudo virt-install --name centos-vm --ram 1024 --disk path=/home/user/domains/centos-vm --location /home/user/mnt/cdrom --os-type linux --nographics --accelerate --extra-args="console=ttyS0" 
  6. Lors de l'installation de CentOS, vous recevez un message d'information sur l'emplacement des fichiers d'installation. Vous devez taper l'adresse de votre machine et le chemin d'accès complet au partage.

Terminé.

Vous devez exécuter le programme d'installation Fedora en mode texte. Essayez d'ajouter "texte" aux args supplémentaires. Alternativement, vous pouvez essayer d'ajouter "vnc" qui vous permettra de vous connecter au programme d'installation via VNC une fois qu'il est démarré

Je fais mes installations pendant un certain temps maintenant en utilisant cobbler et koan. Dans le cobbler, j'ai configuré mes options de noyau comme dans mon profil Centos60-x86_64:

 Kernel Options: serial console=ttyS0,115200 Kernel Options (Post Install): console=ttyS0,115200 

Après le démarrage, vous pouvez utiliser console = tty0 console = ttS0,115200 pour que la console s'affiche sur deux périphériques; Cela ne fonctionne pas pour l'installation. Si vous éditez les options grub sous / etc / grub et régénère grub.conf, les paramètres de la console série survivront à une mise à niveau du noyau. Ajoutez "texte" à la ligne de commande du noyau pour empêcher l'installateur de démarrer une interface graphique.

Lorsque mes instances invitées KVM commencent, je me connecte à elles lors de la connexion à l'hôte KVM et je me connecte à la console d'un invité comme ceci:

 [root@vmhost ~]# virsh console guestvm 

Je vois alors ceci dans mon shell:

 Connected to domain guestvm Escape character is ^] CentOS Linux release 6.0 (Final) Kernel 2.6.32-71.el6.x86_64 on an x86_64 guestvm login: 

Une dernière note, quand je dis à koan pour commencer à construire un de mes invités KVM, je l'appelle avec le commutateur –nogfx comme ça:

 koan --server 192.168.1.1 --virt --nogfx --system=guestvm 

Je suppose que vous voyez une console mal configurée.

Peut-être essayer ceci ou similaire:

Tout d'abord, j'ajoute une ligne de console à ma configuration grub, par exemple pour un invité Arch: kernel / vmlinuz26 root = / dev / vda2 ro console = ttyS0,115200 Puis je modifie / etc / inittab pour activer ttyS0 (même invité Arch): co: 23 : Respawn: / sbin / agetty -8 115200 ttyS0 linux. Et assurez-vous d'avoir ttyS0 dans votre / etc / securetty.

Plus d'informations ici: ` http://www.linux-kvm.com/content/running-kvm-nographics-no-console-output

–modifier–

Vous pouvez essayer console=ttyS0,115200 et vérifier d'autres paramètres possibles de la console.