Remastering the Install ISO (Español)

From ParabolaWiki
Jump to: navigation, search
Este artículo o sección está obsoleto.
Por favor, ayude a mejorar la wiki, actualizando el artículo y corrigiendo los errores.

La remasterización de la imagen ISO de Parabola no es necesaria para la mayoría de las aplicaciones. Sin embargo, puede ser deseable en algunos casos.

  • Hardware básico no no soportado por la instalación principal. (raro)
  • Instalación en una máquina sin internet.
  • Despliegue de Parabola en muchas máquinas similares, requiriendo el mismo proceso de instalación.

Como estas ISOs son arrancables, estas también pueden ser usadas para rescatar sistemas, probar, proyectos demostrativos, y más.

1 Parabolaiso

A menudo es preferible recompilar la ISO de instalación con Parabolaiso, en vez de remasterizar la imagen ISO existente.

2 Manualmente

2.1 Como funciona

La ISO de instalación contiene dos sistemas Parabola por separado. Uno para 32 bit (i686) y otro para 64 bit (x86_64). Los sistemas de archivo raíz de estos sistemas están almacenados en parabola/i686/root-image.fs.sfs y parabola/x86_64/root-image.fs.sfs. Los kernels y initramfs están en parabola/boot/i686 y parabola/boot/x86_64. Esto significa que en orden de remasterizar completamente la ISO, tendrás que hacer cambios para ambos sistemas, el de 32 bit y el de 64 bit.

Cuando es booteado, el initramfs buscará el dispositivo que fue booteado por su etiqueta, PARA_201611 por ejemplo, y va a montar el sistema de archivos raíz para la arquitectura correcta.

2.2 Extrayendo la ISO

Para remasterizar la ISO de Parabola, necesitará una copia de la imagen ISO original. Descárgalo de la página de descarga

Ahora, crea un nuevo directorio para montar la ISO:

# mkdir /mnt/parabolaiso

Monta la ISO en este directorio (debido a la naturaleza de las ISOs, el resultado es sólo lectura):

# mount -t iso9660 -o loop /path/to/parabolaISO /mnt/parabolaiso

Copia los contenidos en otro directorio, donde puedan ser editados:

$ cp -a /mnt/parabolaiso ~/customiso
Nota: Asegúrate de que customiso no exista de antemano, de lo contrario se va a crear un subdirectorio llamado parabolaiso dentro de customiso

2.3 Personalización

2.3.1 Modificando es sistema x86_64

Cambia al directorio del sistema x86_64:

 $ cd ~/customiso/parabola/x86_64

Extrae root-image.fs.sfs (a squashfs-root):

 $ unsquashfs root-image.fs.sfs
Nota: Necesitas squashfs-tools en orden de hacer eso.

Ahora puedes modificar el contenido del sistema en squashfs-root. También puedes cambiar de raíz a este sistema para instalar paquetes etc.:

 $ cd squashfs-root
 # mount root-image.fs /mnt
 # arch-chroot /mnt
Nota: Antes de montar root-image.fs tendrás que eliminar la carpeta /mnt/parabolaiso y otros archivos que tengas en /mnt si es que tienes
Nota: arch-chroot es parte del paquete arch-install-scripts
Nota: Si el script arch-chroot no está disponible en tu sistema (e.g, cuando se remasterizan distros derivadas de Arch), monta el sistema de archivos api y cópialos sobre tu DNS. Véase Change Root#Change root.

Para poder instalar paquetes, tendrás que inicializar pacman keyring:

 (chroot) # pacman-key --init
 (chroot) # pacman-key --populate archlinux parabola
Nota: Este paso puede tomar bastante tiempo, sea paciente. (Véase Pacman-Key)

Si el kernel o initrd es actualizado, pasos adicionales son requeridos. En este caso tendrá que instalar parabolaiso-git dentro del chroot and y cambiar el contenido de /etc/mkinitcpio.conf:

 (chroot) # pacman -Syu --force parabolaiso linux-libre
 (chroot) # nano /etc/mkinitcpio.conf

Cambia la línea que dice HOOKS="... to:

HOOKS="base udev memdisk parabolaiso_shutdown parabolaiso parabolaiso_loop_mnt parabolaiso_pxe_common parabolaiso_pxe_nbd parabolaiso_pxe_http parabolaiso_pxe_nfs parabolaiso_kms block pcmcia filesystems keyboard"

Ahora actualice el initramfs:

 (chroot) # mkinitcpio -p linux-libre

Cuando estés listo, crea una lista de los paquetes instalados, limpie el caché de pacman y salga del entorno chroot:

 (chroot) # LANG=C pacman -Sl | awk '/\[installed\]$/ {print $1 "/" $2 "-" $3}' > /pkglist.txt
 (chroot) # pacman -Scc
 (chroot) # exit

Si actualizó el kernel o el initramfs, cópielos sobre el sistema:

 $ cp /mnt/boot/vmlinuz-linux-libre ~/customiso/parabola/boot/x86_64/vmlinuz
 $ cp /mnt/boot/initramfs-linux-libre.img ~/customiso/parabola/boot/x86_64/parabolaiso.img

Mueva la lista de paquetes:

 $ mv /mnt/pkglist.txt ~/customiso/parabola/pkglist.x86_64.txt

