lunes, 19 de febrero de 2007

Instalación de ubuntu FROM SCRATCH

Descripción y Objetivos del Proyecto
Primero que nada esta
guía está orientada a usuarios con algo de experiencia en linux, especialmente en Debian, ya que la idea es obtener un sistema base de ubuntu similar al que se obtiene del instalador netinst de Debian.
¿Por que molestarse? Realmente no soy la única persona que cree que ubuntu es un sistema muy sobrecargado de cosas que no usamos nunca.
El objetivo, dicho de la manera larga, de esto es aprovechar el gran desarrollo por parte de la comunidad hacia ubuntu, y la gran disponibilidad de software que tiene ubuntu sin sacrificar el rendimiento que nos da un sistema pulido debian.


Materiales

¿Que materiales necesitamos? Un
live cd de ubuntu (preferentemente la última version), una conexion a internet, y una particion libre en nuestra pc, o por que no, todo el disco.

Hardware Extraño o muy nuevo

Puede haber gente, como
a mi, que necesitan opciones especiales o un kernel ultra nuevo que tenga soporte para su hardware, esto lo explico al final de todo en la parte de modificaciones.

Procedimiento:

Primero que todo necesitamos arrancar la pc desde el live cd y hacer lo necesario para conectarnos a inte
rnet (esto es parte de la preparación previa).

Una vez que tenemos el sistema arrancado y la conexion andando, necesitamos instalar las herramientas necesarias para instalar un sistema base a mano. Entonces desde una terminal, correm
os el comando:


# apt-get update
# apt-get install debootstrap


Luego de esto tendremos instalado debootstrap que se encargará de descargar y colocar en algun directorio que
elijamos un sistema base demasiado básico en el cual empezaremos a trabajar.

Ahora bien, tenemos que prepararnos el lugarcito donde poner nuestro sistema base. Entonces en mi caso abrí cfdisk (mi particionador favorito) y genere 1 particion de sistema y 1 swap (para escribir este artículo estoy siguiendo cada paso en una vmware). O también podemos utilizar gparted si nos gustan las guis.

Ya que tenemos nuestro disco duro de destino configurado, ahora procedemos a colocar en el un sistema base, yo elegí ubuntu edgy, pero podemos poner dapper también o alguna version de debian si se nos antoja. Para esto montamos nuestra particion en algún lugar.

# mkdir /mnt/sistema
# mount -t reiserfs /dev/sda1 /mnt/sistema

Entonces ahora si estamos listos para utilizar debootstrap de la siguiente manera:

# debootstrap --arch i386 edgy /mnt/sistema http://archive.ubuntu.com/ubuntu

Nota: Yo estoy instalando dapper ya que el live cd que estoy usando es de dapper y debootstrap no tiene el script de edgy. (Arreglaré esto de forma instructiva mas tarde).

Nota 2: podemos elegir la arquitectura de la distro que estamos instalando cambiando el valor de --arch.


Bien, luego de unos 20 minutos de descargar cosas tenemos nuestro sistema precario en la partición elegida, ahora es cuando empieza el trabajo de verdad, comencemos.
Primero que nada vamos a trabajar como si el sistema estuviera instalado, por lo cual este sistemita nuevo "debe pensar" que es un sistema "standalone" entonces montamos los directorios /dev y /proc que tenemos en el live cd en nuestro sistema de la siguiente manera:
- Borramos lo que nos deja debootstrap en /dev y /proc de nuestro sistema nuevo:

# rm -r /mnt/sistema/dev/*
# rm -r /mnt/sistema/proc/*


- Montamos los directorios que nos proporiciona el live cd:

# mount -o bind /dev /mnt/sistema/dev
# mount -o bind /proc /mnt/sistema/proc


Una vez hecho esto, estamos listos para trabajar adentro de nuestro sistema; básicamente tenemos que hacer 3 tareas:
- Instalar software utilitario para manejarnos una vez que tengamos el sistema, como compiladores, editores de texto y todas esas cosillas.
- Instalar el cargador de arranque del sistema, lilo o grub.
- Instalar un núcleo en nuestro sistema.

Como paso adicional, actualizar el sistema para no tener que bajar el sistema base actualizado luego.

Continuando, para entrar a nuestro sistema escribimos:

# chroot /mnt/sistema


Algo importante que tenemos que hacer antes que nada es establecer una clave para el usuario root con el comando passwd, además editamos /etc/hostname con el nombre de host que tendrá nuestro sistema nuevo.

Ahora editamos nuestro sources.list con la siguiente informacion:

