BiosモードとUEFIモードで起動できるUbuntu 18.04ベースのISOを作成しようとしています。 Biosモードで起動しましたが、UEFIモードで起動する際に問題があります。 USBスティックに焼くと、ISO9660 USBにUEFIパーティションが作成されます。 UEFIモードで起動しようとすると、grubプロンプトが表示されます。
fdisk -lの結果
larry@larry-Satellite-C55-A:~/foxclone$ fdisk -l foxclone025-02.iso
Disk foxclone025-02.iso: 660 MiB, 692060160 bytes, 1351680 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: 0x45d15306
Device Boot Start End Sectors Size Id Type
foxclone025-02.iso1 * 0 1351679 1351680 660M 0 Empty
foxclone025-02.iso2 276 5203 4928 2.4M ef EFI (FAT-12/16/32)
EFIパーティションを作成する方法は次のとおりです。
#! /bin/sh
BOOT_IMG_DATA=$($HOME/foxclone/newiso -d)
BOOT_IMG=efi.img
mkdir -p $(dirname $BOOT_IMG)
truncate -s 4M $BOOT_IMG
mkfs.vfat $BOOT_IMG
mkdir -p $BOOT_IMG_DATA/efi/boot
grub-mkimage \
-C xz \
-O x86_64-efi \
-p /boot/grub \
-o $BOOT_IMG_DATA/efi/boot/bootx64.efi \
boot linux search normal configfile \
part_gpt btrfs fat iso9660 loopback \
test keystatus gfxmenu regexp probe \
efi_gop efi_uga all_video gfxterm font \
echo read ls cat png jpeg halt reboot
mcopy -i $BOOT_IMG -s $BOOT_IMG_DATA/efi ::
isoを構築する方法は次のとおりです。
#!/bin/bash
orig_iso="$HOME"/foxclone/foxclone025-01.iso
new_iso="$HOME"/foxclone/foxclone025-02.iso
new_files=$HOME/foxclone/newiso
mbr_template=isohdpfx.bin
xorriso -as mkisofs \
-r -V 'Foxclone' \
-o "$new_iso" \
-J -J -joliet-long -cache-inodes \
-isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin \
-b isolinux/isolinux.bin \
-c isolinux/boot.cat \
-boot-load-size 4 -boot-info-table -no-emul-boot \
-eltorito-alt-boot \
-e --interval:appended_partition_2:all:: \
-append_partition 2 0xef efi.img \
-no-emul-boot -isohybrid-gpt-basdat \
"$new_files"
ダンプ結果
larry@larry-Satellite-C55-A:~/foxclone$ dumpet -i foxclone025-02.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: 38 (0x00000026)
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: 8192 (0x2000)
Load LBA: 275968 (0x00043600)
ちょっと助けて欲しいです、ラリー
ベストアンサー1
間違っている可能性のある微妙なものが十分にあるため、スクリプトで完全に間違っていることはわかりません。しかし、それでも他に何もない場合は、素晴らしい内容を確認してください。ロードの本トピックにおそらく私のISOジェネレータスクリプト- 特定の作業に比べて複雑すぎますが(私の作業にはまだ簡単すぎる)、そこで重要なことを発見したかもしれません。
PS:このスクリプトは以下に基づいています。再検索(私にとって、これはその本と同じくらい優れています。)現在、グラブサポートを追加しようとしていますが、まだ実装されていません。
その間、実際にUbuntu 18.04を使用せずにUEFIブート機能(署名付きshimを含む)を持つカスタムISOのみが必要な場合可能ALTに興味があるMK画像、上記のスクリプトの一部であり、mkimage 構成ファイルその後、画像ベーキング用の展開構成を構築するためのフレームワークを提供します(例:ALTスターターキットそれで作られただけでなく、私たちのバージョン 9.0;デリバティブを作成するのは非常に簡単で技術的な傾向がありますが、現在、ほとんどの文書はロシア語です。
恥ずかしいプラグ申し訳ありません。私は偶然にALT LinuxでUEFIをサポートするmpを設計した人なので、尋ねる必要はありませんでした。 :-)