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

From ArchWiki
Jump to navigation Jump to search
(recategorize to avoid redirect after the old category has been renamed)
Tag: wiki-scripts
(Artículo actualizado)
Line 12: Line 12:
 
[[sk:Archiso]]
 
[[sk:Archiso]]
 
[[zh-hans:Archiso]]
 
[[zh-hans:Archiso]]
'''Archiso''' es un pequeño conjunto de scripts de 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 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!
+
{{TranslationStatus (Español)|Archiso|2018-10-11|544276}}
 +
{{Related articles start (Español)}}
 +
{{Related|Remastering the Install ISO}}
 +
{{Related|Archiso as pxe server}}
 +
{{Related|Archboot (Español)}}
 +
{{Related|Offline installation}}
 +
{{Related articles end}}
 +
'''Archiso''' es un pequeño conjunto de scripts de bash capaz de compilar imagenes live en CD/DVD/USB plenamente funcionales basadas en Arch Linux. Es una herramienta muy genérica para generar imágenes oficiales, 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 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 la ayuda de utilización, de manera que su uso directo no será tratado aquí. En su lugar, este artículo actuará como guía para crear sus propios medios live en poco de tiempo.
  
 
== Preparar la instalación ==
 
== Preparar la instalación ==
  
{{Nota|El script es para ser utilizado en una máquina x86_64.}}
+
{{Nota|Se recomienda actuar como root en todos los pasos siguientes. Si no es así, es muy probable que tenga problemas con los permisos más adelante.}}
  
