Ubuntu

Legacy BIOS, UEFI y SecureBoot Ready Ubuntu Personalización de imágenes en vivo

Legacy BIOS, UEFI y SecureBoot Ready Ubuntu Personalización de imágenes en vivo

Este artículo le proporcionará una información principal sobre cómo crear una imagen isohibrid personalizada Ubuntu Live para comenzar con su propio spin-off Ubuntu Distro. La imagen de salida será AMD64 Imagen de Ubuntu Live personalizada, 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 con respecto a desempacar el ISO de Ubuntu oficial y volver a unir todas las partes para producir una imagen isohibrid de arranque que admite BIOS heredados, UEFI y modos SecureBoot.

Requisitos previos

Como siempre, comenzamos por requisitos previos e instalación opcional del paquete:

$ sudo apt-get instalación dumpet xorriso squashfs-tools gddrescue 

Descargar la imagen de Ubuntu ISO

La primera parte de la creación de su propia distribución de Linux personalizada basada en el Ubuntu Linux es descargar la imagen oficial de Ubuntu ISO. Crear un nuevo directorio personalizado Para mantener todos los archivos requeridos por este proyecto. EFI y su función SecureBoot no es compatible con la arquitectura i386, así que descargue cualquier versión amd64 de la imagen iso de Ubuntu y la guíela dentro personalizado directorio:

$ Mkdir Custom-Ubuntu $ CD Custom-Ubuntu/$ wget http: // url/to/ubuntu/image.Yo asi 

Extraer contenido ISO

En esta etapa necesitamos montar y extraer todo el contenido de la imagen oficial de Ubuntu ISO. Para esto usamos xorriso dominio. El siguiente xorriso El comando extraerá todos los archivos de la imagen ISO original a personalizado directorio. P.ej.:

$ xorriso -osirrox en -indev ubuntu -16.04-desktop-amd64.ISO -extract / personalizado -iso 

Proceso de personalización

En esta etapa realiza una personalización dentro personalizado directorio. Como se mencionó anteriormente, este es el proceso de cómo personalizar su imagen depende de usted. A continuación puede encontrar pocas sugerencias para comenzar:

Para personalizar el sistema de archivos de Squashfs Files First Decompress.squashfs:

$ sudo unsquashfs personalizado-iso/casper/fileSystem.squashfs paralelo unsquashfs: Uso de 8 procesadores 180141 inodos (192876 bloques) para escribir [======================/] 192876/192876 100% creado 138452 Archivos creados 18797 creados 18797 creados 18797 Directorios creados 41566 Syminks creados 81 dispositivos creados 0 FIFOS 

Ingrese a SQUASHFS usando croote comandar, hacer cambios y salir:

$ sudo chroot squashfs -root / # monte ninguno -t proc / proc; montar ninguno -t sysfs /sys; montar ninguno -t devpts /dev /pts 

El punto de este punto en el entorno chroot de su nuevo sistema. Hacer cambios como la instalación del paquete y salir de chroot:

# Salir Salida $ sudo Umount -f squashfs-root/proc squashfs-root/sys squashfs-raot/dev/pts 

Comprimir nuevos squashfs:

$ sudo mksQuashfs squashfs-root/personalizado-iso/casper/sistema de archivos.squashfs 

Creación de una imagen ISO isohybrid de arranque de arranque

Obtener isohibrid MBR isohdpfx.papelera de la imagen ISO de Ubuntu original usando dd dominio :

$ sudo dd if = ubuntu-16.04-desktop-amd64.ISO BS = 512 Count = 1 de = Custom-iso/Isolinux/ISOHDPFX.papelera 

Construya una nueva imagen ISO isohybrid desde adentro personalizado directorio usando xorriso dominio. Nota la "."Al final del xorriso dominio:

