domingo, 9 de diciembre de 2012

Como hacer que coexistan gNewSense, Ubuntu y Windows

Explicaré como hacer que coexistan gNewSense y Ubuntu en una PC convencional(Muy interesante para los que como yo tuvieron problemas cuando se Instaló gNewSense después de Ubuntu), Este es un manual de ayuda para aquellos que ya tiene ciertos conocimientos básicos de sistemas GNU/Linux(y conocen conceptos como LiveCD, LiveUSB, Grub, boot, particiones, etc).
Empecemos:

gNewSense: Una de las distribuciones GNU/Linux completamente libres recomendada por la FSF y además una de las mas usadas de su categoría.

Ubuntu: Distribución GNU/Linux muy popular pero no recomendada por la FSF, ya que contiene módulos de software que tienen licencias no compatible con la GNU License, osea es una distro no completamente libre.

Escenario(Mi caso):

1º Una Laptop con Windows 7(NTFS) y Ubuntu(ext4); el grub de ubuntu permite elegir sin problemas que sistema operativo arrancar cuando se enciende la PC. Hasta aquí todo bien.

2º Instalé gNewSense(ext3); el grub de gnewsense no muestra a Ubuntu en su menú (a windows sí), por lo que es necesario arreglar el problema.

Problema:  El grub solo muestra en su menú de opciones a dos(Windows y gNewSense) de los tres(Falta Ubuntu) sistemas operativos instalados en la PC.

Solución:

1º Levantar un sistema vivo Ubuntu.
Levantar un Live CD o Live USB con ubuntu, en mi caso levante un LiveUSB con la iso: ubuntu-12.04-desktop-i386.iso; con la ayuda de la herramienta: Universal-USB-Installer-1.8.9.6. Desde mi sistema Windows.

2º Reemplazar el grub de gNewSense por el grub de Ubuntu(El instalado en el disco duro).
Una ves tengamos levantado nuestro sistema vivo Ubuntu, debemos instalar su grub y reemplazar al grub actual.
Pasos:
   a) Montar la partición de Ubuntu(El ubuntu instalado en el disco duro)
                   sudo mkdir /mnt/disco
                   sudo mount -t ext4 /dev/sda6 /mnt/disco 
{Donde ext4 es el formato del sistema de archivos de la particion sda6, sda6 es la partición donde tienes instalador Ubuntu en el disco duro, si necesitas ver las particiones de tu disco duro Ejecuta: sudo cfdisk o sudo fdisk -l}
                   sudo mount --bind /deb /mnt/disco/dev

   b) Ingresar como root en la paritición montada, para que todos los comandos que ejecutemos en adelante sean efectuados en el sistema de archivos de dicha partición(Hacking).
                   sudo chroot /mnt/disco
     En éste paso te debe salir un nuevo shell con usuario root.

   c) Instalar el Grub de la partición montada(lo que es lo mismo que instalar el grub de nuestro ubuntu instalado en el disco duro y no del LiveCD/USB) en el MBR del disco duro.
                   grub-install /dev/sda
                   exit

PD: Esta es solo una de las formas por las que puedes reemplazar o reinstalar el grub de cualquier distro GNU/Linux instalada en el MBR de tu PC(Existen según e visto hasta dos formas mas y también son validas)

3º Reiniciar el sistema vivo, quitar el LiveCD/USB y verificar el nuevo grub instalado.
Ahora en ése nuevo grub instalado podrás ver que todas las opciones del menu permiten que levante solo a Windows o Ubuntu, gNewSense ahora no aparece en el menú, el ultimo paso es configurar correctamente el grub de Ubuntu.

4º Modificar el archivo grub.cfg(Archivo de configuracion del grub)  de nuestro Ubuntu y agregar los parámetros necesarios para que contenga en la lista de su menú a gNewSense, Ubuntu y Windows.

      a) Ingresar a Ubuntu(ya no como LiveCD /USB) selecionando la opción correspondiente en nuestro nuevo grub.

    b) Modificar el archivo /boot/grub/grub.cfg agregando las opciones necesarias para que el grub ahora bootee tambien a gNewSense.

                                   sudo nano /boot/grub/grub.cfg
     
  Agregar debajo de el código que bootea a Ubuntu lo siguiente:


menuentry 'gNewSense 2.3 deltah' --class gnu-linux --class os {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos7)'
        search --no-floppy --fs-uuid --set=root d5c4eb63-084f-414c-aee1-5d0ea3e225f2
        linux   /boot/vmlinuz-2.6.24-24-generic root=UUID=d5c4eb63-084f-414c-aee1-5d0ea3e225f2 ro quiet splash
        initrd  /boot/initrd.img-2.6.24-24-generic
}

PD: Para que obtengas la información con letras rojas y reemplaces las que te estoy mostrando, debes acceder al archivo de configuración menu.lst de gNewSense, para ésto debes montar la partición en la que instalaste gNewSense y habrir dicho archivo.
Para la linea de letras azules debes reemplazar  set root='(hd0,msdos7)' por set root='(hd0,msdos#)' donde # es el siguiente numero consecutivo(msdos1, msdos2, etc) de todas las linea set root='(hd0,msdos#)' que encuentres en dicho archivo(grub.cfg de ubuntu).

Reinicia la PC y listo, Te debería salir el menú del grub con las opciones para que escojas cualquiera de tus tres sistemas operativos a iniciar.

Heberth.