/etc/apt/sources.list

deb http://archive.ubuntu.com/ubuntu edgy main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ edgy main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ edgy-updates main restricted
deb-src http://archive.ubuntu.com/ubuntu/ edgy-updates main restricted
Nota: Estoy usando los repositorios de edgy pero deberían ser los de la distro que estés instalando.

Y luego:

# apt-get update
# apt-get upgrade
# apt-get dist-upgrade


Con ello ahora si tendremos el sistema actualizado.

Una vez que hemos realizado esto, somos libres de instalar en nuestro nuevo sistema lo que querramos, yo recomiendo como minimo instalar los mapas de caracteres y un compilador de c, además el comando man el comando info y todo aquello que echemos en falta.

Para hacer nuestro sistema arrancable va a ser necesario que generemos un fstab, el script de debootstrap no nos deja este archivo por lo cual, lo creamos con nuestro editor favorito y le ponemos un contenido como este:

proc /proc proc defaults 0 0
/dev/sda1 / reiserfs notail 0 1
/dev/sda2 swap swap 0 0

Con eso debería ser suficiente, igualmente les recuerdo ajustarlo a sus necesidades.

Ahora necesitamos un cargador de arranque, yo opto por instalar grub

#apt-get install grub

Elijo grub porque es estable y no requiere casi configuración. Por último instalamos un núcleo, en este ejemplo instalo el que está en los repositorios ya que no me hace falta mas nada para un vmware.

#apt-get install linux-image-2.6.17-10-generic

Y, luego de instalado el kernel, configuamos grub.

# cp /proc/mounts /etc/mtab
# grub-install /dev/sda


Y añadimos la entrada al menú de grub, si es que no lo hizo la instalación del kernel ya:

/boot/grub/menu.lst

default 0
timeout 10
boot=/dev/sda

title Ubuntu
root (hd0,0)
kernel /boot/vmlinuz-2.6.17-10-generic root=/dev/sda1 ro quiet splash
initrd /boot/initrd.img-2.6.17-10-generic
savedefault
boot


Ejecutamos de nuevo:

#grub-install /dev/sda

Y ya estamos en condiciones de reiniciar a nuestro nuevo sistema.

Modificaciones al Proceso

Este procedimiento es mas o menos estándar y nos deja un sistemita pequeño instalado, pero hay ocasiones en que esto no es suficiente: Por ejemplo en mi caso el hardware no estaba soportado en el live cd de ubuntu edgy, por lo tuve que obtener el núcleo desde un sistema windows instalado, por lo cual en mi distribución actual estoy utilizando un núcleo precompilado obtenido de debian.

Para Finalizar

Una vez terminada de seguir esta guía, nos queda aún mucho trabajo por hacer, instalar el sistema de escritorio y el software necesario para trabajar, pero ya tenemos como base que nuestro sistema es liviano, y es ubuntu.

5 comentarios:

  1. ¿Es posible decirle al live-cd de Ubuntu que cargue un kernel que está en el disco rígido, en una partición NTFS o algo por el estilo?

    ResponderBorrar
  2. Vos te podés conseguir el kernel que quieras o incluso compilarte uno, es muy comodo si conseguis el .deb, en mi caso en mi versión instalada instalé un kernel precompilado que obtuve de debian, simplemente metés el .deb en algún directorio del nuevo sistema, y hacés dpkg -i archivo_del_kernel.deb

    ResponderBorrar
  3. Bien, muy bueno esto. Ahora si no tengo internet en algun lugar y quiero instalar un ubuntu "a la debian way" o de otra forma (como la de ubuntu lite, que solo necesita que exista un disco y te crea solo las particiones, copia todo y sale andando) ... Como se podria fabricar un ubuntu con los paquetes que yo quiera e instalarlo en una pc sin usar un live cd? Por ahi me sirve personalizarlo para maquinas con pocos recursos, o con el soft que yo quiera...

    ResponderBorrar
  4. Para la primera parte, podes usar como repositorio el cdrom, o sea basicamente lo montas y en vez de http le pones file://ruta_al_pool_del_cdrom y despues dentro del crhoot podes usar apt en modo cdrom con apt-cdrom.

    Por la segunda
    Si no querés usar un live cd podes usar un instalador de alguna otra distro o algun sistema instalado.

    ResponderBorrar
  5. que bonito, yo soy el unicoq ue te va a felicitar por el blog que tenes sin ni una foto tuya, si no vas a poner foto tuya pone una foto mia

    ResponderBorrar