33 votos

KVM Huésped instalado desde la consola. Pero, ¿cómo llegar a la habitación del huésped de la consola?

Estoy tratando de instalar un huésped completamente virtualizado (Fedora 14 x86_64) en KVM (RHEL 6), utilizando sólo la línea de comandos (tanto de hipervisor y el invitado). Va sin errores, y sin un resultado tangible . Me gustaría saber cómo hacer un sólo texto de la instalación.

Así que, aquí está lo que he hecho:

# 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 ^]
ÿ

Ahora, ¿qué? Como yo lo entiendo después de googlear un par de días, tengo de ver el huésped de la salida de la instalación en modo texto, pero no pasa nada. virt-viewer no puede conectarse a él, amablemente, lo que sugiere que voy a explorar todas las opciones mediante la adición --help (que hice yo). Si puedo volver a conectar con virsh, veo esto:

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 ^]

Esto demuestra que la VM se está ejecutando

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

Qemu registro:

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

Salida 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>

Estoy, obviamente, falta algo que muchos otros no, pero ¿qué es? Gracias de antemano!

12voto

brayden Puntos 71

He copiado --extra-args='console=tty0 console=ttyS0,115200n8 serial' en algún sitio de Internet de última hora, funciona!

6voto

dyasny Puntos 11858

--nographics se utiliza, y usted no tiene ninguna configuración de la consola en el huésped, además de la tty0 de la consola. Si quieres una consola gráfica, especialmente disponibles de forma remota sería necesario habilitar vga y vnc, o qxl y especias. este es un ejemplo: 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 o http://ubuntuforums.org/showpost.php?p=9610421&postcount=7 también es una solución.

6voto

Marcus Adams Puntos 27070

He tenido un problema similar cuando se intenta realizar una instalación de CentOS. Todo se reduce a la adición de argumentos del kernel para la especificación de serie de la consola de salida console=ttyS0 , de modo que pueda conectarse a él cuando --graphics none o --nographics se utiliza. De virt-install's manual:

--gráficos ninguno

No gráfica de la consola serán asignados para el huésped. Totalmente de huéspedes virtualizados (Xen FV o QEmu/KVM) tendrá que tener una consola de texto configurado en el primer puerto serie en el huésped (esto se puede hacer a través de la-más-args opción). Xen PV hará automáticamente. El comando virsh NOMBRE de consola " puede ser utilizado para conectar el dispositivo serie.

He conseguido resolverlo de dos formas:

  1. mediante la modificación de la imagen iso y el uso de la --cdrom opción
  2. mediante la exposición de la imagen iso como NFS y el uso de la --location opción --extra-args

1. La modificación de la imagen

Con el fin de modificar los parámetros del kernel en la iso del disco de instalación:

  1. Obtener un programa que permite manipular las imágenes, por ejemplo, isomaster.
  2. Ir a a la isolinux/isolinux.cfg de archivo de la imagen, abrir, busque la primera línea con initrd= en él y anexar console=ttyS0 a la misma y todas las demás líneas que tiene el mencionado parámetro.
  3. Guarde el archivo y la imagen.
  4. El uso de la imagen modificada con virt-install como de costumbre, por ejemplo:

    $ 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
    

Hecho.

2. El uso de un recurso compartido de NFS

  1. Montar la imagen:

    $ sudo mount -o loop,unhide -t iso9660 -r /home/user/images/CentOS.iso /home/user/mnt/cdrom
    
  2. Inicie el servicio NFS si no se ejecuta: service nfs start

  3. Agregue la siguiente línea en /etc/exports , para ponerla a disposición de los clientes:

    /home/user/mnt/cdrom    *(ro,insecure,all_squash)
    
  4. Actualizar el sistema de exportación de la tabla con:

    $ exportfs -r
    
  5. Utilice el compartir con virt-install asegurándose de inculde la --extra-args, por ejemplo:

    $ 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. Durante la instalación de CentOS usted obtiene un mensaje preguntando acerca de la ubicación de los archivos de instalación. Usted tiene que escribir la dirección de la máquina y la ruta de acceso completa para el recurso compartido.

Hecho.

2voto

katriel Puntos 3328

Usted necesita para ejecutar el instalador de Fedora en modo de texto. Trate de añadir 'texto' a la extra args. Alternativamente, usted podría intentar agregar "vnc", que le permitirá conectar con el instalador de más de VNC una vez que se inicia

1voto

mjn Puntos 123

Me imagino que usted está viendo un mal configurado la consola.

Tal vez pruebe este o similares, First I add console line to my grub config, e.g. for an Arch guest: kernel /vmlinuz26 root=/dev/vda2 ro console=ttyS0,115200 Then I edit /etc/inittab to enable ttyS0 (same Arch guest): co:23:respawn:/sbin/agetty -8 115200 ttyS0 linux. And make sure you have ttyS0 in your /etc/securetty.

Más info aquí: `http://www.linux-kvm.com/content/running-kvm-nographics-no-console-output

--edit--

Usted podría tratar de console=ttyS0,115200y verificación de otros posibles parámetros de la consola tal vez.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: