GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Legacy Bios, UEFI y SecureBoot Ready Personalización de imágenes Ubuntu Live

Este artículo le proporcionará información básica sobre cómo crear una imagen isohíbrida personalizada de Ubuntu Live con capacidad de arranque para que pueda comenzar con su propia distribución derivada de Ubuntu. La imagen de salida será una imagen en vivo de Ubuntu personalizada amd64, capaz de arrancar en los tres modos de arranque:Legacy Bios, UEFI y SecureBoot.

El artículo no entrará en muchos detalles sobre cómo realizar la personalización real del sistema squashfs. Sin embargo, en su lugar, se concentrará en todos los pasos relacionados con el desempaquetado de Ubuntu Iso oficial y la recomposición de todas las partes para producir una imagen isohíbrida de arranque compatible con los modos Legacy Bios, UEFI y SecureBoot.

Requisitos

Como siempre, comenzamos por los requisitos previos y la instalación del paquete opcional:

$ sudo apt-get install dumpet xorriso squashfs-tools gddrescue

Descargando la imagen ISO de Ubuntu

La primera parte de la creación de su propia distribución de Linux personalizada basada en Ubuntu Linux es descargar la imagen ISO oficial de Ubuntu. Crear un nuevo directorio custom-ubuntu para contener todos los archivos requeridos por este proyecto. EFI y su función SecureBoot no son compatibles con la arquitectura i386, así que descargue cualquier versión amd64 de la imagen ISO de Ubuntu y guárdela en custom-ubuntu directorio:

$ mkdir custom-ubuntu
$ cd custom-ubuntu/
$ wget http://url/to/ubuntu/image.iso

Extraer contenido ISO

En esta etapa necesitamos montar y extraer todo el contenido de la imagen ISO oficial de Ubuntu. Para esto usamos xorriso dominio. El siguiente xorriso El comando extraerá todos los archivos de la imagen ISO original en custom-iso directorio. Ej.:

$ xorriso -osirrox on -indev ubuntu-16.04-desktop-amd64.iso -extract / custom-iso

Proceso de personalización

En esta etapa, realice una personalización dentro de custom-iso directorio. Como se mencionó anteriormente, el proceso de cómo personalizar su imagen depende de usted. A continuación puede encontrar algunos consejos para comenzar:

    • Menú del cargador de arranque EFI:custom-iso/boot/grub/grub.cfg
    • menú de arranque heredado no EFI:custom-iso/isolinux/txt.cfg
    • sistema de archivos squashfs:custom-iso/casper/filesystem.squashfs

Para personalizar el sistema de archivos squashfs, primero descomprima filesystem.squashfs:

$ sudo  unsquashfs custom-iso/casper/filesystem.squashfs
Parallel unsquashfs: Using 8 processors
180141 inodes (192876 blocks) to write

[======================/] 192876/192876 100%
created 138452 files
created 18797 directories
created 41566 symlinks
created 81 devices
created 0 fifos

Ingrese squashfs usando chroot comando, hacer cambios y salir:

$ sudo chroot squashfs-root/
# mount none -t proc /proc; mount none -t sysfs /sys; mount none -t devpts /dev/pts

Este punto lo ubica dentro del entorno chroot de su nuevo sistema. Realice cambios como la instalación del paquete y salga de chroot:

# exit
exit
$ sudo umount -f squashfs-root/proc squashfs-root/sys squashfs-root/dev/pts

Comprimir nuevos squashfs:

$ sudo mksquashfs squashfs-root/ custom-iso/casper/filesystem.squashfs

Crear una imagen ISO isohíbrida de arranque

Obtener MBR isohíbrido isohdpfx.bin de la imagen ISO original de ubuntu usando dd comando:

$ sudo dd if=ubuntu-16.04-desktop-amd64.iso bs=512 count=1 of=custom-iso/isolinux/isohdpfx.bin

Cree una nueva imagen ISO isohíbrida desde dentro de custom-iso directorio usando xorriso dominio. Nota la "." al final del xorriso comando:

$ cd custom-iso/
$ sudo xorriso -as mkisofs -isohybrid-mbr isolinux/isohdpfx.bin \ 
-c isolinux/boot.cat -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 \
-boot-info-table -eltorito-alt-boot -e boot/grub/efi.img -no-emul-boot \
-isohybrid-gpt-basdat -o ../custom-ubuntu.iso .

xorriso 1.3.2 : RockRidge filesystem manipulator, libburnia project.

Drive current: -outdev 'stdio:../custom-ubuntu.iso'
Media current: stdio file, overwriteable
Media status : is blank
Media summary: 0 sessions, 0 data blocks, 0 data, 1444g free
Added to ISO image: directory '/'='/home/lubos/custom-ubuntu/custom-iso'
xorriso : UPDATE : 549 files added in 1 seconds
xorriso : UPDATE : 549 files added in 1 seconds
xorriso : NOTE : Copying to System Area: 512 bytes from file '/home/lubos/custom-ubuntu/custom-iso/isolinux/isohdpfx.bin'
libisofs: NOTE : Automatically adjusted MBR geometry to 1017/89/32
libisofs: NOTE : Aligned image size to cylinder size by 367 blocks
xorriso : UPDATE :  100.00% done
ISO image produced: 724104 sectors
Written to medium : 724104 sectors at LBA 0
Writing to 'stdio:../custom-ubuntu.iso' completed successfully.

El comando anterior dará como resultado un nuevo ../custom-ubuntu.iso imagen isohíbrida.

Obtención de información de la imagen

Si todo salió bien nuestro custom-ubuntu El directorio ahora debería contener una nueva imagen isohíbrida custom-ubuntu.iso :

$ ls
custom-iso  custom-ubuntu.iso  orig-iso  squashfs-root  ubuntu-16.04-desktop-amd64.iso

Tabla de particiones:

$ sudo fdisk -lu custom-ubuntu.iso

Disk custom-ubuntu.iso: 1.4 GiB, 1482964992 bytes, 2896416 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x751e87f5

Device             Boot Start     End Sectors  Size Id Type
custom-ubuntu.iso1 *        0 2896415 2896416  1.4G  0 Empty
custom-ubuntu.iso2        540    5083    4544  2.2M ef EFI (FAT-12/16/32)

Información de encabezado y catálogo:

$ sudo dumpet -i custom-ubuntu.iso 
Validation Entry:
        Header Indicator: 0x01 (Validation Entry)
        PlatformId: 0x00 (80x86)
        ID: ""
        Checksum: 0x55aa
        Key bytes: 0x55aa
Boot Catalog Default Entry:
        Entry is bootable
        Boot Media emulation type: no emulation
        Media load segment: 0x0 (0000:7c00)
        System type: 0 (0x00)
        Load Sectors: 4 (0x0004)
        Load LBA: 701876 (0x000ab5b4)
Section Header Entry:
        Header Indicator: 0x91 (Final Section Header Entry)
        PlatformId: 0xef (EFI)
        Section Entries: 1
        ID: ""
Boot Catalog Section Entry:
        Entry is bootable
        Boot Media emulation type: no emulation
        Media load address: 0 (0x0000)
        System type: 0 (0x00)
        Load Sectors: 4544 (0x11c0)
        Load LBA: 135 (0x00000087)

Encabezado de validación de Eltorito:

$ isoinfo -d -i custom-ubuntu.iso 
CD-ROM is in ISO 9660 format
System id: 
Volume id: ISOIMAGE
Volume set id: 
Publisher id: 
Data preparer id: XORRISO-1.3.2 2013.08.07.110001, LIBISOBURN-1.3.2, LIBISOFS-1.3.2, LIBBURN-1.3.2
Application id: 
Copyright File id: 
Abstract File id: 
Bibliographic File id: 
Volume set size is: 1
Volume set sequence number is: 1
Logical block size is: 2048
Volume size is: 724104
El Torito VD version 1 found, boot catalog is in sector 117
NO Joliet present
Rock Ridge signatures version 1 found
Eltorito validation header:
    Hid 1
    Arch 0 (x86)
    ID ''
    Key 55 AA
    Eltorito defaultboot header:
        Bootid 88 (bootable)
        Boot media 0 (No Emulation Boot)
        Load segment 0
        Sys type 0
        Nsect 4
        Bootoff AB5B4 701876