$ 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 -elelTorito-Alt-Boot -e Boot/Grub/Efi.img -no-emul-boot \ -ISOHYBRID-GPT-BASDAT -O ... /Custom-Ubuntu.Yo asi . Xorriso 1.3.2: Rockridge Files System Manipulator, Libburnia Project. Corriente de unidad: -outdev 'Stdio: ... /Custom -Ubuntu.ISO 'Media actual: archivo stdio, estado de medios sobrescribible: es resumen de medios en blanco: 0 sesiones, 0 bloques de datos, 0 datos, 1444g gratuito agregado a la imagen ISO: directorio'/'='/home/lubos/custom-ubuntu/personalizado/personalizado/personalizado -ISO 'Xorriso: Actualización: 549 archivos agregados en 1 segundos Xorriso: Actualización: 549 archivos agregados en 1 segundos Xorriso: Nota: Copiar al área del sistema: 512 bytes del archivo'/home/lubos/custom-ubuntu/custom-iso// Isolinux/IsoHDPFX.bin 'libisofs: Nota: Geometría MBR ajustada automáticamente a 1017/89/32 Libisofs: Nota: Tamaño de imagen alineado con el tamaño del cilindro por 367 bloques Xorriso: Actualización: 100.00% ISO ISO Producido: 724104 Sectores escritos en Medium: 724104 Sectores en LBA 0 Escribir a 'Stdio: ... /Custom-Ubuntu.ISO 'completado con éxito. 

El comando anterior dará como resultado un nuevo … /Custom-Ubuntu.Yo asi imagen isohíbrida.

Obtener información de imagen

Si todo salió bien nuestro personalizado El directorio ahora debe contener una nueva imagen isohibrid personalizado.Yo asi:

$ LS Custom-iso Custom-Ubuntu.ISO Orig-iso squashfs-root ubuntu-16.04-desktop-amd64.Yo asi 

Tabla de partición:

$ sudo fdisk -lu personalizado -Ubuntu.ISO Disk Custom-Ubuntu.ISO: 1.4 GIB, 14829649992 bytes, 2896416 Sectores Unidades: Sectores de 1 * 512 = 512 Bytes Tamaño del sector (lógico/físico): 512 Bytes/512 Bytes I/O Size (Minimum/Optimal): 512 Bytes/512 Bytes Tipo de disco disgusto: Dos de dos Identificador de disco: 0x751e87f5 Sectores de arranque del dispositivo Sectores final Tipo ID de ID Custom-Ubuntu.ISO1 * 0 2896415 2896416 1.4g 0 vacío personalizado-ubuntu.ISO2 540 5083 4544 2.2M EF EFI (grasa-12/16/32) 

Información de encabezado y catálogo:

