Debian squeeze netinstall usando preseed desde una unidad usb

septiembre 5, 2010 at 15:56 Deja un comentario

La computadora utilizada para esta guía es una dell studio xps portátil, la arquitectura es AMD64, se utiliza un disco con una capacidad de 300GB, una receta del partman es usada para particionar automáticamente el disco.

Preparación de los archivos

  • Con la unidad usb desmontada se crea una partición fat16 en el dispositivo. En mi caso utilizo cfdisk y el volumen de mi dispositivo usb es el /dev/sdb:

    # cfdisk /dev/sdb

    Algo importante a anotar es que las particiones de tipo fat16 no pueden tener un tamaño mayor a los 2GB, dado esto se creó la partición con un tamaño seguro de 1024MB (1GB), además debemos marcar la partición como booteable, es decir agregamos el flag boot a la partición, el volumen de unidad resultante es el /dev/sdb1

  • Si no está instalado el paquete dosfstools lo instalamos:

    # aptitude install dosfstools

    luego ejecutamos el comando:

    # mkdosfs /dev/sdb1

  • Si no están instalados los paquetes syslinux y mtools se instalan:

    # aptitude install syslinux mtools

    después instalamos el gestor de arranque (syslinux) en la unidad usb:

    # syslinux /dev/sdb1

  • De la imagen de instalación hd-media de squeeze que es la utilizada para dispositivos usb, obtenemos los archivos initrd.gz y vmlinuz:

    $ wget http://ftp.es.debian.org/debian/dists/squeeze/main/installer-amd64/current/images/hd-media/initrd.gz
    $ wget http://ftp.es.debian.org/debian/dists/squeeze/main/installer-amd64/current/images/hd-media/vmlinuz

    Nota: para ver otras imágenes de instalación o si ha cambiado el enlace anterior ver: debian.org/releases/.

  • Creamos el directorio initrd y descomprimimos dentro el archivo initrd.gz recién descargado (se supone estamos en el directorio que contiene el archivo initrd.gz):

    $ mkdir initrd
    $ cd initrd
    $ zcat ../initrd.gz | cpio -i -d

  • Dentro del directorio initrd creado en el paso anterior, creamos el archivo preseed.cfg que es utilizado para que el instalador de Debian obtenga las respuestas a las preguntas de la instalación (es decir una instalación desatendida):

    $ nano preseed.cfg

  • Ahora se debe agregar el contenido al archivo preseed.cfg, a continuación se detalla dicho contenido junto con su explicación en los comentarios:

    # Seleccionar lenguaje y país: en mi caso Costa Rica:
    d-i debian-installer/locale string es_CR
    
    # Seleccionar el mapa del teclado: español
    d-i console-keymaps-at/keymap select es
    
    # NO quiero configurar la red porque estoy conectado 
    # inálambricamente y agregaré el driver manualmente después.
    # Aunque en teoría existen respuestas de preseed para del 
    # todo no configurar la red, esto no funcionó en la práctica
    # y por ello permito que se detecte la red con DHCP para 
    # posteriormente indicar que no se va a configurar la red
    
    # Si hay más de una interfaz de red (eth0, eth1) 
    # seleccionar automáticamente una
    d-i netcfg/choose_interface select auto
    
    # Cuando falla la detección por red indicar que no se va a 
    # configurar la red
    d-i netcfg/dhcp_failed note
    d-i netcfg/dhcp_options select Do not configure the network at this time
    
    # Establecer el nombre de la computadora (hostname)
    d-i netcfg/get_hostname string mad-clown 
    
    # Seleccionar la lista de repositorios
    # Costa Rica en mi caso
    d-i mirror/country string manual
    d-i mirror/http/hostname string ftp://mirrors.ucr.ac.cr 
    d-i mirror/http/directory string /debian
    d-i mirror/http/proxy string
    
    # Utilizar el reloj con utc
    d-i clock-setup/utc boolean true
    
    # Establecer la zona horaria
    d-i time/zone string America/Costa_Rica
    
    # Indicar al partman (creador de particiones) el volumen del disco a 
    # utilizar para crear las particiones
    d-i partman-auto/disk string /dev/sda
    
    # Indicar al partman que vamos a particionar de manera regular
    # otras opciones son lvm y crypto (para particionar encriptado)
    d-i partman-auto/method string regular
    
    # Dar al partman la receta para crear las particiones
    # en este caso se crearán tres particiones:
    # una partición de unos 200GB para el /home
    # una partición de unos 80GB para /
    # una partición de intercambio (swap) de 2GB
    # puede encontrar información sobre la receta
    # más adelante en este documento
    d-i partman-auto/expert_recipe string                         \
          boot-root ::                                            \
                  215040 200000 1000000000 ext3                                  \
                          $primary{ } $bootable{ }                \
                          method{ format } format{ }              \
                          use_filesystem{ } filesystem{ ext3 }    \
                          mountpoint{ /home }                     \
                  .                                               \
                  88181 10000 88181 ext3                       \
                          method{ format } format{ }              \
                          use_filesystem{ } filesystem{ ext3 }    \
                          mountpoint{ / }                         \
                  .                                               \
                  2048 2048 200% linux-swap                          \
                          method{ swap } format{ }                \
                  .
    
    # Indicamos al partman que no nos pregunte más nada
    d-i partman/confirm_write_new_label boolean true
    d-i partman/choose_partition select finish
    d-i partman/confirm boolean true
    
    # Permitimos que se instale el grub como gestor de arranque
    # como yo sólo uso debian se lo indico al instalador
    # si tuviera otro sistema operativo (window$ por ejemplo) tendría
    # que cambiar la instrucción
    d-i grub-installer/only_debian boolean true
    
    # Saltarse el mensaje de: "instalación finalizada"
    d-i finish-install/reboot_in_progress note
    
    # Poner la prioridad del 
    # debconf (que es la herramienta para crear configuraciones)
    # que use el nivel crítico para que
    # no haga preguntas innecesarias
    d-i debconf/priority select critical
    debconf debconf/priority select critical
    
    # Crear la contraseña del usuario root
    passwd passwd/root-password password t7_7d.4RyTr5g98.
    passwd passwd/root-password-again password t7_7d.4RyTr5g98.
    
    # Crear un usuario con su contraseña
    # en este ejemplo el usuario con username "pedrito"
    # y contraseña "aguacatico"
    passwd passwd/user-fullname string Pedro
    passwd passwd/username string pedrito 
    # And their password, but use caution!
    passwd passwd/user-password password aguacatico
    passwd passwd/user-password-again password aguacatico
    

    Guardamos el archivo.

  • Recomprimimos de nuevo el archivo initrd.gz para incluir el archivo preseed.cfg:

    $ cd initrd
    $ find . | cpio -o -H newc | gzip -9 > ../initrd.gz

  • Montamos la unidad usb y le copiamos el archivo initrd.gz modificado y el vmlinuz anteriormente descargado.

  • En la unidad usb creamos el archivo syslinux.cfg con el siguiente contenido:

    default vmlinuz
    append initrd=initrd.gz
    

  • Obtenemos una imagen iso netinstall de Debian squeeze y la copiamos a la unidad usb: squeeze netinstall.

  • Iniciamos la computadora desde el dispositivo usb y listo listo podemos ir a tomar café. }:)

