Lihuen
RSSRSS AtomAtom

Diferencia entre revisiones de «¡Cómo hacer tu propia distro?»

(Creando nuestro preseed.cfg)
(Creando nuestro preseed.cfg)
Línea 70: Línea 70:
  
 
[Configuraciones para el archivo preseed.cfg]
 
[Configuraciones para el archivo preseed.cfg]
 +
 +
 +
 +
 +
 +
A continuación se detallaran cada uno de los parámetros que se pueden configurar. No todos ellos son obligatorios.
 +
 +
'''Localización'''
 +
 +
# Configuración de localización para el idioma y país.
 +
d-i debian-installer/locale string es_AR
 +
 +
'''Mapa del teclado'''
 +
 +
# Selección de teclado
 +
d-i console-keymaps-at/keymap select es
 +
 +
'''Configuración de la red'''
 +
 +
# netcfg escogerá la interfaz que tiene enlace si puede. Esto hace que no
 +
# muestre la lista si hay más de uno.
 +
d-i netcfg/choose_interface select auto
 +
 +
# Si tiene un servidor de DHCP lento y el instalador expira intentando
 +
# conectarse a él, esto puede serle útil.
 +
#d-i netcfg/dhcp_timeout string 60
 +
 +
# Escoger una interfaz específica en lugar de la encontrada:
 +
# d-i netcfg/choose_interface select eth1
 +
 +
# Así es como puede configurar la red manualmente descomentando esta línea
 +
# y las líneas de configuración estática de red a continuación.
 +
# d-i netcfg/disable_dhcp boolean true
 +
 +
# Si quiere que el fichero de preconfiguración funcione tanto en
 +
# sistemas con un servidor de DHCP como en los que no lo tengan, tendrá
 +
# que descomentar estas líneas y añadir la configuración estática de red
 +
# a continuación.
 +
#d-i netcfg/dhcp_failed note
 +
#d-i netcfg/dhcp_options select Configure network manually
 +
 +
# Configuración estática de red
 +
#d-i netcfg/get_nameservers string 192.168.1.1
 +
#d-i netcfg/get_ipaddress string 192.168.1.42
 +
#d-i netcfg/get_netmask string 255.255.255.0
 +
#d-i netcfg/get_gateway string 192.168.1.1
 +
#d-i netcfg/confirm_static boolean true
 +
 +
# Cualquier nombre de host y de dominio que se obtengan por DHCP se utilizan
 +
# antes que los valores aquí definidos. Sin embargo, definir los valores evita
 +
# que la pregunta se muestre aunque los valores vengan del DHCP.
 +
d-i netcfg/get_hostname string unassigned-hostname
 +
d-i netcfg/get_domain string unassigned-domain
 +
 +
# Deshabilitar el molesto mensaje sobre la clave WEP
 +
d-i netcfg/wireless_wep string
 +
# El nombre de servidor raro que algunos ISP utilizan como una especie de contraseña
 +
#d-i netcfg/dhcp_hostname string radish
 +
 +
'''Configuración de los repositorios'''
 +
 +
# No tiene que definir la cadena mirror/country si selecciona ftp
 +
#d-i mirror/protocol string ftp
 +
d-i mirror/country string enter information manually
 +
d-i mirror/http/hostname string ftp.es.debian.org
 +
d-i mirror/http/directory string /debian
 +
d-i mirror/http/proxy string
 +
 +
# Versión a instalar.
 +
#d-i mirror/suite string testing
 +
# Versión a utilizar para descargar componentes de la instalación
 +
# (opcional)
 +
#d-i mirror/udeb/suite string testing
 +
 +
'''Configuración de reloj y zona horaria'''
 +
 +
# Controla si el reloj de hardware está o no configurado a UTC
 +
# (Tiempo Universal Coordinado)
 +
d-i clock-setup/utc boolean true
 +
 +
# Puede utilizar esta opción para definir un valor apropiado para $TZ.
 +
# Consulte los valores permitidos en /usr/share/zoneinfo/
 +
d-i time/zone string Buenos_Aires
 +
 +
'''Cargador de arranque'''
 +
 +
# GRUB es el gestor de arranque predeterminado (para arquitectura x86).
 +
# Descomente esta opción si quiere instalar lilo en su lugar:
 +
#d-i grub-installer/skip boolean true
 +
 +
# Esta es una configuración adecuada y segura, hace que grub se instale
 +
# automáticamente en el MBR si no se detecta otro sistema operativo en
 +
# la máquina.
 +
d-i grub-installer/only_debian boolean true
 +
 +
# Lo siguiente hace que el «grub-installer» instale en el MBR en caso de
 +
# que se encuentre instalado otro sistema operativo. Esto es menos seguro puesto
 +
# que podría hacer que el otro sistema operativo no se pudiera arrancar.
 +
d-i grub-installer/with_other_os boolean true
 +
 +
#Alternativamente, descomente y edite estas líneas
 +
#si desea instalar en una ubicación distinta al MBR:
 +
#d-i grub-installer/only_debian boolean false
 +
#d-i grub-installer/with_other_os boolean false
 +
#d-i grub-installer/bootdev  string (hd0,0)
 +
#Para instalar grub en múltiples discos:
 +
#d-i grub-installer/bootdev  string (hd0,0) (hd1,0) (hd2,0)
 +
 +
'''Selección de paquetes'''
 +
 +
tasksel tasksel/first multiselect standard, desktop
 +
#tasksel tasksel/first multiselect standard, web-server
 +
#tasksel tasksel/first multiselect standard, kde-desktop
 +
 +
# Paquetes individuales que también deben instalarse
 +
#d-i pkgsel/include string openssh-server build-essential
 +
 +
'''Finalizar la primera fase de la instalación'''
 +
 +
# Omitir el mensaje final sobre la finalización de la instalación.
 +
d-i finish-install/reboot_in_progress note
 +
 +
# Esta opción impedirá que el instalador expulse el CD durante
 +
# el reinicio, y puede ser útil en algunas circunstancias:
 +
#d-i cdrom-detect/eject boolean false
 +
 +
'''Especificación de acciones a realizarse post-instalación'''
 +
d-i preseed/late_command string chroot /target /usr/share/lihuenconfig/lihuenconfig  all ; update-grub
 +
 +
 +
 +
 +
 +
 +
  
 
Se pueden utilizar tres métodos de preconfiguración: modificando el ''initrd'' para que incluya el archivo ''preseed.cfg'', llamando al archivo ''preseed.cfg'' especificando una ruta, o solicitando el archivo ''preseed.cfg'' vía red.
 
Se pueden utilizar tres métodos de preconfiguración: modificando el ''initrd'' para que incluya el archivo ''preseed.cfg'', llamando al archivo ''preseed.cfg'' especificando una ruta, o solicitando el archivo ''preseed.cfg'' vía red.

Revisión de 18:39 7 nov 2011

Edición del paquete

tasksel

Es un paquete que permite crear y personalizar el instalador de Debian.


Instalador modo gráfico de Debian-squeeze

Instalar los fuentes de debian-installer

Si usted no cuenta con los archivos fuentes del paquete, puede obterlos ejecutándo el siguiente comando:

 apt-get source debian-installer

Instalar dependencias incumplidas de debian-instal ler

IMPORTANTE:El paquete debian-installer debe compilarse bajo el mismo sistema que se pretende generar la imágen iso. Por ejemplo, si usted desea generar una imagen iso netboot,squeeze, debe tener instalado una distribución debian squeeze.

Para poder compilar el paquete debian-installer es necesario que instale sus dependencias. La lista de dependencias de debian-installer se encuentra por defectoen el archivo debian/control. Otra manera de obtener la lista de paquetes que se necesita, es ejecutando el comando:

 dpkg-checkbuilddeps

en el directorio raíz de debian-installer. Esto comprobará los paquetes instalados en el sistema con una lista de las dependencias del paquete. Luego se mostrará en pantalla las dependencias incumplidas.

Una vez obtenida la lista, se debe proceder a instalar los paquetes. Para hacerlo basta con correr el comando

 apt-get install <paquete1> <paquete2> <paquete3>

siendo paqueteX alguno de los paquetes mostrados en la lista que imprimió dpkg-checkbuilddeps. Lo que resta ahora es completar el paquete debian-installer con los udebs requeridos para cada imagen.

Personalizando el instalador

Configurar repositorios personalizados

Debian-installer necesita un repositorio de donde tomar los paquetes necesarios para la creaciòn de la iso.

Por defecto,debian-installer generará un archivo

 build/sources.list.udeb

basado en el archivo /etc/apt/sources.list' del sistema.

Si usted intención es generar una imagen con repositorios diferente a los que se encuentran en su sistema, es posible especificar los repositorios de donde se desea descargar los paquetes. Para ello tendremos que crear un archivo

build/sources.list.udeb.local

con la especificación del repositorio que desea. Poer ejemplo:

deb http://repo.lihuen.linti.unlp.edu.ar/debian squeeze  main/debian-installer

Agregar paquetes extras y/o personalizados al instalador

Debian-installer utiliza una seria de mini-paquetes (.udeb) que forman parte del instalador. Por ejemplo, para lograr que el instalador tome la apariencia de Lihuen durante la instalación, se configura y empaqueta el mini-paquete rootskel-gtk; y se agregan ntfs-modules-2.6.32-5-486-di_1.99_i386.udeb y ntfsprogs-udeb_2.0.0-1+b1_i386.udeb para posibilitar un particionado en particiones con formato ntfs.

Para tal fin existe la carpeta:

 build/localudebs/

Para que debian-installer agregue ésta personalización, es necesario agregarle el archivo "sources.listi.udeb.local" la dirección de la carpeta con los .udebs modificados

deb copy:/home/usuario/debian-installer-20110106/build/ localudebs/

Observaciones:

Aunque usted hayacreado el sources.list.udeb.local, cuando generemos la imagen el archivo sources.list.udeb igualmente será creado, pero no utilizado.

Creando nuestro preseed.cfg

Una excelente forma de automatizar debian-installer es usar la preconfiguración. La preconfiguración ofrece un mecanismo para responder a preguntas realizadas durante la instalación sin tener que introducir manualmente las respuestas mientras ésta se ejecuta. Esto hace posible que se automaticen la mayoría de las instalaciones e incluso ofrece funcionalidades que no están disponibles durante una instalación normal. Para ello se crea un archivo preseed.cfg, en el cual se incluirán todas las opciones a automatizar.

A pesar de que se puede generar un archivo preseed.cfg utilizando algunos comandos, es preferible crear uno desde el principio. De esta manera, la automatización de la instalación será totalmente personalizable. Empezaremos creando un archivo y llamándolo

build/preseed.cfg 

[Configuraciones para el archivo preseed.cfg]



A continuación se detallaran cada uno de los parámetros que se pueden configurar. No todos ellos son obligatorios.

Localización

# Configuración de localización para el idioma y país.
d-i debian-installer/locale string es_AR

Mapa del teclado

# Selección de teclado
d-i console-keymaps-at/keymap select es

Configuración de la red

# netcfg escogerá la interfaz que tiene enlace si puede. Esto hace que no
# muestre la lista si hay más de uno.
d-i netcfg/choose_interface select auto
# Si tiene un servidor de DHCP lento y el instalador expira intentando
# conectarse a él, esto puede serle útil.
#d-i netcfg/dhcp_timeout string 60
# Escoger una interfaz específica en lugar de la encontrada:
# d-i netcfg/choose_interface select eth1
# Así es como puede configurar la red manualmente descomentando esta línea
# y las líneas de configuración estática de red a continuación.
# d-i netcfg/disable_dhcp boolean true
# Si quiere que el fichero de preconfiguración funcione tanto en
# sistemas con un servidor de DHCP como en los que no lo tengan, tendrá
# que descomentar estas líneas y añadir la configuración estática de red
# a continuación.
#d-i netcfg/dhcp_failed note
#d-i netcfg/dhcp_options select Configure network manually
# Configuración estática de red
#d-i netcfg/get_nameservers string 192.168.1.1
#d-i netcfg/get_ipaddress string 192.168.1.42
#d-i netcfg/get_netmask string 255.255.255.0
#d-i netcfg/get_gateway string 192.168.1.1
#d-i netcfg/confirm_static boolean true
# Cualquier nombre de host y de dominio que se obtengan por DHCP se utilizan
# antes que los valores aquí definidos. Sin embargo, definir los valores evita
# que la pregunta se muestre aunque los valores vengan del DHCP.
d-i netcfg/get_hostname string unassigned-hostname
d-i netcfg/get_domain string unassigned-domain
# Deshabilitar el molesto mensaje sobre la clave WEP
d-i netcfg/wireless_wep string
# El nombre de servidor raro que algunos ISP utilizan como una especie de contraseña
#d-i netcfg/dhcp_hostname string radish