Ahora vuelva a crear root-image.fs.sfs:

 $ rm root-image.fs.sfs
 $ mksquashfs squashfs-root root-image.fs.sfs

Limpie:

 # rm -r squashfs-root

Ahora actualice el MD5 checksum de root-image.fs.sfs:

 $ cd ~/customiso/parabola
 $ md5sum x86_64/root-image.fs.sfs > checksum.x86_64.md5

2.3.2 Modificando es sistema i686

Sigue los mismos pasos que para el sistema x86_64 pero con las siguientes diferencias:

  1. En cada comando utiliza i686 en vez de x86_64
  2. cuando haga el chroot, utilice este comando en cambio:
 # setarch i686 arch-chroot /mnt
Nota: Si usted no tiene el script arch-chroot, ponga setarch i686 antes de la línea donde haga chroot

2.3.3 Modificando la imagen de arranque EFI

Si actualizó el kernel o el initramfs y desea bootearlo en sistemas EFI, actualice la imagen de arranque EFI. Necesitarás dosfstools ya que la imagen de arranque EFI está en un sistema de archivos FAT16.

 $ mkdir mnt
 # mount -t fat -o loop ~/customiso/EFI/parabolaiso/efiboot.img mnt
 $ cp ~/customiso/parabola/boot/x86_64/vmlinuz mnt/EFI/parabolaiso/vmlinuz.efi
 $ cp ~/customiso/parabola/boot/x86_64/parabolaiso.img mnt/EFI/parabola/parabolaiso.img

Si ve errores como No space left on device, podrías tener que redimensionar efiboot.img. También puedes crear una imagen efiboot.img nueva y copiar los archivos antiguos (reemplaza 50 con el tamaño requerido).

 $ dd if=/dev/zero bs=1M count=50 of=efiboot-new.img
 $ mkfs.fat -n "PARABOLAISO_EFI" efiboot-new.img
 $ mkdir new
 # mount -t fat -o loop efiboot-new.img new
 $ cp -r mnt/* new/
 # umount new mnt
 $ mv efiboot-new.img ~/customiso/EFI/parabolaiso/efiboot.img

Y usa el nuevo efiboot.img como arriba.

2.4 Crea una nueva ISO

Crea una nueva imagen ISO con genisoimage, el cuál es parte de cdrkit.

$ genisoimage -l -r -J -V "PARA_201611" -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -c isolinux/boot.cat -o ../parabola-custom.iso ./
Nota: La etiqueta de la ISO debe mantener la misma que la etiqueta original (en este caso PARA_201611) para que la imagen arranque con éxito.
Nota: Las opciones -b y -c esperan rutas relativas a la raíz de la ISO

La imagen ISO resultante ISO va a bootear solamente en CD, DVD or BD. Para bootear desde un USB o disco duro, necesita la característica isohybrid. Esto puede ser logrado si se posprocesa la ISO por el programa isohybrid incluido en syslinux. Oficialmente, la versión del SYSLINUX instalado tiene que ser la misma versión que /isolinux/isolinux.bin en la ISO. No se sabe si existen combinaciones de versiones realmente incompatibles.

Una alternativa a genisoimage mas isohybrid puede ser derivada de xorriso corrida de mkarchiso.

$ iso_label="PARA_201611"
$ xorriso -as mkisofs \
       -iso-level 3 \  
       -full-iso9660-filenames \
       -volid "${iso_label}" \
       -eltorito-boot isolinux/isolinux.bin \
       -eltorito-catalog isolinux/boot.cat \
       -no-emul-boot -boot-load-size 4 -boot-info-table \
       -isohybrid-mbr ~/customiso/isolinux/isohdpfx.bin \
       -output parabola-custom.iso \ 
       ~/customiso

La opción -isohybrid-mbr necesita un archivo de plantilla MBR. Probablemente ya existe tal archivo /isolinux/isohdpfx.bin en la ISO original, que marca la versión de SYSLINUX de la ISO. Solo si este archivo no está en el contenido copiado de la ISO, tiene que ser separado del archivo de la imagen ISO, antes arriba la ejecución de xorriso realizó:

$ dd if=/path/to/parabolaISO bs=512 count=1 of=~/customiso/isolinux/isohdpfx.bin
Advertencia: No se ha probado que la activación de la partición EFI funcione

Si la ISO original soporta bootabilidad via EFI, éste puede ser activado en la nueva ISO insertando las siguientes opciones entre las líneas "-isohybrid-mbr ..." y "-output ...":

       -eltorito-alt-boot \
       -e EFI/parabolaiso/efiboot.img \
       -no-emul-boot -isohybrid-gpt-basdat \

El archivo /EFI/parabolaiso/efiboot.img es una imagen de sistema de archivos FAT. Si no está en la ISO original, entonces no había soporte EFI en esa ISO.

La nueva imagen ISO creada parabola-custom.iso está en la carpeta personal. Puedes grabar la imagen ISO en un USB como es explicado en este artículo. Alternativamente puedes quemar la imagen ISO en un CD, DVD, o BD son tu software preferido. En Parabola, eso es cubierto en el artículo acerca de la quema de una imagen ISO.

3 Véase también