Antes de empezar, necesitamos hacernos con los scripts de archiso que llevan a cabo gran parte del trabajo, para ello [[Help:Reading_(Español)#Instalaci.C3.B3n_de_paquetes|instalaremos]] {{Pkg|archiso}} desde los [[Official repositories (Español)|repositorios oficiales]]. Alternativamente, la versión GIT ({{AUR|archiso-git}}) puede ser construída e instalada desde [[Arch User Repository (Español)|AUR]].
+
Antes de empezar, necesitamos hacernos con los scripts de archiso que llevan a cabo gran parte del trabajo, para ello [[Help:Reading_(Español)#Instalación_de_paquetes|instalaremos]] el paquete {{Pkg|archiso}} o ({{AUR|archiso-git}}).
  
Crea un directorio para trabajar con el, aquí es donde todas las modificaciones de la imagen live tendrán lugar: {{ic|/home/tuusuario/'''archlive'''}} está bien (y es el ejemplo que se utilizará a lo largo de esta guía):
+
Archiso viene con dos «perfiles»: ''releng'' y ''baseline''.
  
$ mkdir /home/tuusuario/archlive
+
*Si desea crear una versión live totalmente personalizada de Arch Linux, con todos sus programas y configuraciones favoritas preinstalados, utilice releng.
 +
*Si solo desea crear el soporte live más básico, sin paquetes preinstalados y una configuración minimalista, utilice baseline.
  
Ahora necesitamos copiar los scripts de archiso, que fueron previamente instalados en nuestro sistema, dentro de la carpeta creada, en la que trabajaremos.
+
Ahora, copie el perfil de su elección en un directorio  (''archlive'' en el ejemplo siguiente) donde puede realizar ajustes y compilarlo. Ejecute lo siguiente, reemplazando {{ic|'''perfil'''}} con {{ic|releng}} o {{ic|baseline}}.
  
Archiso tiene dos «perfiles»: ''releng'' y ''baseline''.
+
# cp -r /usr/share/archiso/configs/'''perfil'''/ ''archlive''
Si quieres crear una versión live de Arch Linux totalmente personalizada, preinstalada 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''.
+
*Si está utilizando el perfil {{ic|releng}} para hacer una imagen totalmente personalizada, puede seguir en [[#Configurar el soporte live]].
  
De manera que, dependiendo de tus necesidades, ejecuta lo siguiente, sustituyendo «PERFIL» por '''releng''' o '''baseline'''.
+
*Si está utilizando el perfil {{ic|baseline}} para crear una imagen de instalación mínima, no necesitará hacer ninguna personalización y puede ir directamente a [[#Compilar la ISO]]
# cp -r /usr/share/archiso/configs/'''PERFIL'''/ /home/tuusuario/archlive
 
  
Si estás utilizando el perfil ''releng'' para hacer una imagen totalmente personalizada, puedes hacerlo en [[#Configurar nuestro medio live|Configurar nuestro medio live]].
+
== Configurar el soporte 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|Construir la ISO]]
+
Esta sección detalla la configuración de la imagen que va a crear, premitiéndole definir los paquetes y configuraciones que quiere que contenga la imagen.
  
== Configurar nuestro medio live ==
+
Dentro del directorio {{ic|''archlive''}} creado según se ha indicado en [[#Preparar la instalación]] hay varios archivos y directorios; Solo nos interesan algunos de estos, principalmente:
 +
* el directorio {{ic|packages.x86_64}}: aquí es donde se listan, línea por línea, los paquetes que desea instalar, y;
 +
* el directorio {{ic|airootfs}}: este directorio actúa como una superposición o cubierte y es donde se realizan todas las personalizaciones.
  
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.
+
En general, todas las tareas administrativas que normalmente haría después de una instalación nueva, excepto para la instalación de paquetes, pueden incluirse en {{ic|''archlive''/airootfs/root/customize_airootfs.sh}}. Debe escribirse el script desde la perspectiva del nuevo entorno, por lo que la raíz {{ic|/}} en la secuencia de órdenes del script se refiere a la raíz de la iso live que se creará.
  
Nos movemos al directorio que hemos creado antes (es decir, {{ic|/home/tuusuario/archlive/releng/}} si estás siguiendo esta guía). Allí verás una serie de archivos y directorios; solo nos interesan unos pocos, principalmente: {{ic|packages.*}} —aquí es donde harás una lista, línea a línea, de los paquetes que quieres tener instalados—; y el directorio {{ic|root-image}} —este directorio actúa como cubierta y es donde harás todas tus personalizaciones—.
+
=== Instalar paquetes ===
 +
 
 +
[[Edit|Edite]] las listas de paquetes en {{ic|packages.x86_64}} para indicar qué paquetes se instalarán en el soporte live.
 +
 
 +
{{Nota|Si desea utiliza un [[window manager (Español)|gestor de ventanas]] en el Live CD, debe agregar los [[Xorg (Español)#Instalación del controlador|controladores de vídeo]],necesarios y correctos, o el gestor de ventanas puede congelarse al cargar.}}
 +
 
 +
==== Repositorio local personalizado ====
 +
 
 +
Con el fin de preparar paquetes personalizados o paquetes de [[AUR (Español)]]/[[Arch Build System (Español)]], también podría [[Pacman/Tips and tricks (Español)#Repositorio local personalizado|crear un repositorio local personalizado]]. Si desea admitir múltiples arquitecturas, se deben tomar precauciones para evitar que se produzcan errores. Cada arquitectura debe tener su propio árbol de directorios:
 +
 
 +
{{hc|$ tree ~/customrepo/ {{!}} sed "s/$(uname -m)/<arch>/g"|
 +
/home/archie/customrepo/
 +
└── <arch>
 +
    ├── customrepo.db -> customrepo.db.tar.xz
 +
    ├── customrepo.db.tar.xz
 +
    ├── customrepo.files -> customrepo.files.tar.xz
 +
    ├── customrepo.files.tar.xz
 +
    └── personal-website-git-b99cce0-1-<arch>.pkg.tar.xz
 +
 
 +
1 directory, 5 files
 +
}}
 +
 
 +
Luego puede agregar su repositorio colocando lo siguiente en {{ic|~/archlive/pacman.conf}}, encima de las otras entradas del repositorio (para darle la máxima prioridad):
  
=== Instalar paquetes ===
+
{{hc|~/archlive/pacman.conf|...
 +
# custom repository
 +
[customrepo]
 +
SigLevel <nowiki>=</nowiki> Optional TrustAll
 +
Server <nowiki>=</nowiki> file:///home/'''user'''/customrepo/$arch
 +
...}}
  
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 CD para intereses especiales, solamente especifica que paquetes quieres en {{ic|packages.both}} y «cuece» la imagen.
+
El ejecutable ''repo-add'' verifica si el paquete es apropiado. Si este no es el caso, se encontrará con mensajes de error similares a este:
Los archivos {{ic|packages.i686}} y {{ic|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ñadir un usuario ===
+
==> ERROR: '/home/archie/customrepo/<arch>/foo-<arch>.pkg.tar.xz' does not have a valid database archive extension.
  
Hay dos métodos para crear un usuario: con useradd, o copiando (y modificando) /etc/shadow, /etc/passwd, y /etc/group.
+
==== Evitar la instalación de paquetes que pertenecen al grupo base ====
Este último método se desarrolla a continuación.
 
  
Copia tus archivos {{ic|/etc/shadow}}, {{ic|/etc/passwd}}, y {{ic|/etc/group}} de tu propio sistema '''anfitrión''' al directorio {{ic|/etc/}} '''de tu nuevo sistema live''' (que debería ser {{ic|/home/tuusuario/archlive/releng/root-image/etc}}), por ejemplo:
+
De forma predeterminada, {{ic|/usr/bin/mkarchiso}}, un script que utiliza {{ic|~/archlive/build.sh}}, llama a uno de los {{Pkg|arch-install-scripts}} denominado {{ic|pacstrap}} sin el indicador {{ic|-i}}, lo que hace que [[Pacman (Español)]] no espere la confirmación del usuario para instalar los paquetes durante el proceso de instalación.
  
# cp /etc/{shadow,passwd,group} /home/tuusuario/archlive/releng/root-image/etc/
+
Al incluir en la lista negra los paquetes del grupo base agregándolos a la línea {{ic|IgnorePkg}} en el archivo {{ic|~/archlive/pacman.conf}}, [[Pacman (Español)]] pregunta si aún deben instalarse, lo que significa que lo harán cuando se omita la confirmación del usuario. Para deshacerse de estos paquetes hay varias opciones:
  
{{Advertencia|El archivo ''shadow'' contendrá tu clave encriptada. Se recomienda que antes de copiar el archivo shadow, cambies la contraseña de tu usuario del sistema anfitrión, por la que quieras que tenga tu usuario del sistema live, luego copias el archivo shadow, y, después, vuelves a cambiar la contraseña del usuario de tu sistema anfitrión.}}
+
* '''Engorroso''': añada el indicador {{ic|-i}} a cada línea que llame a {{ic|pacstrap}} en {{ic|/usr/bin/mkarchiso}}.
  
=== Añadir archivos a la imagen ===
+
* '''Limpio''': cree una copia de {{ic|/usr/bin/mkarchiso}} en la que agregue el indicador y adapte {{ic|~/archlive/build.sh}} para que llame a la versión modificada del script de mkarchiso.
  
{{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 root-image debe ser propiedad de ''root''. El nombre del usuario titular correcto se resolverá automáticamente.}}
+
* '''Avanzado''': cree una función para {{ic|~/archlive/build.sh}} que elimine explícitamente los paquetes después de la instalación base. Esto le dejaría la comodidad de no tener que pulsar tantas veces «intro» durante el proceso de instalación.
  
El directorio root-image actua como una cubierta, piensa en él como el directorio raíz, {{ic|/}}, de tu sistema anfitrión, de manera que cada archivo que pongas dentro se copiará al arranque.
+
==== Instalar paquetes de multilib ====
  
Así que, si tienes un conjunto de scripts de iptables en tu sistema anfitrión que quieres poder usar en tu posterior imagen live, cópialos así:
+
Para instalar paquetes desde el repositorio [[multilib]] simplemente descoméntelo del repositorio en {{ic|~/archlive/pacman.conf}}:
  # cp -r /etc/iptables /home/tuusuario/archlive/releng/root-image/etc
+
   
 +
{{hc|pacman.conf|2=
 +
[multilib]
 +
SigLevel = PackageRequired
 +
Include = /etc/pacman.d/mirrorlist
 +
}}
  
Poner archivos del directorio home del usuario en tu imagen live es un poco diferente. No los pongas en root-image/home; en lugar de eso crea un directorio {{ic|skel}} dentro de {{ic|root-image/}} y colócalos ahí. Después añadiremos las órdenes relevantes al archivo {{ic|customize_root_image.sh}} que vamos a crear para copiarlos en el arranque y definir los permisos.
+
=== Añadir archivos a la imagen ===
  
Primero, crea el directorio skel; asegúrate de que estás en {{ic|/home/tuusuario/archlive/releng/root-image/etc}} (si es aquí donde estás trabajando):
+
{{Nota|Debe ser superusuario para hacer esto, no cambie el nombre del usuario titular de ninguno de los archivos que copie, '''todo''' dentro del directorio airootfs debe ser propiedad de root. El nombre del usuario titular correcto se resolverá automáticamente.}}
# cd /home/tuusuario/archlive/releng/root-image/etc && mkdir skel
 
  
Ahora copia los archivos de «home» al directorio skel, ¡nuevamente haz todo como superusuario!, por ejemplo para .bashrc:
+
El directorio airootfs actua como una cubierta, piense en él como el directorio raíz, {{ic|/}}, de su sistema anfitrión, de manera que cada archivo que ponga dentro se copiará al arranque.
  
# cp /home/tuusuario/.bashrc /home/tuusuario/archlive/releng/root-image/etc/skel/
+
Así que, si tiene un conjunto de scripts de iptables en su sistema anfitrión que quiere poder usar en la posterior imagen live, cópielos así:
  
Ahora añade todo lo que sigue a {{ic|/home/tuusuario/archlive/releng/root-image/root/customize_root_image.sh}}, sustituyendo «tuusuariolive» por el usuario que específicaste [[#Añadir_un_usuario|antes]].
+
# cp -r /etc/iptables ~/archlive/airootfs/etc
  
# Crear el directorio del usuario para la sesión live
+
Colocar archivos del directorio home del usuario en la imagen live es un poco diferente. No los ponga en {{ic|airootfs/home}}, en lugar de eso cree un directorio {{ic|skel}} dentro de {{ic|airootfs/}} y colóquelos ahí. Después añadiremos las órdenes relevantes al archivo {{ic|customize_airootfs.sh}} que vamos a crear para copiarlos en el arranque y definir los permisos.
if [ ! -d /home/'''tuusuariolive''' ]; then
 
    mkdir /home/'''tuusuariolive''' && chown '''tuusuariolive''' /home/'''tuusuario'''
 
fi
 
# Copiar los archivos a home
 
su -c "cp -r /etc/skel/.* /home/'''tuusuariolive'''/" '''tuusuariolive'''
 
  
=== aitab ===
+
Primero, cree el directorio skel:
  
El archivo por defecto debería funcionar bien, de manera que no deberías necesitar tocarlo.
+
# mkdir ~/archlive/airootfs/etc/skel
  
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.
+
Ahora copie los archivos de «home» al directorio skel, por ejemplo para {{ic|.bashrc}}:
Consiste en unos campos que definen el comportamiento de las imágenes.
 
  
  # <img>        <mnt>                <arch>  <sfs_comp>  <fs_type>  <fs_size>
+
  # cp ~/.bashrc ~/archlive/airootfs/etc/skel/
  
; <img>: Nombre de la imagen sin extensión (.fs .fs.sfs .sfs).
+
Cuando se ejecuta {{ic|~/archlive/airootfs/root/customize_airootfs.sh}} y se crea un nuevo usuario, los archivos del directorio skel se copiarán automáticamente a la nueva carpeta de inicio («home»), con los permisos establecidos correctamente.
; <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 absoluto del tamaño de la imagen del 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}}
+
De manera similar, es necesario tener cuidado con los archivos de configuración especiales que residen en algún lugar descendiente de la jerarquía. Como ejemplo, el archivo de configuración {{ic|/etc/X11/xinit/xinitrc}} reside en una ruta que puede sobrescribirse al instalar un paquete. Para emplazar el archivo de configuración, se debe colocar el archivo {{ic|xinitrc}} personalizado en {{ic|~/archlive/airootfs/etc/skel/}} y luego modificar {{ic|customize_airootfs.sh}} para moverlo apropiadamente .
  
 
=== Cargador de arranque ===
 
=== Cargador de arranque ===
  
El archivo por defecto debería funcionar bien, de manera que no deberías necesitar tocarlo.
+
El archivo por defecto debería funcionar bien, de manera que no debería necesitar tocarlo.
 +
 
 +
Debido a la naturaleza modular de isolinux, puedes usar un montón de añadidos, ya que todos los archivos {{ic|*.c32}} se pueden copiar y están disponibles. Eche un vistazo al [http://syslinux.zytor.com/wiki/index.php/SYSLINUX sitio oficial de syslinux] y al [https://projects.archlinux.org/archiso.git/tree/configs/syslinux-iso/boot-files repositorio git de archiso]. Utilizando dichos añadidos, es posible hacer menús visualmente atractivos y complejos. Consulte [http://syslinux.zytor.com/wiki/index.php/Comboot/menu.c32 esto].
 +
 
 +
==== UEFI Secure Boot ====
  
Debido a la naturaleza modular de isolinux, puedes usar un montón de añadidos, ya que todos los archivos {{ic|*.c32}} se pueden copiar y están disponibles para ti. Echa un vistazo al [http://syslinux.zytor.com/wiki/index.php/SYSLINUX sitio oficial de syslinux] y al [https://projects.archlinux.org/archiso.git/tree/configs/syslinux-iso/boot-files 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í]
+
Si desea que su Archiso pueda iniciarse en un entorno donde esté activado UEFI Secure Boot, debe usar un cargador de arranque firmado. Puede seguir las instrucciones en [[Secure Boot#Using a signed boot loader]].
  
 
=== Gestor de inicio de sesión ===
 
=== Gestor de inicio de sesión ===
  
Iniciar X con el arranque el sistema, se hacía modificando ''inittab'' en los sistemas [[SysVinit (Español)|sysvinit]]. En un sistema basado en [[systemd (Español)|systemd]] las cosas se manejan activando el archivo ''.service'' de tu gestor de inicio de sesión. Si sabes qué enlace necesitas para el archivo ''.service` en cuestión: bien. Si no, puedes averiguarlo fácilmente, en el caso de que estés usando el mismo gestor de pantalla en tu sistema. Solo escribe:
+
Iniciar X con el arranque el sistema, en un sistema basado en [[systemd (Español)]], las cosas se manejan activando el archivo ''.service'' de su gestor de inicio de sesión. Si sabe qué enlace necesita para el archivo ''.service'' en cuestión: perfecto. Si no, puede averiguarlo fácilmente, en el caso de que esté usando el mismo gestor de pantallas en su sistema. Basta con escribir::
 +
 
 +
# ls -l /etc/systemd/system/display-manager.service
 +
 
 +
Ahora cree el mismo enlace de software en {{ic|~/archlive/airootfs/etc/systemd/system}}. Para LXDM:
 +
 
 +
# ln -s /usr/lib/systemd/system/lxdm.service ~/archlive/airootfs/etc/systemd/system/display-manager.service
 +
 
 +
Esto activará LXDM al inicio del sistema en su sistema live.
 +
 
 +
Por otro lado, puede activar el servicio en {{ic|airootfs/root/customize_airootfs.sh}} junto con otros servicios que estés activados allí.
 +
 
 +
Si desea que el entorno gráfico se inicie automáticamente durante el arranque, asegúrese de editar {{ic|airootfs/root/customize_airootfs.sh}} y reemplace
 +
 
 +
systemctl set-default multi-user.target
 +
 
 +
con
 +
 
 +
systemctl set-default graphical.target
 +
 
 +
=== Cambiar el acceso automáticamente ===
 +
 
 +
La configuración para el inicio de sesión automático de getty se encuentra en {{ic|airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf}}.
  
# systemctl disable '''nombredetugestordeiniciodesesión'''
+
Puede modificar este archivo para cambiar el usuario que inicie sesión automáticamente:
  
para desactivarlo temporalmente. Ahora pon la misma orden otra vez, sustituyendo ''«disable»'' por ''«enable»'', para activarlo de nuevo. Systemctl muestra información acerca de los enlaces que crea. Ahora muévete al directorio {{ic|/home/tuusuario/archlive/releng/root-image/etc/systemd/system}} y crea el mismo enlace ahí.
+
[Service]
 +
ExecStart=
 +
ExecStart=-/sbin/agetty --autologin '''isouser''' --noclear %I 38400 linux
  
Un ejemplo (asegurate de que estás en {{ic|/home/tuusuario/archlive/releng/root-image/etc/systemd/system}} o añádelo a la orden):
+
O elimínelo por completo para desactivar el inicio de sesión automático.
  
# ln -s /usr/lib/systemd/system/lxdm.service display-manager.service
+
==Compilar la ISO ==
  
Esto activará el gestor de de inicio de sesión LXDM al arranque del sistema de tu soporte live.
+
Ya está listo para poner sus archivos en la .iso, la cual podrá grabar en un CD o USB:
  
==Construir la ISO ==
+
Primero cree el directorio {{ic|out/}}(opcional, build.sh lo creará si no existe):
  
Ya estás listo para poner tus archivos en la .iso, la cual podrás grabar en un CD o USB:
+
# mkdir ~/archlive/out/
  
Dentro del directorio en el que estás trabajando, sea {{ic|/home/tuusuario/archlive/releng}} o {{ic|/home/tuusuario/archlive/baseline}}, ejecuta:
+
luego dentro de {{ic|~/archlive}}, ejecute:
  
 
  # ./build.sh -v
 
  # ./build.sh -v
  
Este script descargará e instalará los paquetes que especificaste en {{ic|work/*/root-image}}, creará las imágenes del kernel y de inicio, aplicará tus personalizaciones y finalmente construirá la iso en la carpetza {{ic|out/}}.
+
Este script descargará e instalará los paquetes que especificó en {{ic|work/*/airootfs}}, creará las imágenes del kernel y de init, aplicará las personalizaciones y finalmente compilará la iso en la carpeta {{ic|out/}}.
 +
 
 +
=== Reconstruir la ISO ===
 +
 
 +
La reconstrucción de la ISO después de las modificaciones no tiene soporte oficial. Sin embargo, es fácilmente factible aplicando dos pasos. Primero tiene que eliminar los archivos de bloqueo presentes en el directorio de trabajo:
 +
 
 +
# rm -v work/build.make_*
 +
 
 +
Además, se requiere editar el script  {{ic|airootfs/root/customize_airootfs.sh}}, y añadir una orden {{ic|id}} al comienzo de la línea {{ic|useradd}} como se muestra aquí. De lo contrario, la reconstrucción se detiene en este punto porque el usuario que se va a agregar ya existe {{Bug|41865}}.
  
== Utilizar la ISO ==
+
! id arch && useradd -m -p "" -g users -G "adm,audio,floppy,log,network,rfkill,scanner,storage,optical,power,wheel" -s /usr/bin/zsh arch
=== CD ===
 
  
Simplemente grábala en un cd. Puedes seguir [[CD Burning]] como desees.
+
También elimine los datos persistentes, como los usuarios creados, o los enlaces simbólicos, como {{ic|/etc/sudoers}}.
  
=== USB ===
+
Las reconstrucciones pueden acelerarse ligeramente editando el script pacstrap (ubicado en /bin/pacstrap) y cambiando lo siguiente en la línea 361:
  
Ahora puedes grabar la imagen iso en un USB usando dd, un ejemplo:
+
Antes:
# dd if=/home/tuusuario/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í podría destruir la infomarción de tu disco duro.
 
  
=== grub4dos ===
+
if ! pacman -r "$newroot" -Sy "${pacman_args[@]}"; then
  
Grub4dos es una utilidad que puedes usar para crear usb multiarranque, capaces de arrancar varias distros linux desde el mismo usb.
+
Después:
  
Para arrancar el sistema generado en un usb con grub4dos ya instalado, monta la ISO y copia el directorio {{ic|/arch}} entero en la '''raíz del usb'''.
+
if ! pacman -r "$newroot" -Sy --needed "${pacman_args[@]}"; then
Después edita el archivo {{ic|menu.lst}} de grub4dos (debe estar en la raíz del usb) y añade estas líneas:
 
{{bc|<nowiki>
 
title Archlinux x86_64
 
kernel /arch/boot/x86_64/vmlinuz archisolabel=<etiqueta de tu usb>
 
initrd /arch/boot/x86_64/archiso.img
 
</nowiki>}}
 
Cambia {{ic|x86_64}} según sea necesario y pon la etiqueta de tu usb '''real'''.
 
  
=== Instalación ===
+
Esto aumenta la velocidad del arranque inicial, ya que no tiene que descargar ni instalar ninguno de los paquetes básicos que ya están instalados.
  
Arranque el CD/DVD/USB creado. Si desea instalar la Archiso creada  '''-tal como está-''', hay varios caminos para hacerlo, pero, en cualquier caso, hemos de tener presentes que estamos siguiendo la [[Installation guide (Español)|guía de instalación]] en su mayor parte.
+
== Utilizar la ISO ==
  
Si no tiene una conexión a Internet en su equipo, o si no quiere descargar todos los paquetes que desea otra vez, siga la Guía, y al llegar a la [[Installation guide (Español)#Instalación de los paquetes del sistema base|Instalar los paquetes del sistema base]], en lugar de realizar la descarga, utilice esto: [[Full system backup with rsync]]. (Más información aquí: [[Talk:Archiso]])
+
Consulte la sección [[Getting and installing Arch#Installation methods]] para conocer distintas opciones.
  
 +
== Véase también ==
 +
=== Documentación y tutoriales ===
 +
* [https://projects.archlinux.org/archiso.git  Página del proyecto Archiso]
 +
* [https://projects.archlinux.org/archiso.git/tree/docs Documentación oficial]
  
==Consulte también ==
+
=== Ejemplo de plantilla personalizada ===
 +
* [http://easy.open.and.free.fr/didjix/ A live DJ distribution powered by ArchLinux and built with Archiso]
  
*[https://projects.archlinux.org/?p=archiso.git;a=summary Página del proyecto Archiso (en)]
+
=== Crear una ISO de instalación sin conexión ===
*[[Archiso_as_pxe_server|Archiso como servidor pxe (en)]]
+
* [[Archiso offline]]
*[https://kroweer.wordpress.com/2011/09/07/creating-a-custom-arch-linux-live-usb Tutorial paso a paso para usar ArchISO (en)]
 
*[http://didjix.blogspot.com/ Una distribución live para DJ basada en ArchLinux y construida con Archiso (en)]
 

Revision as of 14:06, 11 October 2018

Estado de la traducción
Este artículo es una traducción de Archiso, revisada por última vez el 2018-10-11. Si advierte que la versión inglesa ha cambiado puede ayudar a actualizar la traducción, bien por usted mismo o bien avisando al equipo de traducción.

Archiso es un pequeño conjunto de scripts de bash capaz de compilar imagenes live en CD/DVD/USB plenamente funcionales basadas en Arch Linux. Es una herramienta muy genérica para generar imágenes oficiales, 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 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 la ayuda de utilización, de manera que su uso directo no será tratado aquí. En su lugar, este artículo actuará como guía para crear sus propios medios live en poco de tiempo.

Preparar la instalación

Nota: Se recomienda actuar como root en todos los pasos siguientes. Si no es así, es muy probable que tenga problemas con los permisos más adelante.

Antes de empezar, necesitamos hacernos con los scripts de archiso que llevan a cabo gran parte del trabajo, para ello instalaremos el paquete archiso o (archiso-gitAUR).

Archiso viene con dos «perfiles»: releng y baseline.

  • Si desea crear una versión live totalmente personalizada de Arch Linux, con todos sus programas y configuraciones favoritas preinstalados, utilice releng.
  • Si solo desea crear el soporte live más básico, sin paquetes preinstalados y una configuración minimalista, utilice baseline.

Ahora, copie el perfil de su elección en un directorio (archlive en el ejemplo siguiente) donde puede realizar ajustes y compilarlo. Ejecute lo siguiente, reemplazando perfil con releng o baseline.

# cp -r /usr/share/archiso/configs/perfil/ archlive
  • Si está utilizando el perfil baseline para crear una imagen de instalación mínima, no necesitará hacer ninguna personalización y puede ir directamente a #Compilar la ISO

Configurar el soporte live

Esta sección detalla la configuración de la imagen que va a crear, premitiéndole definir los paquetes y configuraciones que quiere que contenga la imagen.

Dentro del directorio archlive creado según se ha indicado en #Preparar la instalación hay varios archivos y directorios; Solo nos interesan algunos de estos, principalmente:

  • el directorio packages.x86_64: aquí es donde se listan, línea por línea, los paquetes que desea instalar, y;
  • el directorio airootfs: este directorio actúa como una superposición o cubierte y es donde se realizan todas las personalizaciones.

En general, todas las tareas administrativas que normalmente haría después de una instalación nueva, excepto para la instalación de paquetes, pueden incluirse en archlive/airootfs/root/customize_airootfs.sh. Debe escribirse el script desde la perspectiva del nuevo entorno, por lo que la raíz / en la secuencia de órdenes del script se refiere a la raíz de la iso live que se creará.

Instalar paquetes

Edite las listas de paquetes en packages.x86_64 para indicar qué paquetes se instalarán en el soporte live.

Nota: Si desea utiliza un gestor de ventanas en el Live CD, debe agregar los controladores de vídeo,necesarios y correctos, o el gestor de ventanas puede congelarse al cargar.

Repositorio local personalizado

Con el fin de preparar paquetes personalizados o paquetes de AUR (Español)/Arch Build System (Español), también podría crear un repositorio local personalizado. Si desea admitir múltiples arquitecturas, se deben tomar precauciones para evitar que se produzcan errores. Cada arquitectura debe tener su propio árbol de directorios:

$ tree ~/customrepo/ | sed "s/$(uname -m)/<arch>/g"
/home/archie/customrepo/
└── <arch>
    ├── customrepo.db -> customrepo.db.tar.xz
    ├── customrepo.db.tar.xz
    ├── customrepo.files -> customrepo.files.tar.xz
    ├── customrepo.files.tar.xz
    └── personal-website-git-b99cce0-1-<arch>.pkg.tar.xz

1 directory, 5 files

Luego puede agregar su repositorio colocando lo siguiente en ~/archlive/pacman.conf, encima de las otras entradas del repositorio (para darle la máxima prioridad):

~/archlive/pacman.conf
...
# custom repository
[customrepo]
SigLevel = Optional TrustAll
Server = file:///home/user/customrepo/$arch
...

El ejecutable repo-add verifica si el paquete es apropiado. Si este no es el caso, se encontrará con mensajes de error similares a este:

==> ERROR: '/home/archie/customrepo/<arch>/foo-<arch>.pkg.tar.xz' does not have a valid database archive extension.

Evitar la instalación de paquetes que pertenecen al grupo base

De forma predeterminada, /usr/bin/mkarchiso, un script que utiliza ~/archlive/build.sh, llama a uno de los arch-install-scripts denominado pacstrap sin el indicador -i, lo que hace que Pacman (Español) no espere la confirmación del usuario para instalar los paquetes durante el proceso de instalación.

Al incluir en la lista negra los paquetes del grupo base agregándolos a la línea IgnorePkg en el archivo ~/archlive/pacman.conf, Pacman (Español) pregunta si aún deben instalarse, lo que significa que lo harán cuando se omita la confirmación del usuario. Para deshacerse de estos paquetes hay varias opciones:

  • Engorroso: añada el indicador -i a cada línea que llame a pacstrap en /usr/bin/mkarchiso.
  • Limpio: cree una copia de /usr/bin/mkarchiso en la que agregue el indicador y adapte ~/archlive/build.sh para que llame a la versión modificada del script de mkarchiso.
  • Avanzado: cree una función para ~/archlive/build.sh que elimine explícitamente los paquetes después de la instalación base. Esto le dejaría la comodidad de no tener que pulsar tantas veces «intro» durante el proceso de instalación.

Instalar paquetes de multilib

Para instalar paquetes desde el repositorio multilib simplemente descoméntelo del repositorio en ~/archlive/pacman.conf:

pacman.conf
[multilib]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

Añadir archivos a la imagen

Nota: Debe ser superusuario para hacer esto, no cambie el nombre del usuario titular de ninguno de los archivos que copie, todo dentro del directorio airootfs debe ser propiedad de root. El nombre del usuario titular correcto se resolverá automáticamente.

El directorio airootfs actua como una cubierta, piense en él como el directorio raíz, /, de su sistema anfitrión, de manera que cada archivo que ponga dentro se copiará al arranque.

Así que, si tiene un conjunto de scripts de iptables en su sistema anfitrión que quiere poder usar en la posterior imagen live, cópielos así:

# cp -r /etc/iptables ~/archlive/airootfs/etc

Colocar archivos del directorio home del usuario en la imagen live es un poco diferente. No los ponga en airootfs/home, en lugar de eso cree un directorio skel dentro de airootfs/ y colóquelos ahí. Después añadiremos las órdenes relevantes al archivo customize_airootfs.sh que vamos a crear para copiarlos en el arranque y definir los permisos.

Primero, cree el directorio skel:

# mkdir ~/archlive/airootfs/etc/skel

Ahora copie los archivos de «home» al directorio skel, por ejemplo para .bashrc:

# cp ~/.bashrc ~/archlive/airootfs/etc/skel/

Cuando se ejecuta ~/archlive/airootfs/root/customize_airootfs.sh y se crea un nuevo usuario, los archivos del directorio skel se copiarán automáticamente a la nueva carpeta de inicio («home»), con los permisos establecidos correctamente.

De manera similar, es necesario tener cuidado con los archivos de configuración especiales que residen en algún lugar descendiente de la jerarquía. Como ejemplo, el archivo de configuración /etc/X11/xinit/xinitrc reside en una ruta que puede sobrescribirse al instalar un paquete. Para emplazar el archivo de configuración, se debe colocar el archivo xinitrc personalizado en ~/archlive/airootfs/etc/skel/ y luego modificar customize_airootfs.sh para moverlo apropiadamente .

Cargador de arranque

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

Debido a la naturaleza modular de isolinux, puedes usar un montón de añadidos, ya que todos los archivos *.c32 se pueden copiar y están disponibles. Eche un vistazo al sitio oficial de syslinux y al repositorio git de archiso. Utilizando dichos añadidos, es posible hacer menús visualmente atractivos y complejos. Consulte esto.

UEFI Secure Boot

Si desea que su Archiso pueda iniciarse en un entorno donde esté activado UEFI Secure Boot, debe usar un cargador de arranque firmado. Puede seguir las instrucciones en Secure Boot#Using a signed boot loader.

Gestor de inicio de sesión

Iniciar X con el arranque el sistema, en un sistema basado en systemd (Español), las cosas se manejan activando el archivo .service de su gestor de inicio de sesión. Si sabe qué enlace necesita para el archivo .service en cuestión: perfecto. Si no, puede averiguarlo fácilmente, en el caso de que esté usando el mismo gestor de pantallas en su sistema. Basta con escribir::

# ls -l /etc/systemd/system/display-manager.service

Ahora cree el mismo enlace de software en ~/archlive/airootfs/etc/systemd/system. Para LXDM:

# ln -s /usr/lib/systemd/system/lxdm.service ~/archlive/airootfs/etc/systemd/system/display-manager.service

Esto activará LXDM al inicio del sistema en su sistema live.

Por otro lado, puede activar el servicio en airootfs/root/customize_airootfs.sh junto con otros servicios que estés activados allí.

Si desea que el entorno gráfico se inicie automáticamente durante el arranque, asegúrese de editar airootfs/root/customize_airootfs.sh y reemplace

systemctl set-default multi-user.target

con

systemctl set-default graphical.target

Cambiar el acceso automáticamente

La configuración para el inicio de sesión automático de getty se encuentra en airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf.

Puede modificar este archivo para cambiar el usuario que inicie sesión automáticamente:

[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin isouser --noclear %I 38400 linux

O elimínelo por completo para desactivar el inicio de sesión automático.

Compilar la ISO

Ya está listo para poner sus archivos en la .iso, la cual podrá grabar en un CD o USB:

Primero cree el directorio out/(opcional, build.sh lo creará si no existe):

# mkdir ~/archlive/out/

luego dentro de ~/archlive, ejecute:

# ./build.sh -v

Este script descargará e instalará los paquetes que especificó en work/*/airootfs, creará las imágenes del kernel y de init, aplicará las personalizaciones y finalmente compilará la iso en la carpeta out/.

Reconstruir la ISO

La reconstrucción de la ISO después de las modificaciones no tiene soporte oficial. Sin embargo, es fácilmente factible aplicando dos pasos. Primero tiene que eliminar los archivos de bloqueo presentes en el directorio de trabajo:

# rm -v work/build.make_*

Además, se requiere editar el script airootfs/root/customize_airootfs.sh, y añadir una orden id al comienzo de la línea useradd como se muestra aquí. De lo contrario, la reconstrucción se detiene en este punto porque el usuario que se va a agregar ya existe FS#41865.

! id arch && useradd -m -p "" -g users -G "adm,audio,floppy,log,network,rfkill,scanner,storage,optical,power,wheel" -s /usr/bin/zsh arch

También elimine los datos persistentes, como los usuarios creados, o los enlaces simbólicos, como /etc/sudoers.

Las reconstrucciones pueden acelerarse ligeramente editando el script pacstrap (ubicado en /bin/pacstrap) y cambiando lo siguiente en la línea 361:

Antes:

if ! pacman -r "$newroot" -Sy "${pacman_args[@]}"; then

Después:

if ! pacman -r "$newroot" -Sy --needed "${pacman_args[@]}"; then

Esto aumenta la velocidad del arranque inicial, ya que no tiene que descargar ni instalar ninguno de los paquetes básicos que ya están instalados.

Utilizar la ISO

Consulte la sección Getting and installing Arch#Installation methods para conocer distintas opciones.

Véase también

Documentación y tutoriales

Ejemplo de plantilla personalizada

Crear una ISO de instalación sin conexión