Configuración de los repositorios

# No tiene que definir la cadena mirror/country si selecciona ftp
#d-i mirror/protocol string ftp
d-i mirror/country string enter information manually
d-i mirror/http/hostname string ftp.es.debian.org
d-i mirror/http/directory string /debian
d-i mirror/http/proxy string
# Versión a instalar.
#d-i mirror/suite string testing
# Versión a utilizar para descargar componentes de la instalación
# (opcional)
#d-i mirror/udeb/suite string testing

Configuración de reloj y zona horaria

# Controla si el reloj de hardware está o no configurado a UTC 
# (Tiempo Universal Coordinado)
d-i clock-setup/utc boolean true
# Puede utilizar esta opción para definir un valor apropiado para $TZ.
# Consulte los valores permitidos en /usr/share/zoneinfo/ 
d-i time/zone string Buenos_Aires

Cargador de arranque

# GRUB es el gestor de arranque predeterminado (para arquitectura x86).
# Descomente esta opción si quiere instalar lilo en su lugar:
#d-i grub-installer/skip boolean true
# Esta es una configuración adecuada y segura, hace que grub se instale
# automáticamente en el MBR si no se detecta otro sistema operativo en
# la máquina.
d-i grub-installer/only_debian boolean true
# Lo siguiente hace que el «grub-installer» instale en el MBR en caso de
# que se encuentre instalado otro sistema operativo. Esto es menos seguro puesto
# que podría hacer que el otro sistema operativo no se pudiera arrancar.
d-i grub-installer/with_other_os boolean true
#Alternativamente, descomente y edite estas líneas
#si desea instalar en una ubicación distinta al MBR:
#d-i grub-installer/only_debian boolean false
#d-i grub-installer/with_other_os boolean false
#d-i grub-installer/bootdev  string (hd0,0)
#Para instalar grub en múltiples discos:
#d-i grub-installer/bootdev  string (hd0,0) (hd1,0) (hd2,0)

Selección de paquetes

tasksel tasksel/first multiselect standard, desktop
#tasksel tasksel/first multiselect standard, web-server 
#tasksel tasksel/first multiselect standard, kde-desktop
# Paquetes individuales que también deben instalarse
#d-i pkgsel/include string openssh-server build-essential

Finalizar la primera fase de la instalación

# Omitir el mensaje final sobre la finalización de la instalación.
d-i finish-install/reboot_in_progress note
# Esta opción impedirá que el instalador expulse el CD durante 
# el reinicio, y puede ser útil en algunas circunstancias:
#d-i cdrom-detect/eject boolean false

Especificación de acciones a realizarse post-instalación

d-i preseed/late_command string chroot /target /usr/share/lihuenconfig/lihuenconfig  all ; update-grub





Se pueden utilizar tres métodos de preconfiguración: modificando el initrd para que incluya el archivo preseed.cfg, llamando al archivo preseed.cfg especificando una ruta, o solicitando el archivo preseed.cfg vía red.


Nota: Se han seleccionado los parámetros más genéricos posibles para que la instalación sea util en cualquier computadora. Utilizar preseed.cfg nos permite automatizar muchas más cosas, como el particionamiento, configuración de las X, etc., pero para utilizarlos se recomienda tener conocimiento del hardware del equipo donde se va a realizar la instalación. Para más información, visite el sitio oficial.

Especificando una ruta para el archivo preseed.cfg

Este es el método mas sencillo, recomendado y utilizado por excelencia. Tendremos que editar el archivo de configuración ubicado en installer/build/config/common. En el ubicaremos la variable PRESEED y le especificaremos el directorio donde se encuentra nuestro archivo preseed.cfg. A manera de ejemplo:

PRESEED = /home/<user>/preseed.cfg

Tuneando el instalador

Es posible adaptar la parte "gráfica" del menú del instalador a nuestro gusto. Es decir, se pueden modificar las imágenes, colores, textos de ayuda, etc.

Menú del instalador de Debian-squeeze
Menú del instalador de Lihuen-squeeze


