Difference between revisions of "Archiso (Español)"

From ArchWiki
Jump to: navigation, search
(Spanish translation of the Archiso page)
 
(Añadida categoría y avance en la edición)
Line 1: Line 1:
[[Category:Live Arch systems]]
+
[[Category:Live_Arch_systems_(Español)]]
 
[[el:Archiso]]
 
[[el:Archiso]]
 
[[es:Archiso]]
 
[[es:Archiso]]
Line 7: Line 7:
 
[[ru:Archiso]]
 
[[ru:Archiso]]
 
[[uk:Archiso]]
 
[[uk:Archiso]]
 +
{{translateme}}
 
'''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.
 
'''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.
  
Line 28: Line 29:
  
 
De manera que, dependiendo de tus necesidades, ejecuta lo siguiente, sustituyendo 'PERFIL' por ''releng'' o ''baseline''.
 
De manera que, dependiendo de tus necesidades, ejecuta lo siguiente, sustituyendo 'PERFIL' por ''releng'' o ''baseline''.
  # cp -r /usr/share/archiso/configs/'''PROFILE'''/ ~USER/archlive
+
  # cp -r /usr/share/archiso/configs/'''PERFIL'''/ ~/archlive
 
+
Si estás utilizando el perfil ''releng'' para hacer una imagen totalmente personalizada, puedes hacerlo en [[Archiso_(Espa%C3%B1ol)#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]]
+
  
 +
Si estás utilizando el perfil ''releng'' para hacer una imagen totalmente personalizada, puedes hacerlo en [[Archiso_(Español)#Configurando nuestro medio live|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 [[Archiso_(Español)#Construir la ISO|Construir la ISO]]
  
 
== Configurando nuestro medio live ==
 
== 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 '''[[custom local repository|repositorio local personalizado (en)]]''' para preparar paquetes personalizados o paquetes de [[Arch_User_Repository_(Español)|AUR]]/[[Arch_Build_System_(Español)|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 acts as an overlay, think of it as root directory '/' on your current system, so any files you place within this directory will be copied over on boot-up.
 +
 +
So if you have a set of iptables scripts on your current system you want to be used on you live image, copy them over as such:
 +
# cp -r /etc/iptables ~/archlive/releng/root-image/etc
 +
 +
Placing files in the users home directory is a little different. Do not place them within root-image/home, but instead create a skel directory within root-image/ and place them there. We will then add the relevant commands to the rc.local we are going to create to copy them over on boot and sort out the permissions.
 +
 +
First, create the skel directory; making sure you are within ~/archlive/releng/root-image/etc directory (if this is where you are working from):
 +
# cd ~/archlive/releng/root-image/etc && mkdir skel
 +
 +
Now copy the 'home' files to the skel directory, again doing everything as root!
 +
e.g for .bashrc.
 +
# cp ~/.bashrc ~/archlive/releng/root-image/etc/skel/
 +
 +
Inside the root-image/etc/ directory, create the rc.local file, and '''make sure''' you make it executable:
 +
 +
# cd ~/archlive/releng/root-image/etc && touch rc.local && chmod +x rc.local
 +
 +
Now add the all of following to rc.local, replacing 'youruser' with the user you specified earlier.
 +
# Create the user directory for live session
 +
if [ ! -d /home/'''youruser''' ]; then
 +
    mkdir /home/'''youruser''' && chown '''youruser''' /home/'''youruser'''
 +
fi
 +
# Copy files over to home
 +
su -c "cp -r /etc/skel/.* /home/'''youruser'''/" '''youruser'''
 +
 +
=== aitab ===
 +
 +
The default file should work fine, so you should not need to touch it.
 +
 +
The aitab file holds information about the filesystems images that must be created by mkarchiso and mounted at initramfs stage from the archiso hook.
 +
It consists of some fields which define the behaviour of images.
 +
 +
# <img>        <mnt>                <arch>  <sfs_comp>  <fs_type>  <fs_size>
 +
 +
; <img>: Image name without extension (.fs .fs.sfs .sfs).
 +
; <mnt>: Mount point.
 +
; <arch>: Architecture { i686 | x86_64 | any }.
 +
; <sfs_comp>: SquashFS compression type { gzip | lzo | xz }.
 +
; <fs_type>:  Set the filesystem type of the image { ext4 | ext3 | ext2 | xfs }. A special value of "none" denotes no usage of a filesystem. In that case all files are pushed directly to SquashFS filesystem.
 +
; <fs_size>:  An absolute value of file system image size in MiB (example: 100, 1000, 4096, etc) A relative value of file system free space [in percent] {1%..99%} (example 50%, 10%, 7%). This is an estimation, and calculated in a simple way. Space used + 10% (estimated for metadata overhead) + desired %
 +
 +
{{Note|Some combinations are invalid. Example both sfs_comp and fs_type are set to none}}
 +
 +
=== Boot Loader ===
 +
The default file should work fine, so you should not need to touch it.
 +
 +
Due to the modular nature of isolinux, you are able to use lots of addons since all *.c32 files are copied and available to you. Take a look at the [http://syslinux.zytor.com/wiki/index.php/SYSLINUX official syslinux site] and the [https://projects.archlinux.org/archiso.git/tree/configs/syslinux-iso/boot-files archiso git repo]. Using said addons, it is possible to make visually attractive and complex menus. See [http://syslinux.zytor.com/wiki/index.php/Comboot/menu.c32 here].
 +
 +
=== Login manager ===
 +
 +
Starting X at boot time was done by modifying ''inittab'' on [[sysvinit]] systems. On a [[systemd]] based system things are handled by enabling your login manager's service. If you know which .service file needs a softlink: Great. If not, you can easily find out in case you're using the same program on the system you build your iso on. Just use
 +
 +
# systemctl disable '''nameofyourloginmanager'''
 +
 +
to temporarily turn it of. Next type the same command again and replace "disable" with "enable" to activate it again. Systemctl prints information about softlink it creates. Now change to ~/archiso/releng/root-image/etc/systemd/system and create the same softlink there.
 +
 +
An example (make sure you're either in ~/archiso/releng/root-image/etc/systemd/system or add it to the command):
 +
 +
# ln -s /usr/lib/systemd/system/lxdm.service display-manager.service
 +
 +
This will enable LXDM at system start on your live system.
 +
 +
== Build the ISO ==
 +
 +
Now you are ready to turn your files into the .iso which you can then burn to CD or USB:
 +
Inside the  directory you are working with, either ~/archlive/releng, or ~/archlive/baseline, execute:
 +
 +
# ./build.sh -v
 +
 +
The script will now download and install the packages you specified to work/*/root-image, create the kernel and init images, apply your customizations and finally build the iso into out/.
 +
 +
== Using the ISO ==
 +
=== CD ===
 +
Just burn the iso to a cd. You can follow [[CD Burning]] as you wish.
 +
=== USB ===
 +
You can now dd the iso file onto a USB using dd, an example of which:
 +
# dd if=~/archlive/releng/out/*.iso of=/dev/sdx
 +
You will have to adjust accordingly, and make sure you choose the right output file! A simple mistake here will destory data on your harddisk.
 +
=== grub4dos ===
 +
Grub4dos is a utility that can be used to create multiboot usbs, able to boot multiple linux distros from the same usb stick.
 +
 +
To boot the generated system on a usb with grub4dos already installed, loop mount the ISO and copy the entire {{ic|/arch}} directory to the '''root of the usb'''.
 +
Then edit the {{ic|menu.lst}} file from the grub4dos (it must be on the usb root) and add this lines:
 +
{{bc|<nowiki>
 +
title Archlinux x86_64
 +
kernel /arch/boot/x86_64/vmlinuz archisolabel=<your usb label>
 +
initrd /arch/boot/x86_64/archiso.img
 +
</nowiki>}}
 +
Change the {{ic|x86_64}} part as necessary and put your '''real''' usb label there.
 +
== See also ==
 +
*[https://projects.archlinux.org/?p=archiso.git;a=summary Archiso project page]
 +
*[[Archiso_as_pxe_server|Archiso as pxe server]]
 +
*[https://kroweer.wordpress.com/2011/09/07/creating-a-custom-arch-linux-live-usb Step-by-step tutorial on using ArchISO]
 +
*[http://didjix.blogspot.com/ A live DJ distribution powered by ArchLinux and built with Archiso]

Revision as of 15:13, 1 March 2013

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 acts as an overlay, think of it as root directory '/' on your current system, so any files you place within this directory will be copied over on boot-up.

So if you have a set of iptables scripts on your current system you want to be used on you live image, copy them over as such:

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

Placing files in the users home directory is a little different. Do not place them within root-image/home, but instead create a skel directory within root-image/ and place them there. We will then add the relevant commands to the rc.local we are going to create to copy them over on boot and sort out the permissions.

First, create the skel directory; making sure you are within ~/archlive/releng/root-image/etc directory (if this is where you are working from):

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

Now copy the 'home' files to the skel directory, again doing everything as root! e.g for .bashrc.

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

Inside the root-image/etc/ directory, create the rc.local file, and make sure you make it executable:

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

Now add the all of following to rc.local, replacing 'youruser' with the user you specified earlier.

# Create the user directory for live session
if [ ! -d /home/youruser ]; then
    mkdir /home/youruser && chown youruser /home/youruser
fi
# Copy files over to home
su -c "cp -r /etc/skel/.* /home/youruser/" youruser

aitab

The default file should work fine, so you should not need to touch it.

The aitab file holds information about the filesystems images that must be created by mkarchiso and mounted at initramfs stage from the archiso hook. It consists of some fields which define the behaviour of images.

# <img>         <mnt>                 <arch>   <sfs_comp>  <fs_type>  <fs_size>
<img>
Image name without extension (.fs .fs.sfs .sfs).
<mnt>
Mount point.
<arch>
Architecture { i686 | x86_64 | any }.
<sfs_comp>
SquashFS compression type { gzip | lzo | xz }.
<fs_type>
Set the filesystem type of the image { ext4 | ext3 | ext2 | xfs }. A special value of "none" denotes no usage of a filesystem. In that case all files are pushed directly to SquashFS filesystem.
<fs_size>
An absolute value of file system image size in MiB (example: 100, 1000, 4096, etc) A relative value of file system free space [in percent] {1%..99%} (example 50%, 10%, 7%). This is an estimation, and calculated in a simple way. Space used + 10% (estimated for metadata overhead) + desired %
Note: Some combinations are invalid. Example both sfs_comp and fs_type are set to none

Boot Loader

The default file should work fine, so you should not need to touch it.

Due to the modular nature of isolinux, you are able to use lots of addons since all *.c32 files are copied and available to you. Take a look at the official syslinux site and the archiso git repo. Using said addons, it is possible to make visually attractive and complex menus. See here.

Login manager

Starting X at boot time was done by modifying inittab on sysvinit systems. On a systemd based system things are handled by enabling your login manager's service. If you know which .service file needs a softlink: Great. If not, you can easily find out in case you're using the same program on the system you build your iso on. Just use

# systemctl disable nameofyourloginmanager

to temporarily turn it of. Next type the same command again and replace "disable" with "enable" to activate it again. Systemctl prints information about softlink it creates. Now change to ~/archiso/releng/root-image/etc/systemd/system and create the same softlink there.

An example (make sure you're either in ~/archiso/releng/root-image/etc/systemd/system or add it to the command):

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

This will enable LXDM at system start on your live system.

Build the ISO

Now you are ready to turn your files into the .iso which you can then burn to CD or USB: Inside the directory you are working with, either ~/archlive/releng, or ~/archlive/baseline, execute:

# ./build.sh -v

The script will now download and install the packages you specified to work/*/root-image, create the kernel and init images, apply your customizations and finally build the iso into out/.

Using the ISO

CD

Just burn the iso to a cd. You can follow CD Burning as you wish.

USB

You can now dd the iso file onto a USB using dd, an example of which:

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

You will have to adjust accordingly, and make sure you choose the right output file! A simple mistake here will destory data on your harddisk.

grub4dos

Grub4dos is a utility that can be used to create multiboot usbs, able to boot multiple linux distros from the same usb stick.

To boot the generated system on a usb with grub4dos already installed, loop mount the ISO and copy the entire /arch directory to the root of the usb. Then edit the menu.lst file from the grub4dos (it must be on the usb root) and add this lines:

title Archlinux x86_64
kernel /arch/boot/x86_64/vmlinuz archisolabel=<your usb label>
initrd /arch/boot/x86_64/archiso.img

Change the x86_64 part as necessary and put your real usb label there.

See also