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
- Nabídka zavaděče EFI:
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.