GNU/Linux >> Znalost Linux >  >> Ubuntu

Legacy Bios, UEFI a SecureBoot připravené pro přizpůsobení obrazu Ubuntu Live

Tento článek vám poskytne základní informace o tom, jak vytvořit spouštěcí přizpůsobený isohybridní obraz Ubuntu Live, abyste mohli začít s vlastním vedlejším produktem Ubuntu. Výstupní bitovou kopii bude amd64 přizpůsobená živá bitová kopie Ubuntu, kterou lze spustit ve všech třech režimech spouštění:Legacy Bios, UEFI a SecureBoot.

Článek se nebude moc podrobně zabývat tím, jak provést skutečné přizpůsobení systému squashfs. Místo toho se však soustředí na všechny kroky týkající se rozbalení oficiálního Ubuntu Iso a sestavení všech částí zpět k vytvoření zaváděcího isohybridního obrazu podporujícího Legacy Bios, UEFI a režimy SecureBoot.

Předpoklady

Jako vždy začínáme předpoklady a volitelnou instalací balíčku:

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

Stahování obrazu ISO Ubuntu

První částí vytváření vlastního přizpůsobeného linuxového distra založeného na Ubuntu Linuxu je stažení oficiálního ISO obrazu Ubuntu. Vytvořte nový adresář custom-ubuntu uchovávat všechny soubory požadované tímto projektem. EFI a jeho funkce SecureBoot nejsou podporovány na architektuře i386, takže si stáhněte jakoukoli verzi amd64 obrazu ISO Ubuntu a uložte jej do custom-ubuntu adresář:

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

Extrahujte obsah ISO

V této fázi musíme připojit a extrahovat veškerý obsah z oficiálního ISO obrazu Ubuntu. K tomu používáme xorriso příkaz. Níže uvedené xorriso příkaz rozbalí všechny soubory z původního obrazu ISO do custom-iso adresář. Např.:

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

Proces přizpůsobení

V této fázi proveďte přizpůsobení v rámci custom-iso adresář. Jak již bylo zmíněno, tento proces přizpůsobení obrázku je na vás. Níže naleznete několik rad, jak začít:

    • Nabídka zavaděče EFI:custom-iso/boot/grub/grub.cfg
    • Starší spouštěcí nabídka bez EFI:custom-iso/isolinux/txt.cfg
    • systém souborů squashfs:custom-iso/casper/filesystem.squashfs

Chcete-li upravit systém souborů squashfs, nejprve dekomprimujte soubor 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

Zadejte squashfs pomocí chroot příkaz, proveďte změny a ukončete:

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

Zde se nacházíte v chrootovém prostředí vašeho nového systému. Proveďte změny, jako je instalace balíčku a ukončení chroot:

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

Komprimujte nové squashfs:

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

Vytvoření spouštěcího isohybridního obrazu ISO

Získejte isohybridní MBR isohdpfx.bin z původního ISO obrazu ubuntu pomocí dd příkaz :

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

Vytvořte nový isohybridní obraz ISO v rámci custom-iso adresář pomocí xorriso příkaz. Všimněte si „.“ na konci xorriso příkaz:

$ 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.

Výše uvedený příkaz bude mít za následek nový ../custom-ubuntu.iso isohybridní obrázek.

Získání informací o obrázku

Pokud vše půjde dobře, naše custom-ubuntu adresář by nyní měl obsahovat nový isohybridní obrázek custom-ubuntu.iso :

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

Tabulka oddílů:

$ 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)

Informace o záhlaví a katalogu:

$ 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)

Ověřovací hlavička 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

Spouštěcí katalog a příslušné cesty obrázků:

# 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

Zavedení nového vlastního obrazu Ubuntu

Vezměte prosím na vědomí, že nově vytvořený vlastní obraz Ubuntu je určen ke spuštění ve všech třech režimech, to znamená Legacy BIOS, pouze UEFI a také UEFI s povolenou možností SecureBoot. To však není zaručeno a mohou se vyskytnout problémy kvůli chybám firmwaru hardwaru atd.

Chcete-li spustit svůj nový vlastní obraz ubuntu, vypalte výsledný ISO na disk CD nebo použijte ddrescue příkaz pro jeho naklonování na váš USB flash disk:

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

Váš USB flash disk nyní obsahuje přizpůsobený živý systém Ubuntu. Vše by nyní mělo být připraveno ke spuštění z vašeho USB flash disku.


Ubuntu
  1. Legacy Bios, UEFI a SecureBoot připravené pro přizpůsobení obrazu Ubuntu Live

  2. Stažení obrazu ISO Ubuntu Xenial Xerus 16.04 Linux pomocí zsync

  3. „Chyba spouštění“ s živým usb Ubuntu 15.10 – jak ji opravit

  1. Tesseract OCR:Instalace a použití na Ubuntu 16.04

  2. Instalace Ubuntu na USB a spouštění z Destop pomocí Uefi?

  3. Nainstalovat Ubuntu ze souboru Iso na Windows?

  1. Jak ověřit stažený kontrolní součet Ubuntu ISO image

  2. Nainstalujte Ubuntu 20.04 na Raspberry Pi

  3. Jak duální spouštění Windows 10 (UEFI) a Ubuntu 16.04 LTS / 17.04