jueves, 20 de mayo de 2010

Instalando VirtualBox en Fedora 12. Parte primera

Hay ocasiones en que se requiere contar con mas de un sistema operativo instalado en tu computador, ya sea de escritorio o portàtil. Ese es el concepto bàsico de una maquina virtual, aprovechar un solo hardware para tener varios sistemas operativos trabajando.

En años anteriores, se tenìa que particionar el o los discos duros, y en cada particiòn instalar el sistema operativo deseado, o diferentes versiones del mismo sistema operativo. El inconveniente en este esquema es que para accesar el sistema operativo deseado, hay que reiniciar el equipo de manera fìsica.

Virtualbox es un software creado por Sun Microsystem y hasta el momento de escribir esta informaciòn es gratuito, “bajandose” directamente de su sitio en internet. De manera muy particular mi portatil tiene una sola particiòn, siendo linux-fedora el sistema operativo principal o host.

He instalado de manera virtual windows XP y Ubuntu. En ambos casos trabajando de manera eficiente. Tambièn lo uso para probar nuevas versiones de fedora, tal serìa el caso para fedora 13 o windows vista.

A travès de la web, he probado diversos tutoriales para instalar este software y algunos al probarlos me presentan fallas.

El tutorial publicado por Andrew Liu, en la liga

Installing VirtualBox in Fedora 10:


me ha funcionado correctamente atreviendome a mencionarlo y traducirlo a continuaciòn.

Cabe aclarar que el autor (Andrew Liu) lo hace sobre fedora 10, yo lo probè usando fedora 12.

Tambièn aclaro que este proceso de instalaciòn es sobre las librerias y paquetes necesarios para que funcione correctamente Virtualbox. La configuraciòn e instalaciòn del s.o. huesped lo mencionarè en una segunda parte, y considero es muy sencillo, ya que virtualbox te lleva de la mano.

Accesar a la siguiente liga: http://www.virtualbox.org/ e ir al apartado “Downloads” y “bajar” VirtualBox 3.1.x for Linux hosts, la “x” significa la versiòn mas actual y puede variar.

Se requiere instalar paquetes adicionales. Abrir una ventana de comandos, entrar como superusuario (su) y proporcionar su clave, despuès digitar:

yum install make automake autoconf gcc kernel-devel dkms

Se verà una pantalla similar a la siguiente:

Loaded plugins: refresh-packagekit
fedora | 2.8 kB 00:00
updates | 2.3 kB 00:00
updates/primary_db | 2.9 MB 00:04
Setting up Install Process
Parsing package install arguments
Package 1:make-3.81-14.fc12.i386 already installed and latest version
Package automake-1.10.1-2.noarch already installed and latest version
Package autoconf-2.63-1.fc12.noarch already installed and latest version
Package gcc-4.3.2-7.i386 already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package dkms.noarch 0:2.0.19.1-1.fc12 set to be updated
---> Package kernel-devel.i686 0:2.6.27.19-170.2.35.fc12 set to be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
dkms noarch 2.0.19.1-1.fc12 fedora 90 k
kernel-devel i686 2.6.27.19-170.2.35.fc12 updates 5.5 M
Transaction Summary
================================================================================
Install 2 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 5.6 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): dkms-2.0.19.1-1.fc12.noarch.rpm | 90 kB 00:00
(2/2): kernel-devel-2.6.27.19-170.2.35.fc12.i686.rpm | 5.5 MB 00:08
--------------------------------------------------------------------------------
Total 653 kB/s | 5.6 MB 00:08
============================== Entering rpm code ===============================
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : kernel-devel 1/2
Installing : dkms 2/2
=============================== Leaving rpm code ===============================
Installed:
dkms.noarch 0:2.0.19.1-1.fc12 kernel-devel.i686 0:2.6.27.19-170.2.35.fc12

Complete!

Tambièn se necesita el paquete qt y sus complementos.

yum install qt qt-x11

Loaded plugins: refresh-packagekit
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
--> Running transaction check
---> Package qt-x11.i386 1:4.4.3-15.fc12 set to be updated
---> Package qt.i386 1:4.4.3-15.fc12 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
qt i386 1:4.4.3-15.fc12 updates 3.5 M
qt-x11 i386 1:4.4.3-15.fc12 updates 13 M
Transaction Summary
================================================================================
Install 2 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 16 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): qt-4.4.3-15.fc12.i386.rpm | 3.5 MB 00:06
(2/2): qt-x11-4.4.3-15.fc12.i386.rpm | 13 MB 00:18
--------------------------------------------------------------------------------
Total 651 kB/s | 16 MB 00:25
============================== Entering rpm code ===============================
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : qt 1/2
Installing : qt-x11 2/2
=============================== Leaving rpm code ===============================
Installed:
qt.i386 1:4.4.3-15.fc12 qt-x11.i386 1:4.4.3-15.fc12