Catálogo de arranque y rutas de imágenes relevantes:

# xorriso -indev custom-ubuntu.iso -toc -pvd_info 
xorriso 1.3.2 : RockRidge filesystem manipulator, libburnia project.

xorriso : NOTE : Loading ISO image tree from LBA 0
xorriso : UPDATE : 549 nodes read in 1 seconds
xorriso : NOTE : Detected El-Torito boot information which currently is set to be discarded
Drive current: -indev 'custom-ubuntu.iso'
Media current: stdio file, overwriteable
Media status : is written , is appendable
Boot record  : El Torito , ISOLINUX isohybrid MBR pointing to boot image
Media summary: 1 session, 724104 data blocks, 1414m data, 1442g free
Volume id    : 'ISOIMAGE'
Drive current: -indev 'custom-ubuntu.iso'
Drive type   : vendor 'YOYODYNE' product 'WARP DRIVE' revision 'FX01'
Media current: stdio file, overwriteable
Media status : is written , is appendable
Media blocks : 724104 readable , 755967444 writable , 756691572 overall
Boot record  : El Torito , ISOLINUX isohybrid MBR pointing to boot image
Boot catalog : '/isolinux/boot.cat'
Boot image   : '/isolinux/isolinux.bin' , boot_info_table=on
Boot image   : '/boot/grub/efi.img' , platform_id=0xEF 
TOC layout   : Idx ,  sbsector ,       Size , Volume Id
ISO session  :   1 ,         0 ,    724104s , ISOIMAGE
Media summary: 1 session, 724104 data blocks, 1414m data, 1442g free
Media nwa    : 724128s
Drive current: -indev 'custom-ubuntu.iso'
PVD address  : 16s
Volume Id    : ISOIMAGE
Volume Set Id: 
Publisher Id : 
Preparer Id  : XORRISO-1.3.2 2013.08.07.110001, LIBISOBURN-1.3.2, LIBISOFS-1.3.2, LIBBURN-1.3.2
App Id       : 
System Id    : 
CopyrightFile: 
Abstract File: 
Biblio File  : 
Creation Time: 2016020823095700
Modif. Time  : 2016020823095700
Expir. Time  : 0000000000000000
Eff. Time    : 0000000000000000

Arrancar una nueva imagen personalizada de Ubuntu

Tenga en cuenta que la nueva imagen personalizada de Ubuntu está diseñada para arrancar en los tres modos, es decir, Legacy BIOS, UEFI solo y UEFI con la opción SecureBoot habilitada. Sin embargo, esto no está garantizado y pueden ocurrir problemas debido a errores de firmware de hardware, etc.

Para iniciar su nueva imagen personalizada de ubuntu, grabe el resultado ISO en un disco CD o use ddrescue comando para clonarlo en su memoria USB:

$ sudo ddrescue custom-ubuntu.iso /dev/sdX --force -D

Su memoria USB ahora contiene un sistema en vivo Ubuntu personalizado. Todo debería estar listo para arrancar desde su memoria USB.


Ubuntu
  1. Legacy Bios, UEFI y SecureBoot Ready Personalización de imágenes Ubuntu Live

  2. Ubuntu Xenial Xerus 16.04 Descarga de imagen ISO de Linux con zsync

  3. Tesseract OCR:instalación y uso en Ubuntu 16.04

  4. ¿Instalar Ubuntu en USB y arrancar desde Destop con Uefi?

  5. ¿Instalar Ubuntu desde un archivo Iso en Windows?

Cree un archivo de copia de seguridad de imagen ISO desde una carpeta en Ubuntu 17.10

Cómo crear una imagen ISO personalizada de Ubuntu Live con Cubic

¿Cómo convertir PNG, JPEG a WebP en Ubuntu? (También WebP a PNG y JPEG)

Herramientas populares para recortar y cambiar el tamaño de imágenes fácilmente en Ubuntu

¿Cómo hacer una memoria USB Ubuntu Live en Fedora?

¿Dvd con Ubuntu de 32 bits y de 64 bits?