Sobre la receta del partman

Esta es la guía de recetas de partman. A continuación una breve explicación sobre su formato:

  • Cada partición tiene 3 números asociados, el primero es el tamaño mínimo en MB que puede tener la partición, el segundo es el nivel de prioridad y el tercero es el tamaño máximo que puede tener la partición.

  • El nivel de prioridad debe ser un número entre el tamaño mínimo de la partición y el tamaño máximo de la misma.

  • Al menos una de las particiones creadas debe tener como tamaño máximo el número 1000000000 para que tome el espacio vacío sobrante si es que hay alguno, de no utilizarse ese número el partman da errores.

  • El tercer número para la partición linux-swap está en porcentaje, esto indica que dicha partición puede crecer hasta un tamaño de máximo el 200% de la memoria RAM del sistema.

  • Los tamaños de las particiones son redeondeados a cilindros automáticamente de ser necesario.

  • No deben haber espacios entre el texto y el operador {.

Existe un script escrito en python para probar recetas del partman: http://wiki.debian.org/DebianInstaller/PartmanPrc, para utilizarlo:

  • Descargamos el script desde http://wiki.debian.org/DebianInstaller/PartmanPrc y lo guardamos con el nombre partmanprc.py

  • Creamos un archivo con extensión .rec con contenido similar a este:

    boot-root :: 
    215040 200000 215040 ext3 $primary{ } $bootable{ } method{ format } format{ } use_filesystem{ } filesystem{ ext3 } mountpoint{ /home } . 
    88181 10000 88181 ext3 method{ format } format{ } use_filesystem{ } filesystem{ ext3 } mountpoint{ / } . 
    2048 2048 200% linux-swap method{ swap } format{ }
    .

  • Llamamos al script dándole como parámetros de entrada el archivo .rec, el tamaño del disco duro a utilizar (305245 MB) y la cantidad de memoria RAM (2048 MB) del sistema:

    # ./partam_ghost.py zen.rec 305245:2048

Este script generará una imagen con un gráfico circular de la distribución de las particiones y una página html con información adicional:

Distribución particiones

setas
Enjoy!

Entry filed under: linux, servidores, sistemas operativos, zen. Tags: , , , .

Como deshabilitar la campana de la terminal desde la consola Script de instalación para systemRescueCd en unidad usb

Dejáte un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Trackback this post  |  Subscribe to the comments via RSS Feed


Digo yo

Que dura está la vida

Dice Jhon Lennon

La vida es lo que pasa mientras haces planes

Digo yo

Dónde haya un computín esté dónde esté algo comenzará en cero

Acerca de Mi:


Hell-Out world!!

Dice Einstein

Dios no juega a los dados

Dice Niels Bohr

Einstein no le diga a Dios lo que tiene que hacer

Dice el Che:

Seamos realistas y hagamos lo imposible.

Dice Goethe:

Lo que no comprendemos no lo poseemos.

Digo yo:

Hay que tratar de travesear todo

Dice Oscar Wilde:

Cualquier hombre puede llegar a ser feliz con una mujer, con tal de que no la ame.

Digo yo:

De fijo dijo eso porque era homosexual.

Artículos

septiembre 2010
L M X J V S D
« Ago   Oct »
 12345
6789101112
13141516171819
20212223242526
27282930  

A %d blogueros les gusta esto: