Manos a la obra...
Preparación del dispositivo USB
ADVERTENCIA: LOS COMANDOS QUE USAREMOS A CONTINUACIÓN ELIMINAN PARTICIONES Y DATOS EXISTENTES EN EL DISPOSITIVO USB. POR LO QUE ES IMPORTANTE IDENTIFICARLO PREVIAMENTE ASEGURÁNDONOS DE QUE ESTAMOS TRABAJANDO SOBRE EL DISPOSITIVO DESTINADO PARA ESTE PROYECTO.
Para identificar nuestro dispositivo en /dev usaremos el comando lsblk:
fraterneo@rainbow:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 1 114.6G 0 disk
La salida del comando mostró varios dispositivos, de los cuales solo estoy mostrando sda. Por lo que en los comandos subsiguientes todo apuntará a /dev/sda para crear las particiones /dev/sda1 y /dev/sda2. La salida del comando lsblk no muestra nada en MOUNTPOINTS y debe ser así ya que si esta montado no será posible trabajar sobre él. Si tu dispositivo se encuentra montado debes desmontarlo usando el comando umount.
Eliminamos del dispositivo cualquier filesystem existente:
fraterneo@rainbow:~$ sudo wipefs -a /dev/sda
Dado que el dispositivo cuenta con un espacio de 114.6G, crearemos las dos particiones para que cada una cuente con el 50% del almacenamiento disponible (más o menos):
fraterneo@rainbow:~$ sudo parted /dev/sda --script mklabel msdos
fraterneo@rainbow:~$ sudo parted /dev/sda --script mkpart primary fat32 1MiB 62GiB
fraterneo@rainbow:~$ sudo parted /dev/sda --script mkpart primary ext4 62GiB 100%
Creamos los filesystems en las particiones correspondientes, FAT32 para sda1 y Ext4 para sda2. Incluimos la opción -E root_owner=$UID:$GUID en la creación del filesystem Ext4, asignando como propietario al usuario del entorno actual, para evitar inconvenientes con los permisos a la hora de crear archivos en dicha partición:
fraterneo@rainbow:~$ sudo mkfs.vfat -F32 -n multiboot /dev/sda1 fraterneo@rainbow:~$ sudo mkfs.ext4 -L iso -E root_owner=$UID:$GID /dev/sda2
Aprovechamos completamente el tamaño del filesystem Ext4, pasando a 0 el espacio reservado (el mismo no es necesario cuando se usa solo para almacenamiento):
fraterneo@rainbow:~$ sudo tune2fs -m 0 /dev/sda2Instalación de GRUB2
Montamos la partición sda1:
fraterneo@rainbow:~$ sudo mount /dev/sda1 /mnt
Instalamos GRUB2 para EFI:
fraterneo@rainbow:~$ sudo grub2-install --target=x86_64-efi --removable --efi-directory=/mnt/multiboot/ --boot-directory /mnt/multiboot/boot --no-nvram --forceInstalamos GRUB2 para BIOS (Legacy Support):
fraterneo@rainbow:~$ sudo grub2-install --target=i386-pc --removable --boot-directory /mnt/multiboot/boot /dev/sdaPor alguna razón grub2-install no copia el archivo lnxboot.img, pero lo haremos manualmente:
fraterneo@rainbow:~$ cp /usr/lib/grub/i386-pc/lnxboot.img /mnt/multiboot/boot/grub2/i386-pc/Lo podríamos dejar hasta éste punto y todo funcionaría bien: GRUB2 como gestor de arranque tanto para EFI como para BIOS. Sin embargo, agregaremos el gestor de arranque Syslinux (sólo funciona para BIOS) y dentro de él una opción en el menú para cargar GRUB2 y, dentro de GRUB2 una opción en el menú para volver a Syslinux.
Instalación de Syslinux
Creamos el directorio donde residirá Syslinux. Si no tienes Syslinux instalado en tu distribución, puedes buscarlo en el gestor de aplicaciones, instalarlo, localizar dónde fue instalado y sustituir las rutas en donde sea necesario:
fraterneo@rainbow:~$ sudo mkdir /mnt/multiboot/boot/syslinuxInstalamos Syslinux en su ruta y también lo copiamos al MBR:
fraterneo@rainbow:~$ sudo syslinux --install --directory boot/syslinux /dev/sda1
fraterneo@rainbow:~$ sudo dd if=/usr/share/syslinux/mbr.bin of=/dev/sda bs=440 count=1
Agregamos los demás archivos de Syslinux necesarios para su funcionamiento:
fraterneo@rainbow:~$ cp /usr/share/syslinux/chain.c32 /mnt/multiboot/boot/syslinux/
fraterneo@rainbow:~$ cp /usr/share/syslinux/memdisk /mnt/multiboot/boot/syslinux/
fraterneo@rainbow:~$ cp /usr/share/syslinux/menu.c32 /mnt/multiboot/boot/syslinux/
fraterneo@rainbow:~$ cp /usr/share/syslinux/vesamenu.c32 /mnt/multiboot/boot/syslinux/
fraterneo@rainbow:~$ cp /usr/share/syslinux/libcom32.c32 /mnt/multiboot/boot/syslinux/
fraterneo@rainbow:~$ cp /usr/share/syslinux/libutil.c32 /mnt/multiboot/boot/syslinux/
fraterneo@rainbow:~$ cp /usr/share/syslinux/reboot.c32 /mnt/multiboot/boot/syslinux/
fraterneo@rainbow:~$ cp /usr/share/syslinux/libmenu.c32 /mnt/multiboot/boot/syslinux/Finalmente establecemos el boot flag del dispositivo USB, sin ésto no hay arranque:
fraterneo@rainbow:~$ sudo parted /dev/sda set 1 boot onEn ésta segunda parte vimos cómo preparar nuestro dispositivo para éste proyecto estableciendo las particiones y sus respectivos filesystems. También instalamos GRUB2, tanto para EFI como para BIOS (legacy), instalamos Syslinux (un gestor de arranque BIOS legacy) desde el que nos podremos mover a GRUB2 legacy y viceversa.
Para la siguiente entrega veremos los archivos de configuración de GRUB2 y Syslinux y la estructura de directorios que vamos a formar para comenzar a colocar las distribuciones y sus respectivas entradas en los menús de los gestores de arranque.
Si tienes alguna duda o sugerencia, no dudes dejármelo saber en los comentarios.







0 comments:
Publicar un comentario