Complete!

Todo el proceso de instalaciòn de las librerias necesarias relacionadas al kernel presenta una falla, hay un enlace simbòlico invàlido de "/lib/modules/2.6.27.12-170.2.5.fc12.i686/build".

Digitamos:

ls -al /lib/modules/2.6.27.12-170.2.5.fc12.i686/
total 3040
drwxr-xr-x 7 root root 4096 2009-02-06 05:27 .
drwxr-xr-x 5 root root 4096 2009-03-25 14:05 ..
lrwxrwxrwx 1 root root 52 2009-02-06 05:27 build -> ../../../usr/src/kernels/2.6.27.12-170.2.5.fc12.i686
drwxr-xr-x 2 root root 4096 2009-01-21 18:21 extra
drwxr-xr-x 9 root root 4096 2009-02-06 05:27 kernel
-rw-r--r-- 1 root root 433925 2009-02-06 05:27 modules.alias
-rw-r--r-- 1 root root 375886 2009-02-06 05:27 modules.alias.bin
-rw-r--r-- 1 root root 1571 2009-01-21 18:21 modules.block
-rw-r--r-- 1 root root 69 2009-02-06 05:27 modules.ccwmap
-rw-r--r-- 1 root root 368434 2009-02-06 05:27 modules.dep
-rw-r--r-- 1 root root 466977 2009-02-06 05:27 modules.dep.bin
-rw-r--r-- 1 root root 147 2009-02-06 05:27 modules.ieee1394map
-rw-r--r-- 1 root root 375 2009-02-06 05:27 modules.inputmap
-rw-r--r-- 1 root root 13391 2009-02-06 05:27 modules.isapnpmap
-rw-r--r-- 1 root root 10 2009-01-21 18:21 modules.modesetting
-rw-r--r-- 1 root root 1697 2009-01-21 18:21 modules.networking
-rw-r--r-- 1 root root 74 2009-02-06 05:27 modules.ofmap
-rw-r--r-- 1 root root 65894 2009-01-21 18:21 modules.order
-rw-r--r-- 1 root root 289843 2009-02-06 05:27 modules.pcimap
-rw-r--r-- 1 root root 1135 2009-02-06 05:27 modules.seriomap
-rw-r--r-- 1 root root 144619 2009-02-06 05:27 modules.symbols
-rw-r--r-- 1 root root 192499 2009-02-06 05:27 modules.symbols.bin
-rw-r--r-- 1 root root 643463 2009-02-06 05:27 modules.usbmap
lrwxrwxrwx 1 root root 5 2009-02-06 05:27 source -> build
drwxr-xr-x 2 root root 4096 2009-01-21 18:21 updates
drwxr-xr-x 2 root root 4096 2009-02-06 05:27 vdso
drwxr-xr-x 2 root root 4096 2009-01-21 18:21 weak-updates

Nos cambiamos al directorio:

cd /lib/modules/2.6.27.12-170.2.5.fc12.i686/

