GNU/Linux >> Belajar Linux >  >> Ubuntu

Legacy Bios, UEFI dan SecureBoot siap kustomisasi gambar Ubuntu Live

Artikel ini akan memberi Anda informasi inti tentang cara membuat image isohybrid kustom Ubuntu Live yang dapat di-boot untuk membantu Anda memulai spin-off distro Ubuntu Anda sendiri. Gambar keluaran akan menjadi gambar langsung Ubuntu yang disesuaikan dengan AMD64, yang dapat melakukan booting dalam ketiga mode boot:Bios Legacy, UEFI, dan SecureBoot.

Artikel ini tidak akan membahas banyak detail tentang cara melakukan kustomisasi sistem squashfs yang sebenarnya. Namun, alih-alih itu akan berkonsentrasi pada semua langkah mengenai membongkar Iso Ubuntu resmi dan menyatukan semua bagian kembali untuk menghasilkan gambar isohybrid yang dapat di-boot yang mendukung mode Legacy Bios, UEFI, dan SecureBoot.

Prasyarat

Seperti biasa kita mulai dengan prasyarat dan instalasi paket opsional:

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

Mengunduh citra ISO Ubuntu

Bagian pertama dari membuat distro Linux Anda sendiri yang disesuaikan berdasarkan Ubuntu Linux adalah mengunduh image ISO resmi Ubuntu. Buat direktori baru custom-ubuntu untuk menampung semua file yang dibutuhkan oleh proyek ini. EFI dan fitur SecureBoot-nya tidak didukung pada arsitektur i386 jadi unduh versi amd64 dari image ISO Ubuntu dan simpan di dalam custom-ubuntu direktori:

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

Ekstrak konten ISO

Pada tahap ini kita perlu memasang dan mengekstrak semua konten dari image ISO resmi Ubuntu. Untuk ini kami menggunakan xorriso memerintah. Di bawah xorriso perintah akan mengekstrak semua file dari gambar ISO asli ke custom-iso direktori. Mis.:

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

Proses Kustomisasi

Pada tahap ini lakukan kustomisasi dalam custom-iso direktori. Seperti yang disebutkan sebelumnya, ini proses bagaimana Anda menyesuaikan gambar Anda terserah Anda. Di bawah ini Anda dapat menemukan beberapa petunjuk untuk memulai:

    • Menu bootloader EFI:custom-iso/boot/grub/grub.cfg
    • menu boot lama non-EFI:custom-iso/isolinux/txt.cfg
    • sistem file squashfs:custom-iso/casper/filesystem.squashfs

Untuk menyesuaikan sistem file squashfs, dekompresi filesystem.squashfs terlebih dahulu:

$ 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

Masukkan squashfs menggunakan chroot perintah, buat perubahan dan keluar:

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

Ini menunjukkan Anda dalam lingkungan chroot dari sistem baru Anda. Buat perubahan seperti instalasi paket dan keluar dari chroot:

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

Kompres squashf baru:

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

Membuat image ISO isohybrid yang dapat di-boot

Dapatkan isohybrid MBR isohdpfx.bin dari gambar ISO ubuntu asli menggunakan dd perintah :

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

Buat image ISO isohybrid baru dari dalam custom-iso direktori menggunakan xorriso memerintah. Perhatikan "." di akhir xorriso perintah:

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

Perintah di atas akan menghasilkan ../custom-ubuntu.iso baru gambar isohibrid.

Mendapatkan informasi Gambar

Jika semuanya berjalan dengan baik custom-ubuntu kami direktori sekarang harus berisi gambar isohybrid baru custom-ubuntu.iso :

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

Tabel partisi:

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

Informasi tajuk dan katalog:

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

Header validasi 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

Katalog boot dan jalur gambar yang relevan:

# 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

Mem-boot image Ubuntu kustom baru

Harap dicatat bahwa image Ubuntu kustom yang baru diproduksi dimaksudkan untuk boot dalam ketiga mode, yaitu Legacy BIOS, UEFI saja, serta UEFI dengan opsi SecureBoot diaktifkan. Namun, ini tidak dijamin dan masalah dapat terjadi karena bug firmware perangkat keras, dll.

Untuk mem-boot image ubuntu kustom baru Anda, bakar ISO hasil pada disk CD atau gunakan ddrescue perintah untuk mengkloningnya ke stik USB Anda:

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

Stik USB Anda sekarang berisi sistem live Ubuntu yang disesuaikan. Semua seharusnya sudah siap untuk boot dari stik USB Anda.


Ubuntu
  1. Legacy Bios, UEFI dan SecureBoot siap kustomisasi gambar Ubuntu Live

  2. Unduh gambar ISO Ubuntu Xenial Xerus 16.04 Linux dengan zsync

  3. Tesseract OCR:Instalasi dan Penggunaan di Ubuntu 16.04

  1. Menginstal Ubuntu Di Usb Dan Mem-boot Dari Destop Dengan UEFA?

  2. Instal Ubuntu Dari File Iso Di Windows?

  3. “Boot Error” dengan live usb Ubuntu 15.10 – Cara Memperbaikinya

  1. Bagaimana cara memverifikasi checksum gambar ISO Ubuntu yang diunduh

  2. Instal Ubuntu 20.04 di Raspberry Pi

  3. Cara Dual Boot Windows 10 (UEFI) dan Ubuntu 16.04 LTS / 17.04