J'essaie d'installer un invité entièrement virtualisé (Fedora 14 x86_64) sur KVM (RHEL 6), en utilisant uniquement la ligne de commande (à la fois l'hyperviseur et l'invité). Cela va sans erreurs et sans un résultat tangible. J'aimerais savoir comment faire une installation en texte seul.
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? Si je comprends bien après avoir googlé pendant quelques jours, je devrais voir la sortie de l'invité de l'installation de texte, mais rien ne se passe. virt-viewer ne peut pas s'y connecter, suggérant avec bonté que j'explore toutes les options en ajoutant --help (ce que j'ai fait). Si je me reconnecte 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
Journal Qemu:
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>
De toute évidence, il me manque quelque chose que beaucoup d'autres ne font pas, mais qu'est-ce que c'est? Merci d'avance!
J'ai copié --extra-args='console=ttyS0'
quelque part d'Internet la dernière fois, ça marche!
Voir: http://anaconda-installer.readthedocs.io/en/latest/boot-options.html
--nographics
est utilisé, et vous n'avez aucune console configurée dans l'invité, à part la console tty0. Si vous voulez une console graphique, particulièrement disponible à distance, vous devez 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 rencontré un problème similaire en essayant d'effectuer une installation en texte uniquement de CentOS. Tout se résume à ajouter des arguments de noyau pour spécifier la console de sortie série console=ttyS0
Afin que vous puissiez ensuite vous y connecter lorsque --graphics none
Ou --nographics
Est utilisé. Dans le manuel de virt-install
:
- graphisme aucun
Aucune console graphique ne sera alloué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 être fait via l'option --extra-args). Xen PV le configurera 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 manières:
--cdrom
--location
avec --extra-args
1. Modification de l'image
Afin de modifier les paramètres du noyau sur le disque d'installation iso:
isolinux/isolinux.cfg
Sur l'image, ouvrez-le, recherchez la première ligne avec initrd=
Dessus et ajoutez-y console=ttyS0
Et toutes les autres lignes qui ont le paramètre mentionné .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
Montez l'image:
$ Sudo mount -o loop,unhide -t iso9660 -r /home/user/images/CentOS.iso /home/user/mnt/cdrom
Démarrez le service NFS s'il n'est pas en cours d'exécution: service nfs start
Ajoutez la ligne suivante dans /etc/exports
Pour la mettre à la disposition des clients:
/home/user/mnt/cdrom *(ro,insecure,all_squash)
Actualisez la table d'exportation du système avec:
$ exportfs -r
Utilisez le partage avec virt-install
En veillant à respecter 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"
Pendant l'installation de CentOS, vous obtenez une invite vous demandant 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 de Fedora en mode texte. Essayez d'ajouter du "texte" aux arguments 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 sera démarré
Je fais mes installations depuis un certain temps maintenant en utilisant cordonnier et koan. Dans cordonnier, j'ai défini mes options de noyau comme ceci sous 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 appareils; cela ne fonctionne pas pour l'installation. Si vous modifiez les options grub sous/etc/grub et régénérez grub.conf, les paramètres de la console série survivront à une mise à niveau du noyau. Ajoutez du "texte" à la ligne de commande du noyau pour empêcher le programme d'installation de démarrer une interface graphique.
Lorsque mes instances KVM guest démarrent, je me connecte à elles en étant connecté à 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 de commencer à construire l'un de mes KVM invités, je l'appelle avec le commutateur --nogfx comme ceci:
koan --server 192.168.1.1 --virt --nogfx --system=guestvm
Je suppose que vous voyez une console mal configurée.
Essayez peut-être ceci ou similaire:
J'ajoute d'abord la ligne de console à ma configuration grub, par ex. pour un invité Arch: kernel/vmlinuz26 root =/dev/vda2 ro console = ttyS0,115200 Ensuite, 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
--Éditer--
Tu pourrais essayer console=ttyS0,115200
et peut-être vérifier d'autres paramètres de console possibles.