mkisofsでisoを「起動可能(dos / MBRセクタ)」に設定します。

mkisofsでisoを「起動可能(dos / MBRセクタ)」に設定します。

isoファイル「archlinux-2022.06.01-x86_64.iso」を抽出しました。 "airootfs.sfs"ファイルを変更しました。

次に、抽出した元のisoファイルと同様に、「ブータブル(dos / MBRセクタ)」isoイメージを再生成します。

sudo xorriso -as  mkisofs -d -l -r  -no-emul-boot 
-o archlinux.iso .
-append_partition 2 0xef ../compile-linux/efi_part.img -e  "--interval:appended_partition_2:all::" -no-emul-boot ../compile-linux/bios_boot.img
-G ../compile-linux/mbr_code.img 
-b syslinux/isolinux.bin 
-c syslinux/boot.cat

出力file archlinux.iso

archlinux.iso: ISO 9660 CD-ROM filesystem data (DOS/MBR boot sector) 'ISOIMAGE' (bootable)

出力コマンドxorriso -indev archlinux.iso -report-el-torito plain -report-system-area plain

xorriso 1.5.4 : RockRidge filesystem manipulator, libburnia project.

xorriso : NOTE : Loading ISO image tree from LBA 0
xorriso : UPDATE :     114 nodes read in 1 seconds
xorriso : NOTE : Detected El-Torito boot information which currently is set to be discarded
Drive current: -indev 'archlinux.iso'
Media current: stdio file, overwriteable
Media status : is written , is appendable
Boot record  : El Torito , MBR cyl-align-off
Media summary: 1 session, 445804 data blocks,  871m data,  178g free
Volume id    : 'ISOIMAGE'
El Torito catalog  : 42  1
El Torito cat path : /syslinux/boot.cat
El Torito images   :   N  Pltf  B   Emul  Ld_seg  Hdpt  Ldsiz         LBA
El Torito boot img :   1  BIOS  y   none  0x0000  0x00     76          43
El Torito img path :   1  /syslinux/isolinux.bin
System area options: 0x00000a00
System area summary: MBR cyl-align-off
ISO image size/512 : 1783216
Partition offset   : 0
MBR heads per cyl  : 64
MBR secs per head  : 32
MBR partition table:   N Status  Type        Start       Blocks
MBR partition      :   1   0x00  0x83            0      1783216
MBR partition      :   2   0x00  0xef      1783216         1600

上記の出力は私が自分で作成したisoファイルです。

仮想マシン「Efiオプションが無効になっています」でisoファイルを使用しようとすると、このエラーが発生します。

ここに画像の説明を入力してください。

私は初心者であり、これについてはよくわかりません。

それで、RAW ISO出力から画像を作成する正しい方法を見つけようとしましたが、成功しませんでした。

xorriso 1.5.4 : RockRidge filesystem manipulator, libburnia project.

xorriso : NOTE : ISO image bears MBR with  -boot_image any partition_offset=16
xorriso : NOTE : Loading ISO image tree from LBA 0
xorriso : UPDATE :     113 nodes read in 1 seconds
libisofs: NOTE : Found hidden El-Torito image for EFI.
libisofs: NOTE : EFI image start and size: 396800 * 2048 , 0 * 512
xorriso : NOTE : Detected El-Torito boot information which currently is set to be discarded
Drive current: -indev '../archlinux-2022.06.01-x86_64.iso'
Media current: stdio file, overwriteable
Media status : is written , is appendable
Boot record  : El Torito , MBR isohybrid cyl-align-all GPT
Media summary: 1 session, 440998 data blocks,  861m data,  178g free
Volume id    : 'ARCH_202206'
El Torito catalog  : 118  1
El Torito cat path : /syslinux/boot.cat
El Torito images   :   N  Pltf  B   Emul  Ld_seg  Hdpt  Ldsiz         LBA
El Torito boot img :   1  BIOS  y   none  0x0000  0x00      4         119
El Torito boot img :   2  UEFI  y   none  0x0000  0x00      0      396800
El Torito img path :   1  /syslinux/isolinux.bin
El Torito img opts :   1  boot-info-table isohybrid-suitable
El Torito img blks :   2  44032
System area options: 0x00000302
System area summary: MBR isohybrid cyl-align-all GPT
ISO image size/512 : 1763992
Partition offset   : 16
MBR heads per cyl  : 64
MBR secs per head  : 32
MBR partition table:   N Status  Type        Start       Blocks
MBR partition      :   1   0x80  0x00           64      1587136
MBR partition      :   2   0x00  0xef      1587200       176128
GPT                :   N  Info
GPT disk GUID      :      3230323230363041b130303533353232
GPT entry array    :      2  248  separated
GPT lba range      :      64  1763928  1763991
GPT partition name :   1  490053004f00480079006200720069006400
GPT partname local :   1  ISOHybrid
GPT partition GUID :   1  3230323230363041b131303533353232
GPT type GUID      :   1  a2a0d0ebe5b9334487c068b6b72699c7
GPT partition flags:   1  0x1000000000000001
GPT start and size :   1  64  1587136
GPT partition name :   2  490053004f004800790062007200690064003100
GPT partname local :   2  ISOHybrid1
GPT partition GUID :   2  3230323230363041b132303533353232
GPT type GUID      :   2  a2a0d0ebe5b9334487c068b6b72699c7
GPT partition flags:   2  0x1000000000000001
GPT start and size :   2  1587200  176128

私は何が間違っていましたか? ISOイメージファイルを作成してライブとして使用しようとしています。

ご協力ありがとうございます

ベストアンサー1

xorriso -as mkisofs 実行には、少なくとも -e と修正オプション、-b と修正オプション -eltorito-alt-boot の間の区切り文字はありません。したがって、-e は -b にオーバーライドされるため、結果の ISO には EFI の El Torito エントリがありません。

いずれにせよ、ISOLINUXの失敗をこれらの欠点に変えることはできません。私はこれが欠けている -b 修正オプションに関連していると思います。

xorrisoに起動可能なISO再生のための起動関連オプションに関するアドバイスを依頼することができます(ISOがxorrisoで作成されている場合は最適です)。 Archlinux ISOを正しく分析するには、xorriso-1.5.4以降が必要です。以前のバージョンでは、ブートオプションの組み合わせを使用する必要がないためです。

$ xorriso -indev archlinux-2022.06.01-x86_64.iso -report_el_torito as_mkisofs
...
-V 'ARCH_202206'
--modification-date='2022060115352200'
-isohybrid-mbr --interval:local_fs:0s-15s:zero_mbrpt,zero_gpt:'archlinux-2022.06.01-x86_64.iso'
-partition_cyl_align all
-partition_offset 16
-partition_hd_cyl 64
-partition_sec_hd 32
--mbr-force-bootable
-append_partition 2 0xef --interval:local_fs:1587200d-1763327d::'archlinux-2022.06.01-x86_64.iso'
-iso_mbr_part_type 0x00
-c '/syslinux/boot.cat'
-b '/syslinux/isolinux.bin'
-no-emul-boot
-boot-load-size 4
-boot-info-table
-eltorito-alt-boot
-e '--interval:appended_partition_2_start_396800s_size_176128d:all::'
-no-emul-boot
-boot-load-size 0
-isohybrid-gpt-basdat

一部はISO固有であるため、これらすべてを提供する必要はありません(-V 'ARCH_202206' --modification-date = '2022060115352200')。 xorrisoが独自に計算できるため、一部は実際には必要ありません(-partition_cyl_align all -partition_hd_cyl 64 -partition_sec_hd 32 -boot-load-size 0)。

オプションのリストと比較すると、これは(仮想)光学メディアからBIOSを介して起動できない直接的な原因であると確信しています。

  • -b 修正オプションがありません: -no-emul-boot -boot-load-size 4 -boot-info-table (-no-emul-boot バグが適用されました)

しかし、もっと質問があります。

  • -eltorito-alt-bootが見つからないため、EFIを光学メディアから起動できません。

  • -e修正オプション-isohybrid-gpt-basdatが見つからないため、厳しいEFI実装ではUSBスティックからGPTを起動できません。

  • -isohybrid-mbrが見つからないため、USBスティックからBIOSを介して起動できません。代わりに、重複した-GとぼやけたMBRイメージmbr_code.imgがあります(これはどこで得られましたか?)。

  • 難読化された入力ファイル../compile-linux/bios_boot.imgは、ISOのルートディレクトリにマップされます。

-bと-eは逆順ですが、大丈夫です。 EFIイメージのブートロードサイズ0は大きすぎてブートディレクトリに実際のサイズをリストできないため、正しいです(32MiBに制限)。

xorriso-1.5.4を使用してArchlinux ISOを操作するより簡単な方法があります。

xorriso -indev archlinux-2022.06.01-x86_64.iso \
        -outdev archlinux.iso \
        ... xorriso manipulation commands like -map or -rm ... \
        -boot_image any replay

(xorrisoの質問とサポートリクエストは、次のアドレスに送信するのが最善です。 [Eメール保護].)

良い一日を過ごしてください:)

まな

おすすめ記事