Archiso (Español)

From ArchWiki
Revision as of 16:51, 1 March 2013 by Jogre barroso (Talk | contribs) (Traducción completa de Archiso)

Jump to: navigation, search

Tango-preferences-desktop-locale.pngThis article or section needs to be translated.Tango-preferences-desktop-locale.png

Notes: please use the first argument of the template to provide more detailed indications. (Discuss in Talk:Archiso (Español)#)

Archiso es un pequeño set de scripts en bash capaz de construir imagenes live de CD o USB plenamente funcionales basadas en Arch Linux. Es una herramienta muy genérica, de manera que puede ser usada potencialmente para generar cualquier cosa, desde sistemas de rescate o discos de instalacion hasta sistemas live CD/DVD/USB's para intereses especiales, y quién sabe qué más. Simplemente, si involucra a Arch en una montaña brillante, puede hacerlo.

El corazón y alma de Archiso es mkarchiso. Todas sus opciones están documentadas en su ayuda de uso, de manera que su uso directo no será tratado aquí. ¡En su lugar, este artículo actuará como guía para crear tus propios medios live en nada de tiempo!

Instalación

Antes de empezar, necesitamos hacernos con los scripts de archiso que llevan a cabo gran parte del trabajo con

# pacman -S archiso
Note: Alternativamente, la versión GIT puede ser construída e instalada de AUR.

Crea un directorio para trabajar con el, aquí es donde todas las modificaciones a la imagen live tendrán lugar: ~/archlive está bien.

$ mkdir ~/archlive

Ahora necesitamos copiar los scripts de archiso que fueron instalados antes en el sistema dentro de la carpeta creada en la que trabajaremos. Archiso tiene dos "perfiles": releng y baseline. Si quieres crear una versión live de Arch Linux totalmente personalizada, pre-instalada con todos tus programas favoritos y configuraciones, usa releng. Si solo quieres crear el medio live más básico, sin paquetes preinstalados y configuraciones mínimas, usa baseline.

De manera que, dependiendo de tus necesidades, ejecuta lo siguiente, sustituyendo 'PERFIL' por releng o baseline.

# cp -r /usr/share/archiso/configs/PERFIL/ ~/archlive

Si estás utilizando el perfil releng para hacer una imagen totalmente personalizada, puedes hacerlo en Configurando nuestro medio live. Si estás usando el perfil baseline para crear una imagen de instalación mínima, no necesitarás hacer ninguna personalización y puedes ir directamente a Construir la ISO

Configurando nuestro medio live

Esta sección detalla la configuración de la imagen que vas a ir creando, premitiendote definir los paquetes y configuraciones que quieres que tu imagen contenga.

Mueve al directorio que creamos antes (~/archlive/releng/ si has seguido esta guía), verás una serie de archivos y directorios; solo nos interesan unos pocos, principalmente: packages.* - Aquí es donde harás una lista, línea a línea, de los paquetes que quieres tener instalados, y el directorio raíz de la imagen - este directorio actua como cubierta y es donde harás todas tus personalizaciones.

Instalando paquetes

Querrás crear una lista de paquetes que quieres instalar en tu sistema live CD. Un archivo lleno de nombres de paquetes, uno por línea, es el formato correcto para hacer esto. Esto es muy bueno para crear live CDs para intereses especiales, solamente especifica que paquetes quieres en packages.both y "cuece" la imagen. Los archivos packages.i686 y packages.x86_64 te permiten instalar software para solo 32bit o 64bit, respectivamente.

Sugerencia: También puedes crear un repositorio local personalizado (en) para preparar paquetes personalizados o paquetes de AUR/ABS. Simplemente añade tu repositorio local en la primera posición (para que tenga prioridad) del archivo pacman.conf de tu ordenador, ¡y listo!

Añadiendo un usuario

Hay dos métodos para crear un usuario: con useradd, o copiando (y modificando) /etc/shadow, /etc/passwd, y /etc/group. Este último método se desarrolla a continuación.

Copia tu archivo /etc/shadow, /etc/passwd, y /etc/group de tu propio sistema al directorio /etc/ de donde estas trabajando (que debería ser ~/archlive/releng/imagen-raíz/etc) por ej.

# cp /etc/{shadow,passwd,group} ~/archlive/releng/imagen-raíz/etc/
Advertencia: El archivo shadow contendrá tu clave encriptada. Recomiendo que antes de copiar el archivo shadow, cambies la contraseña de tu usuario en tu sistema por la que quieras que tenga tu usuario live, copia el archivo shadow, y entonces vuelve a cambiar tu contraseña.

Añadir archivos a la imagen

Nota: Debes ser superusuario para hacer esto, no cambies el nombre del usuario titular de ninguno de los archivos que copies, todo dentro del directorio imagen-raíz debe ser propiedad de root. El nombre del usuario titular correcto se resolverá automáticamente.

El directorio imagen-raíz actua como una cubierta, piensa en ella como el directorio raíz '/' de tu sistema actual, de manera que cada archivo que pongas dentro se copiará al arranque

Aí que si tienes un set de scripts de iptables en tu sistema actual que quieres usar en tu imagen live, copialos así:

# cp -r /etc/iptables ~/archlive/releng/root-image/etc

Poner archivos en el directorio home del usuario es un poco diferente. No los pongas en root-image/home, en lugar de eso crea un directorio skel dentro de root-image/ y colócalos ahí. Después añadiremos los comandos relevantes al archivo rc.local que vamos a crear para copiarlos en el arranque y definir los permisos.

Primero, crea el directorio skel; asegúrate de que estás en ~/archlive/releng/root-image/etc (si es aquí donde estás trabajando):

# cd ~/archlive/releng/root-image/etc && mkdir skel

Ahora copia los archivos de 'home' al directorio skel, ¡nuevamente haz todo como superusuario! ej. para .bashrc.

# cp ~/.bashrc ~/archlive/releng/root-image/etc/skel/

Dentro de root-image/etc/, crea el archivo rc.local, y asegúrate de que lo haces ejecutable:

# cd ~/archlive/releng/root-image/etc && touch rc.local && chmod +x rc.local

Ahora añade lo siguiente a rc.local, sustituyendo 'tuusuario' por el usuario que específicaste antes.

# Crear el directorio del usuario para la sesión live
if [ ! -d /home/tuusuario ]; then
    mkdir /home/tuusuario && chown tuusuario /home/tuusuario
fi
# Copia los archivos a home
su -c "cp -r /etc/skel/.* /home/tuusuario/" tuusuario

aitab

El archivo por defecto debería funcionar bien, de manera que no deberías necesitar tocarlo.

El archivo aitab tiene información acerca de las imágenes de los sistemas de archivos que deben ser creadas por mkarchiso y montadas en la fase de initramfs del hook archiso. Consiste en unos campos que definen el comportamiento de las imágenes.

# <img>         <mnt>                 <arch>   <sfs_comp>  <fs_type>  <fs_size>
<img>
Nombre de la imagen sin extensión (.fs .fs.sfs .sfs).
<mnt>
Punto de montaje.
<arch>
Arquitectura { i686 | x86_64 | any }.
<sfs_comp>
Tipo de compresión de SquashFS { gzip | lzo | xz }.
<fs_type>
Define el tipo de sistema de archivos de la imagen { ext4 | ext3 | ext2 | xfs }. Un valor especial "none" denota que no se usa un sistema de archivos. En ese caso todos los archivos son usados directamente por el sistema de archivos de SquashFS.
<fs_size>
Un valor absolutodel tamaño de la imagen sel sistema en MiB (ejemplo: 100, 1000, 4096, etc) Un valor relativo del espacio libre del sistema [en porcentaje] {1%..99%} (ejemplo 50%, 10%, 7%). Es una estimación, y se calcula de forma simple. Espacio usado + 10% (estimación para gastos generales de metadatos) + % deseado
Nota: Algunas combinaciones son inválidas. Por ejemplo sfs_comp y fs_type se definen como none

Cargador de Arranque

El archivo por defecto debería funcionar bien, de manera que no deberías necesitar tocarlo.

Debido a la naturaleza modular de isolinux, puedes usar un montón de añadidos ya que todos los archivos *.c32 son copiados y disponibles para ti. Echa un vistazo al sitio oficial de syslinux y al repositorio git de archiso. Usando dichos añadidos, es posible hacer menús visualmente atractivos y complejos. Mira [http://syslinux.zytor.com/wiki/index.php/Comboot/menu.c32 aquí

Gestor de Inicio de Sesión

Arrancar las X al arranque del sistema se hacía modificando inittab en los sistemas sysvinit. En un sistema basado en systemd las cosas se manejan habilitando el archivo .service de tu gestor de inicio de sesión. Si sabes que archivo .service necesita un enlace: Bien. Si no, puedes averiguarlo fácilmente en el caso de que estés usando el mismo programa en tu sistema. Solo haz:

# systemctl disable nombredetugestordeiniciodesesión

para desactivarlo temporalmente. Ahora pon el mismo comando de nuevo sustituyendo disable por enable para activarlo de nuevo. Systemctl muestra información solo los enlaces que crea. Ahora cambia a ~/archiso/releng/root-image/etc/systemd/system y crea el mismo enlace aquí.

Un ejemplo (asegurate de que estás en ~/archiso/releng/root-image/etc/systemd/system o añádelo al comando):

# ln -s /usr/lib/systemd/system/lxdm.service display-manager.service

Esto habilitará LXDM en el arranque del sistema en tu sistema live.

Construir la ISO

Ya estás listo para poner tus archivos en la .iso, que podrás grabar en un CD o USB: Dentro del directorio en el que estás trabajando, sea ~/archlive/releng o ~/archlive/baseline, ejecuta:

# ./build.sh -v

Este script descargará e instalará los paquetes que especificaste en work/*/root-image, creará las imágenes del kernel y de inicio, aplicará tus personalizaciones y finalmente construirá la iso en out/.

Usando la ISO

CD

Simplemente grábala en un cd. Puedes seguir CD Burning como desees.

USB

Ahora puedes grabar la imagen iso en un USB usando dd, un ejemplo:

# dd if=~/archlive/releng/out/*.iso of=/dev/sdx

¡Tendrás que ajustarlo de forma acorde, y asegurarte de que eliges la salida correcta! Un simple error aquí destruirá la infomarción de tu disco duro.

grub4dos

Grub4dos es una utilidad que puedes usar para crear usb multiarranque, capaces de arrancar varias distros linux desde el mismo usb.

Para arrancar el sistema generado en un usb con grub4dos ya instalado, monta la ISO y copia el directorio /arch entero en la raíz del usb. Después edita el archivo menu.lst de grub4dos (debe estar en la raíz del usb) y añade estas líneas:

title Archlinux x86_64
kernel /arch/boot/x86_64/vmlinuz archisolabel=<etiqueta de tu usb>
initrd /arch/boot/x86_64/archiso.img

Cambia x86_64 según sea necesario y pon la etiqueta de tu usb real.

Ver también