ISOファイル、特にDebianインストーラ(debian-11.4.0-i386-netinst.iso)を修正して起動してみました。次のコードはisoファイルの内容を抽出し、新しいisoファイルを再作成します。
mkdir -p tmp_dir
bsdtar -C tmp_dir -xf debian-11.4.0-i386-netinst.iso
genisoimage -r -J -b isolinux/isolinux.bin -c isolinux/boot.cat \
-no-emul-boot -boot-load-size 4 -boot-info-table \
-o new_image.iso tmp_dir
その後、新しいisoファイルをUSBドライブにコピーしました。
sudo dd if=new_image.iso of=/dev/sdg status=progress
これにより、lsblk
次の出力が提供されます。
$ lsblk /dev/sdg
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sdg 8:96 1 29,4G 0 disk
しかし、始めることはできません。理由をご存知ですか?
以下は、いくつかの追加情報です。
- まず、元の画像を使用してUSBスティックを作成すると、USBスティックから起動できます。
sudo dd if=debian-11.4.0-i386-netinst.iso of=/dev/sdg status=progress
その後、lsblk
次のような結果が出ます。
$ lsblk /dev/sdg
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sdg 8:96 1 29,4G 0 disk
├─sdg1 8:97 1 471M 0 part
└─sdg2 8:98 1 1,9M 0 part
2つのパーティションを見ることができます(新しいイメージにはパーティションがありません)。
- 第二に、新しいイメージはvmwareで正しく実行されます。標準のコンピュータでは動作しないことがわかりません。
どんなアイデアがありますか?
ベストアンサー1
起動可能なUSBメディア作成ツールの開発者であるRufusは、次のように書きました。SuperUser.SEへの素晴らしい答えです。問題を引き起こす裏面の複雑さを理解できるように説明します。
を使用すると、genisoimage
ISOファイルを(物理または仮想)CD / DVDでのみ起動可能にすることができます。
HDDなどのデバイスから起動するには(USBスティックに書き込むときなど)、イメージの先頭にマスターブートレコードが必要で、有効なMBRパーティションテーブルを含める必要があるため、イメージも有効です。ハードディスクイメージとして解釈されます。
これは、この目標を達成するために開発された最初のツールに基づく「isomixed ISOイメージ」とも呼ばれます。 Debian 11 では、xorriso
これらのイメージファイルを作成することができます。
xorriso -indev debian-11.4.0-i386-netinst.iso -report_el_torito cmd
および/またはを使用すると、xorriso -indev debian-11.4.0-i386-netinst.iso -boot_image any show_status
元xorriso
の画像を確認およびフィードバックするためのオプションで、その画像の起動構造を説明できますxorriso
。これが私が得るものです:
$ xorriso -indev debian-11.4.0-i386-netinst.iso -report_el_torito cmd
xorriso 1.5.2 : RockRidge filesystem manipulator, libburnia project.
xorriso : NOTE : Loading ISO image tree from LBA 0
xorriso : UPDATE : 1651 nodes read in 1 seconds
xorriso : NOTE : Detected El-Torito boot information which currently is set to be discarded
Drive current: -indev 'debian-11.4.0-i386-netinst.iso'
Media current: stdio file, overwriteable
Media status : is written , is appendable
Boot record : El Torito , MBR isohybrid cyl-align-on GPT APM
Media summary: 1 session, 241152 data blocks, 471m data, 1781g free
Volume id : 'Debian 11.4.0 i386 n'
-volid 'Debian 11.4.0 i386 n'
-volume_date uuid '2022070910381400'
-boot_image isolinux system_area=--interval:imported_iso:0s-15s:zero_mbrpt,zero_gpt,zero_apm:'debian-11.4.0-i386-netinst.iso'
-boot_image any partition_cyl_align=on
-boot_image any partition_offset=0
-boot_image any partition_hd_cyl=64
-boot_image any partition_sec_hd=32
-boot_image any mbr_force_bootable=on
-boot_image any apm_block_size=2048
-boot_image any iso_mbr_part_type=0x00
-boot_image any cat_path='/isolinux/boot.cat'
-boot_image isolinux bin_path='/isolinux/isolinux.bin'
-boot_image any platform_id=0x00
-boot_image any emul_type=no_emulation
-boot_image any load_size=2048
-boot_image any boot_info_table=on
-boot_image any next
-boot_image any efi_path='/boot/grub/efi.img'
-boot_image any platform_id=0xef
-boot_image any emul_type=no_emulation
-boot_image any load_size=2031616
-boot_image isolinux partition_entry=gpt_basdat
-boot_image isolinux partition_entry=apm_hfsplus
そして
$ xorriso -indev debian-11.4.0-i386-netinst.iso -boot_image any show_status
xorriso 1.5.2 : RockRidge filesystem manipulator, libburnia project.
xorriso : NOTE : Loading ISO image tree from LBA 0
xorriso : UPDATE : 1651 nodes read in 1 seconds
xorriso : NOTE : Detected El-Torito boot information which currently is set to be discarded
Drive current: -indev 'debian-11.4.0-i386-netinst.iso'
Media current: stdio file, overwriteable
Media status : is written , is appendable
Boot record : El Torito , MBR isohybrid cyl-align-on GPT APM
Media summary: 1 session, 241152 data blocks, 471m data, 1781g free
Volume id : 'Debian 11.4.0 i386 n'
------------------------------------
Status of loaded boot image :
------------------------------------
Boot record : El Torito , MBR isohybrid cyl-align-on GPT APM
Boot catalog : '/isolinux/boot.cat'
Boot image : '/isolinux/isolinux.bin' , boot_info_table=on
Boot image : '/boot/grub/efi.img' , platform_id=0xEF
------------------------------------
Boot image settings for next commit:
------------------------------------
-boot_image any discard
-boot_image any bin_path=''
-boot_image any emul_type=no_emulation
-boot_image any platform_id=0x00
-boot_image any boot_info_table=off
-boot_image grub grub2_boot_info=off
-boot_image any load_size=2048
-boot_image any sel_crit=0000000000000000000000000000000000000000
-boot_image any id_string=00000000000000000000000000000000000000000000000000000000
-boot_image isolinux partition_entry=off
-boot_image any appended_part_as=mbr
-boot_image any system_area=''
-boot_image any partition_offset=0
-boot_image any partition_sec_hd=0
-boot_image any partition_hd_cyl=0
-boot_image any partition_cyl_align=auto
-boot_image grub partition_table=off
-boot_image any mbr_force_bootable=off
-boot_image any appended_part_as=mbr
-boot_image any part_like_isohybrid=off
-boot_image any iso_mbr_part_type=default
-boot_image any gpt_disk_guid=random
-boot_image any chrp_boot_part=off
-boot_image any prep_boot_part=''
-boot_image any efi_boot_part=''
-boot_image any hfsplus_serial=0000000000000000
-boot_image any hfsplus_block_size=0
-boot_image any apm_block_size=0
------------------------------------
USBスティックに記録しても、結果のISOイメージを起動可能にするほとんどの「魔法」は-boot_image isolinux system_area=...
。
それ以降は-boot_image any next
UEFIサポートに関連しており、使用する起動オプションによってはgenisoimage
気にしないことがあります。