Estos archivos están ubicados en build/boot/x86/ En general, se van a encontrar archivos f*.txt, los cuales corresponden a los textos mostrados cuando se presiona algunas de las teclas F1 - F10; archivos *.cfg, que son configuraciones simples en las que dicen los archivos *.txt a incluir; y en el directorio build/boot/x86/pics/ se encuentran las imágenes mostradas por el instalador.

Generar la imagen

Una vez instaladas las dependencias y elegidos los repositorios deseados, lo que queda es generar la imagen. Para ello se debe tener en cuenta la arquitectura (i386, amd64,etc.) y el tipo (cdrom, netboot, floopy, etc.). Para obtener una lista de todas las posibles combinaciones de arquitecturas y tipos, basta con utilizar el comando

# make

en el directorio build/. Una vez elegidas las opciones, hay que generar la imagen usando uno de los build_targets (build-netboot, all_build, etc.). Una vez finalizado el proceso, la imagen será generada en el directorio build/dest. La mayoría de las imágenes creadas por debian-installer están listas para ser usadas. Las excepciones son las imágenes CD/DVD, que solo contendrán la base (initrd y kernel). El paquete usado para completar las imágenes CD/DVD es debian-cd. Aunque por otro lado, si lo que se desea es que la imagen solo tenga el instalador, se puede crear una imagen mini-ISO con solo el netboot initrd en ella. Por ejemplo, el comando

# make build_netboot

creará una imagen en build/dest/netboot/mini.iso, usando isolinux.

 Ante cualquier duda o inconveniente no dudes en visitar nuestros foros.
 http://lihuen.linti.unlp.edu.ar/foros

Es un paquete que permite la selección de tareas a instalar en el sistema Debian, durante o después de la instalación.

Tlihuen.jpg

Para descargar los fuentes del paquete

apt-get source tasksel

Crear una lista de tareas

Una "tarea" es una lista de nombres de paquetes que se pretende instalar en un sistema. Para crear una lista de tareas, debe crear un archivo nuevo con el nombre que desea asignarle a la nueva tarea en la carpeta:

tasksel-2.88//tasks/ 

En ésta carpeta encontrará una gran cantidad de listas de tareas. Borré todas las que considere innecesarias para su distribución.

Una tarea debe contar con los siguientes campos:

Task:nombre_de_la_tarea

Nombre con el que se va a mostrar la tarea en la lista de tareas. Debe estar escrito minúscula.

Relevance: un_valor

Valor de importancia que se le asigna a la tarea. Varía desde 0 a 10

Description: 

Una breve información sobre la tarea

Key:

Nombre de los paquetes que son elementales en la tarea. Si alguno de éstos paquetes no se encuentran en el CD/DVD de instalación, no se mostrará la tarea dentro de las opciones para instalar.

Packages: list

Lista de los nombres de los paquetes que formen la tarea. Ésta lista debe escribirse con un margen izquierdo de dos espacios en blanco.

Test-new-install: argumento_1 argumento_2

Puede recibir uno o dos parámetros. El argumento del primer parámetro se tiene en cuenta durante la instalación del sistema. el segundo parámetro se aplica cuando el usuario ejecuta tasksel con el sistema ya instalado.

Los valores posibles son:

install Instala la tarea automáticamente en el sistema aunque el usuario no la seleccione drante la instalación.

skip No visualiza la tarea entre la lista de opciones.

show: Muestra la tarea dentro de la lista de tareas. No es obligatorio. Pero es importante setearlo como segundo parámetro en el caso de que la tarea tenga la propiedad skip durante la instalación.

mark Muestra la tarea como "seleccionada" (con un tilde) durante la instalación del sistema.

Por ejemplo, en la tarea "gnome" del tasksel de lihuen, se configuró:

Test-new-install: mark show Lo que indica que la tarea se muestra como "marcada o seleccionada" durante la instalación, y se muestra dentro de la lista de tareas disponibles para instalar cuando el usuario ejecuta tasksel.

Otro ejemplo es la tarea "lihuen". Test-new-install: install skip Como ésta tarea contiene paquetes base para la instalación de Lihuen, no se presenta al usuario la posibilidad de selección. De manera que se instala automáticamente y su nombre no se muestra dentro de la lista de tareas a instalar.