GNU/Linux >> Linux の 問題 >  >> Ubuntu

レガシーBIOS、UEFI、SecureBoot対応のUbuntuライブイメージのカスタマイズ

この記事では、独自のUbuntuディストリビューションのスピンオフを開始するために、起動可能なUbuntuLiveのカスタマイズされたisohybridイメージを作成する方法に関するコア情報を提供します。出力イメージは、amd64でカスタマイズされたUbuntuライブイメージであり、Legacy Bios、UEFI、SecureBootの3つのブートモードすべてでブートできます。

この記事では、実際のsquashfsシステムのカスタマイズを実行する方法についてはあまり詳しく説明しません。ただし、代わりに、公式のUbuntu Isoを解凍し、すべてのパーツを元に戻して、Legacy Bios、UEFI、およびSecureBootモードをサポートする起動可能なisohybridイメージを生成するためのすべての手順に集中します。

前提条件

いつものように、前提条件とオプションのパッケージのインストールから始めます:

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

UbuntuISOイメージのダウンロード

Ubuntu Linuxに基づいて独自にカスタマイズされたLinuxディストリビューションを作成する最初の部分は、公式のUbuntuISOイメージをダウンロードすることです。新しいディレクトリを作成しますcustom-ubuntu このプロジェクトに必要なすべてのファイルを保持します。 EFIとそのSecureBoot機能はi386アーキテクチャではサポートされていないため、Ubuntu ISOイメージのamd64バージョンをダウンロードして、custom-ubuntu内に保存します。 ディレクトリ:

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

ISOコンテンツを抽出する

この段階で、公式のUbuntuISOイメージからすべてのコンテンツをマウントして抽出する必要があります。このために、xorrisoを使用します 指図。以下のxorriso コマンドは、元のISOイメージからすべてのファイルをcustom-isoに抽出します ディレクトリ。例:

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

カスタマイズプロセス

この段階で、custom-iso内でカスタマイズを実行します ディレクトリ。前に述べたように、これはあなたがあなたのイメージをどのようにカスタマイズするかというプロセスはあなた次第です。以下に、始めるためのヒントをいくつか示します。

    • EFIブートローダーメニュー:custom-iso/boot/grub/grub.cfg
    • 非EFIレガシーブートメニュー:custom-iso/isolinux/txt.cfg
    • squashfsファイルシステム:custom-iso/casper/filesystem.squashfs

squashfsファイルシステムをカスタマイズするには、最初に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

chrootを使用してsquashfsを入力します コマンドを実行し、変更を加えて終了します:

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

これは、新しいシステムのchroot環境内にいることを示しています。パッケージのインストールやchrootの終了などの変更を行います:

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

新しいsquashfsを圧縮する:

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

起動可能なアイソハイブリッドISOイメージの作成

isohybrid MBR isohdpfx.binを取得します ddを使用して元のubuntuISOイメージから コマンド:

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

custom-iso内から新しいisohybridISOイメージを作成します xorrisoを使用したディレクトリ 指図。 「。」に注意してくださいxorrisoの最後に コマンド:

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

上記のコマンドは、新しい../custom-ubuntu.isoになります。 アイソハイブリッド画像。

画像情報の取得

すべてがうまくいけば、custom-ubuntu これで、ディレクトリに新しいisohybridイメージcustom-ubuntu.isoが含まれるはずです。 :

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

パーティションテーブル:

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

ヘッダーとカタログ情報:

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

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

ブートカタログと関連するイメージパス:

# 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

新しいカスタムUbuntuイメージの起動

新しく作成されたカスタムUbuntuイメージは、レガシーBIOS、UEFIのみ、およびSecureBootオプションが有効になっているUEFIの3つのモードすべてで起動することを目的としていることに注意してください。ただし、これは保証されておらず、ハードウェアファームウェアのバグなどが原因で問題が発生する可能性があります。

新しいカスタムubuntuイメージを起動するには、結果のISOをCDディスクに書き込むか、ddrescueを使用します USBスティックにクローンを作成するコマンド:

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

これで、USBスティックにカスタマイズされたUbuntuライブシステムが含まれます。これで、USBスティックからすべてを起動する準備が整いました。


Ubuntu
  1. レガシーBIOS、UEFI、SecureBoot対応のUbuntuライブイメージのカスタマイズ

  2. Ubuntu Xenial Xerus16.04zsyncを使用したLinuxISOイメージのダウンロード

  3. USBにUbuntuをインストールし、Uefiを使用してDestopから起動しますか?

  1. Tesseract OCR:Ubuntu16.04でのインストールと使用法

  2. WindowsのIsoファイルからUbuntuをインストールしますか?

  3. Ubuntu 15.10のライブUSBでの「ブートエラー」–修正方法

  1. ダウンロードしたUbuntuISOイメージのチェックサムを確認する方法

  2. RaspberryPiにUbuntu20.04をインストールします

  3. Windows 10(UEFI)とUbuntu 16.04 LTS/17.04をデュアルブートする方法