isoからブートローダを抽出する方法は?

isoからブートローダを抽出する方法は?

プロジェクトを見つけました。GitHubシミュレーションWindows XPOS、質問がありますその他

抽出して内容を変えてISOを作り直したい

問題は抽出できないということですブートローダーだから私が使うときクム、システムが起動しません。

だから..を使ってブートローダを抽出できると思っていましたが、dd不可能に見えます。

isoinfo -d -i /mnt/sda2/windows/vxp/VirtualXP.iso
Setting input-charset to 'UTF-8' from locale.
CD-ROM is in ISO 9660 format
System id: 
Volume id: VirtualXP
Volume set id: 20210310_1500                                                                                                                  
Publisher id: MagicISO v5.2 COPYRIGHT (C) 2001-2006 MagicISO, Inc.
Data preparer id: MagicISO v5.2 COPYRIGHT (C) 2001-2006 MagicISO, Inc.
Application id: 
Copyright File id:                                     
Abstract File id:                                     
Bibliographic File id:                                     
Volume set size is: 0
Volume set sequence number is: 1
Logical block size is: 2048
Volume size is: 22250
El Torito VD version 1 found, boot catalog is in sector 22248

Joliet with UCS level 3 found.
No SUSP/Rock Ridge present
Eltorito validation header:
    Hid 1
    Arch 0 (x86)
    ID 'MagicISO Boot Record'
    Cksum 16 E7 OK
    Key 55 AA
    Eltorito defaultboot header:
        Bootid 88 (bootable)
        Boot media 0 (No Emulation Boot)
        Load segment 0
        Sys type 6
        Nsect 4
        Bootoff 56E9 22249

再生成すると、次のように見えますが、シミュレータでは機能しません。

isoinfo -d -i /mnt/sda2/windows/vxp/vxp0.iso
Setting input-charset to 'UTF-8' from locale.
CD-ROM is in ISO 9660 format
System id: LINUX
Volume id: VXP0
Volume set id: 
Publisher id: 
Data preparer id: 
Application id: MKISOFS ISO9660/HFS/UDF FILESYSTEM BUILDER & CDRECORD CD/DVD/BluRay CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING
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: 22935
El Torito VD version 1 found, boot catalog is in sector 79
CD-ROM uses ISO 9660:1999 relaxed format

Joliet with UCS level 3 found.
SUSP signatures version 1 found
Rock Ridge signatures version 1 found
Rock Ridge id 'RRIP_1991A'
Eltorito validation header:
    Hid 1
    Arch 0 (x86)
    ID ''
    Cksum AA 55 OK
    Key 55 AA
    Eltorito defaultboot header:
        Bootid 88 (bootable)
        Boot media 0 (No Emulation Boot)
        Load segment 0
        Sys type 0
        Nsect 4
        Bootoff 50 80

22249成功せずにセクター番号を試してみました。

dd if="$1" of=bootloader.bin bs=1024 skip=$sector count=1024

ブートローダの名前を次のように変更しましたgrldr(これを行うことで名前だけを変更したと思いました)。現在isoを生成するコマンドは、次のコマンドを使用します。

mkisofs -V VXP0 -J -joliet-long -iso-level 4 -D -R -o vxp0.iso -b grldr -c boot/boot.catalog -no-emul-boot -boot-load-size 4 -boot-info-table vxp0

ベストアンサー1

ISOファイルからブートローダを抽出できます。geteltorito含まれているgenisoimage:

geteltorito -o bootloader VirtualXP.iso

マンページの説明では:

   geteltorito  is a Perl script which extracts the initial/default El Torito boot image from
   a CD if one exists. It will not extract any of other boot images that are allowed  by  the
   El Torito standard.

おすすめ記事