Borramos:
rm build
rm: remove symbolic link `build'? y

Hacemos el enlace correctamente:
ln -s /usr/src/kernels/2.6.27.19-170.2.35.fc12.i686 build

ls -al
total 3040
drwxr-xr-x 7 root root 4096 2009-03-25 14:15 .
drwxr-xr-x 5 root root 4096 2009-03-25 14:05 ..
lrwxrwxrwx 1 root root 45 2009-03-25 14:15 build -> /usr/src/kernels/2.6.27.19-170.2.35.fc12.i686
drwxr-xr-x 2 root root 4096 2009-01-21 18:21 extra
drwxr-xr-x 9 root root 4096 2009-02-06 05:27 kernel
-rw-r--r-- 1 root root 433925 2009-02-06 05:27 modules.alias
-rw-r--r-- 1 root root 375886 2009-02-06 05:27 modules.alias.bin
-rw-r--r-- 1 root root 1571 2009-01-21 18:21 modules.block
-rw-r--r-- 1 root root 69 2009-02-06 05:27 modules.ccwmap
-rw-r--r-- 1 root root 368434 2009-02-06 05:27 modules.dep
-rw-r--r-- 1 root root 466977 2009-02-06 05:27 modules.dep.bin
-rw-r--r-- 1 root root 147 2009-02-06 05:27 modules.ieee1394map
-rw-r--r-- 1 root root 375 2009-02-06 05:27 modules.inputmap
-rw-r--r-- 1 root root 13391 2009-02-06 05:27 modules.isapnpmap
-rw-r--r-- 1 root root 10 2009-01-21 18:21 modules.modesetting
-rw-r--r-- 1 root root 1697 2009-01-21 18:21 modules.networking
-rw-r--r-- 1 root root 74 2009-02-06 05:27 modules.ofmap
-rw-r--r-- 1 root root 65894 2009-01-21 18:21 modules.order
-rw-r--r-- 1 root root 289843 2009-02-06 05:27 modules.pcimap
-rw-r--r-- 1 root root 1135 2009-02-06 05:27 modules.seriomap
-rw-r--r-- 1 root root 144619 2009-02-06 05:27 modules.symbols
-rw-r--r-- 1 root root 192499 2009-02-06 05:27 modules.symbols.bin
-rw-r--r-- 1 root root 643463 2009-02-06 05:27 modules.usbmap
lrwxrwxrwx 1 root root 5 2009-02-06 05:27 source -> build
drwxr-xr-x 2 root root 4096 2009-01-21 18:21 updates
drwxr-xr-x 2 root root 4096 2009-02-06 05:27 vdso
drwxr-xr-x 2 root root 4096 2009-01-21 18:21 weak-updates

La terminaciòn fc10, fc11 o fc12 serà para la versiòn de fedora que se tenga instalado.

Se instala usando el comando RPM el programa de VirtualBox que bajamos de la pagina de “Sun Microsystem”:

Un mensaje parecido al siguiente podrìa salir si el sistema no puede localizar el fuente de desarrollo del kernel (ver el detalle del reenlace para el enlace simbòlico invàlido, si se presentara un problema similar).

rpm --install VirtualBox-3.1-3.1.2_56127_fedora12_1.i686.rpm

Creating group 'vboxusers'. VM users must be member of that group!
No precompiled module for this kernel found -- trying to build one. Messages
emitted during module compilation will be logged to /var/log/vbox-install.log.
Compilation of the kernel module FAILED! VirtualBox will not start until this
problem is fixed.
Please consult /var/log/vbox-install.log to find out why the kernel module does not compile.
Most probably the kernel sources are not found.
Install them and execute /etc/init.d/vboxdrv setup as root.

Si los fuentes de desarrollo del kernel tienen el enlace correcto se verà la siguiente salida:

rpm --install VirtualBox-3.1-3.1.2_56127_fedora12_1.i686.rpm
Creating group 'vboxusers'. VM users must be member of that group!
No precompiled module for this kernel found -- trying to build one. Messages
emitted during module compilation will be logged to /var/log/vbox-install.log.

Success!

Solo falta configurar los drivers necesarios para VirtualBox, digitamos lo siguiente:

/etc/init.d/vboxdrv setup
Stopping VirtualBox kernel module [ OK ]
Recompiling VirtualBox kernel module [ OK ]
Starting VirtualBox kernel module [ OK ]

Llegado a este punto, hay una buena instalaciòn. Ahora necesita adicionarse al grupo 'vboxusers'.

usermod -G vboxusers -a vpechcerda_

Puede ejecutar VirtualBox desde 'Aplicaciones'-'Herramientas del sistema' o desde la consola.
De manera muy particular, he instalado fedora 12 desde enero de este año y a la fecha ya realizè actualizaciones, incluyendo los “kernel-headers”. Esto provoca error y es que las versiones de kernel-devel y kernel-headers no son iguales

rpm -qa | grep kern
kerneloops-0.12-1.fc12.i386
kernel-2.6.27.5-117.fc12.i686
kernel-devel-2.6.27.19-170.2.35.fc12.i686
kernel-headers-2.6.27.12-170.2.5.fc12.i386
kernel-2.6.27.12-170.2.5.fc12.i686
kernel-firmware-2.6.27.12-170.2.5.fc12.noarch

Con la instruccion anterior notamos diferencias entre “kernel-devel” y “kernel-headers”, de tal forma que si quiere instalar los drivers necesarios, se verìa una falla.

/etc/init.d/vboxdrv restart
Stopping VirtualBox kernel module [ OK ]
Starting VirtualBox kernel module [FAILED]
(modprobe vboxdrv failed. Please use 'dmesg' to find out why)

y se obtiene un mensaje si ejecutamos 'dmesg'

dmesg
...
intel_rng: FWH not detected
vboxdrv: version magic '2.6.27.19-170.2.35.fc10.i686 SMP mod_unload 686 4KSTACKS ' should be '2.6.27.12-170.2.5.fc10.i686 SMP mod_unload 686 4KSTACKS '
vboxdrv: version magic '2.6.27.19-170.2.35.fc10.i686 SMP mod_unload 686 4KSTACKS ' should be '2.6.27.12-170.2.5.fc10.i686 SMP mod_unload 686 4KSTACKS '

Serà necesario corregir el kernel con la siguiente instrucciòn:

yum update kernel

Despues de este proceso la instalacion se efectùa correctamente.