$ sudo dumpet -i Custom -Ubuntu.Entrada de validación de ISO: Indicador del encabezado: 0x01 (entrada de validación) Plataforma: 0x00 (80x86) ID: "" SUMACIÓN DE CHECKS: 0x55AA Bytes clave: 0x55AA Catálogo de arranque Entrada predeterminada: La entrada es Tipo de emulación de medios de arranque de arranque: sin emulación Medios de carga segmento: 0x0 ((0x0 (( 0000: 7C00) Tipo de sistema: 0 (0x00) Sectores de carga: 4 (0x0004) Carga LBA: 701876 (0x000AB5B4) Sección Entrada del encabezado: Indicador del encabezado: 0x91 (Entrada del encabezado de la sección final) Plataforma: 0xef (EFI) Entradas de sección: 1 ID : "" Sección de catálogo de arranque Entrada: La entrada es de arranque de medios de arranque Tipo de emulación: No emulación Medios de carga Dirección: 0 (0x0000) Tipo de sistema: 0 (0x00) Sectores de carga: 4544 (0x11c0) Carga LBA: 135 (0x0000000087) 

Encabezado de validación de Eltorito:

$ isoinfo -d -i Custom -Ubuntu.ISO CD-ROM está en ISO 9660 Formato ID del sistema: ID de volumen: ISOIMAGE ID de conjunto de volumen: ID del editor: ID de preparador de datos: Xorriso-1.3.2 2013.08.07.110001, Libisoburn-1.3.2, libisofs-1.3.2, libburn-1.3.2 ID de aplicación: ID de archivo de copyright: ID de archivo de resumen: ID de archivo bibliográfico: El tamaño de conjunto de volumen es: 1 Número de secuencia establecida de volumen es: 1 El tamaño del bloque lógico es: 2048 El tamaño del volumen es: 724104 El Torito VD versión 1 encontrado, el catálogo de arranque es es En el sector 117 no Joliet Present Rock Ridge Str "Ridge Versión 1 Encabezado de validación de Eltorito: Hid 1 Arch 0 (x86) ID" Clave 55 AA Eltorito Defaultboot encabezado: BootID 88 (Bootable) Boot Media 0 (No Emulation Boot) Segmento de carga 0 Sys Tipo SYS 0 SYS Tipo Sys Tipo de sys 0 NSECT 4 Bootoff AB5B4 701876 

Catálogo de arranque y rutas de imagen relevantes:

# xorriso -indev Custom -Ubuntu.ISO -TOC -PVD_INFO XORRISO 1.3.2: Rockridge Files System Manipulator, Libburnia Project. XORRISO: Nota: Carga del árbol de imágenes ISO desde LBA 0 Xorriso: Actualización: 549 Nodos Leído en 1 segundos Xorriso: Nota: Información detectada de El-Torito que actualmente se establece para descartarse Corriente: -indev 'Custom-Ubuntu.ISO 'Media actual: archivo stdio, estado de medios sobrescritos: se escribe, se puede agregar registro de arranque: El Torito, ISolinux isohybrid MBR apuntando a arranque de los medios de imagen Resumen: 1 sesión, 724104 bloques de datos, 1414m datos, 1442g ID de volumen gratuito:' ISOIMAGEA 'Drive Current: -indev' Custom -Ubuntu.ISO 'Tipo de unidad: Vendor' Yoyodyne 'Producto' Warp Drive 'Revisión' FX01 'Medios Current: Archivo STDIO, Estado de medios sobrescritos: está escrito, es Bloque de medios de sujeción agente: 724104 Legable, 755967444 Writable, 756691572 Registro general de arranque: El torito, el torito, ISOLINUX ISOHYBRID MBR apuntando al Catálogo de arranque de imagen de arranque: '/Isolinux/Boot.Imagen de arranque de Cat: '/Isolinux/Isolinux.bin ', boot_info_table = en la imagen de arranque:'/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 'Dirección de PVD: 16S ID de volumen: ISOIMAGE ID de conjunto de volumen: ID del editor: ID del preparador: Xorriso-1.3.2 2013.08.07.110001, Libisoburn-1.3.2, libisofs-1.3.2, libburn-1.3.2 ID de aplicación: ID del sistema: CopyrightFile: Abstract Archivo: Biblio Archivo: Tiempo de creación: 2016020823095700 modif. Hora: 2016020823095700 caducidad. Hora: 00000000000000000000 EFF. Hora: 000000000000000000 

Arrancar una nueva imagen de Ubuntu personalizada

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

Para iniciar su nueva imagen Ubuntu personalizada, queme el ISO de resultados en el disco de CD o use ddRescue Comandar clonarlo a su palo USB:

$ sudo ddrescue Custom-Ubuntu.ISO /dev /sdx --force -d 

Su palo USB ahora contiene un sistema Ubuntu Live personalizado. Todo debería estar listo para arrancar desde su palo USB.

Hash perl
PERL Hash Veamos en un par de ejemplos cómo podemos usar el hash perl. Primero necesitamos saber que el valor de Perl hash es accesible a través de la...
Procesamiento de imágenes, estiramiento lineal y openCV
En un intento de reconocer objetos examinando imágenes, se aplican varias técnicas de procesamiento y análisis de imágenes. Este artículo describe bre...
Cómo bloquear un tráfico de spam de referente con Apache Webserver
Cómo bloquear un tráfico de spam referente con Apache Webserver...