Remastering the Install ISO (Español)
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.
Contents
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
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
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
Para poder instalar paquetes, tendrás que inicializar pacman keyring:
(chroot) # pacman-key --init (chroot) # pacman-key --populate archlinux parabola
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:
- En cada comando utiliza i686 en vez de x86_64
- cuando haga el chroot, utilice este comando en cambio:
# setarch i686 arch-chroot /mnt
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 ./
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
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.