Jump to content











Photo
- - - - -

MakeIso


  • Please log in to reply
113 replies to this topic

#101 erwan.l

erwan.l

    Platinum Member

  • Developer
  • 3041 posts
  • Location:Nantes - France
  •  
    France

Posted 13 January 2018 - 01:00 PM

@erwan.l: There are like a gazillion softwares out there that can create an ISO. So I really have to ask:

 

Why another? What makes your program unique/special? What does it do better than the rest?

 

I just don't see a need in flooding the software market with yet another whatever that does pretty much the same thing that others already do perfectly fine. Unless, of course, there is something better about yours.

 

Just asking.....

 

My criterias :

-be freeware

-offers a GUI (for users who dont want to fiddle with/remember lengthy/complex command line)

-supports as many windows version as possible

-supports multiboot

-uses windows builtin features (i.e does not require a 3rd party library or executable)

 

I may be wrong but I am not sure there are actually gazillions of softwares matching these criterias.

A few may be.

You would be surprised actually to find out that there are very few "friendly" freewares that support multiboot.

 

Why another?

-To bring some interesting discussion onto reboot.pro (like the one around isolinux) and possibly customize it to this community's need (by linking it to other ongoing projects/discussions)

-for my own selfish fun

 

What does it better than the rest?

This is not how I approach life :)

 

As for flooding the software market?

This is only me releasing a freeware on reboot.pro : I dont advertise it anywhere else as I dont have any claims.

 

By the end, all we do, all we say, may have already been done or said somewhere else.

Does it mean we shall not say/do it again for the sake of possibly bring some more interesting discussions?

I believe this is what reboot.pro is about : "freely explore" :)


  • Tokener likes this

#102 ady

ady

    Frequent Member

  • Advanced user
  • 165 posts

Posted 13 January 2018 - 03:13 PM

@Erwan and Wonko,

Syslinux.efi does not understand ISO9660 (not at the moment, at least; it might never get there).


At the moment, the bootloaders of the Syslinux family know how to access only their own volumes. There has been some initial development towards having access to multiple volumes (and multiple disks), but not _that_ much.


As I said, booting optical media in UEFI mode by means of syslinux.efi could be done, by cheating a "bit".

First, create either a floppy or hard disk image containing the _default_ path(s) for UEFI applications. The respective syslinux.efi files and their respective modules would populate such image. This procedure is equivalent/similar to building such images for/with GRUB2 (or any other UEFI application) for UEFI-booting optical media.

The UEFI specs establish that the bootloader should use the El Torito "no emulation" mode (eventhough the boot catalog is pointing to a floppy or hard disk image containing a UEFI application in the standard default path).

Now, here is the cheating "bit": instead of following the UEFI specs by selecting "El Torito no emulation" mode for UEFI boot, you need to choose one of the floppy or HDD emulation modes (depending on the type of image you built).

Although this "cheat" would achieve the goal of booting the optical media in UEFI mode (that is, if the specific UEFI implementation doesn't care/complain about using the "emulation" mode), syslinux.efi is capable of accessing the boot volume only (i.e. either the floppy image or the partition within the hard disk image, not the ISO9660 filesystem they "live in").

The case I am describing here would/could be one potential excuse for ISO-building tools to accept non-typical "superfloppies" as images for El Torito "floppy emulation" modes (as opposed to strictly accepting 1.2/1.44/2.88 floppy images, whereas other sizes would be rejected, or even crash with).

IMHO, there are still too many limitations for syslinux.efi, but, if someone wants to use it for booting optical media in UEFI mode, it is not completely impossible.

Please note: The procedure I just described is for optical media and/or ISO9660; please do not confuse this procedure, nor syslinux.efi's capabilities, with _extracting_ the _content_ of an ISO image onto a different storage device (such as USB disks/drives) that uses FAT.



#103 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 13 January 2018 - 05:53 PM

@Ady

Thanks for the "cheat" mode :).

 

I believe however that even the largest possible superfloppy wouldn't be enough to boot any recent Windows, but maybe it could contain *something* else that could act as "bridge", otherwise the "Hard Disk emulation" is the only possibility.

 

:duff:

Wonko



#104 Tokener

Tokener

    Frequent Member

  • Developer
  • 378 posts

Posted 26 May 2018 - 08:51 AM

Dear Erwan,

thank you for sharing MakeIso with the community.

 

I created successfully an UEFI PE5 disc with your tool, which booted well.

 

But I had no success in creating a PE1 (LiveXP) disc (BOOTSECT.BIN as bootloader).

Tried all different filesystems.

When booting the VirtualBox returns:

CDBOOT: couldn´t find NTLDR

Error 9660.jpg

I´m using a working LiveXP disc as source, I copy the content to a folder on disk then use MakeISO.

CloneDisk won´t create the disc either.

 

had success with mkisofs

mkisofs.exe -volid LiveXP-180526 -iso-level 4 -duplicates-once -force-uppercase -no-emul-boot -boot-load-size 4  -hide boot.catalog -b BOOTSECT.BIN -o "B:\LifeXP2.iso" "B:\LiveXP170"

 

Because you added support for xpSp2 by build 1.0.0.9, I thought this should be possible.

What am I doing wrong?

 

Thank you in advance.

 

Regards   T.



#105 erwan.l

erwan.l

    Platinum Member

  • Developer
  • 3041 posts
  • Location:Nantes - France
  •  
    France

Posted 26 May 2018 - 11:42 AM

Dear Erwan,

thank you for sharing MakeIso with the community.

 

I created successfully an UEFI PE5 disc with your tool, which booted well.

 

But I had no success in creating a PE1 (LiveXP) disc (BOOTSECT.BIN as bootloader).

Tried all different filesystems.

When booting the VirtualBox returns:

attachicon.gifError 9660.jpg

I´m using a working LiveXP disc as source, I copy the content to a folder on disk then use MakeISO.

CloneDisk won´t create the disc either.

 

had success with mkisofs

 

Because you added support for xpSp2 by build 1.0.0.9, I thought this should be possible.

What am I doing wrong?

 

Thank you in advance.

 

Regards   T.

 

Hi ReTokener,

 

I may know why it does not work for your build.

Because of a limitation with IMAPI, i have to manually deal with some of the ISO level features, in your case the ";" char.

 

After the iso is generated I currently execute the below code.

 

I believe adding an extra line for bootsect.bin and NTDLR would do the trick.

 

Confirm this theory and I'll update makeiso.

if (cmbfs.Text <>'UDF') and (pos('etfsboot.com',lowercase(txtbootfile_x86.Text))>0) then
    begin
    if patch_iso9660_root_directory(txtdestination.Text,#$0A'BOOTMGR.;1',#$09'BOOTMGR;1'#0)=true
        then logfile('patch_iso9660_root_directory OK')
        else logfile('patch_iso9660_root_directory NOT OK');

Regards,

Erwan



#106 Tokener

Tokener

    Frequent Member

  • Developer
  • 378 posts

Posted 26 May 2018 - 12:24 PM

Hi Erwan,

thanks for the fast response.

 

Confirm this theory and I'll update makeiso

I´m sorry, but this is beyond my skills.

 

Regards   T.



#107 erwan.l

erwan.l

    Platinum Member

  • Developer
  • 3041 posts
  • Location:Nantes - France
  •  
    France

Posted 26 May 2018 - 03:15 PM

Hi Erwan,

thanks for the fast response.

 

I´m sorry, but this is beyond my skills.

 

Regards   T.

 

No pb.

I have uploaded a new version (1.0.0.10).

It is a "blind" test : let me know how it goes.

It shall be noted that you need to go for ISO9660.

 

What it does is if it detects bootsect.bin as the bootsector file, then it "patches" the ISO9660 table : 'NTLDR.;1' to 'NTLDR;1 (note the '.' removed).

 

Regards,

Erwan

 

Added code :

if (cmbfs.Text <>'UDF') and (pos('bootsect.bin',lowercase(txtbootfile_x86.Text))>0) then
    begin
    if patch_iso9660_root_directory(txtdestination.Text,#$08'NTLDR.;1',#$07'NTLDR;1'#0)=true
        then logfile('patch_iso9660_root_directory OK')
        else logfile('patch_iso9660_root_directory NOT OK');
    end;



#108 Tokener

Tokener

    Frequent Member

  • Developer
  • 378 posts

Posted 26 May 2018 - 03:50 PM

Dear Erwan,

still error.

Error_3.jpg

sorry for the inconvenience.

 

Regards   T.

 

 

PS.

just a thought:

maybe   "lowercase" in your code does not match for selected BOOTSECT.BIN?



#109 erwan.l

erwan.l

    Platinum Member

  • Developer
  • 3041 posts
  • Location:Nantes - France
  •  
    France

Posted 26 May 2018 - 04:09 PM

Dear Erwan,

still error.

attachicon.gifError_3.jpg

sorry for the inconvenience.

 

Regards   T.

 

 

PS.

just a thought:

maybe   "lowercase" in your code does not match for selected BOOTSECT.BIN?

 

Would you be able to share the iso (or the first few MB's if too big once zipped) ?



#110 Tokener

Tokener

    Frequent Member

  • Developer
  • 378 posts

Posted 26 May 2018 - 04:24 PM

dear erwan,


 

the first few MB's

 

if you tell me how to slice the ISO, I will try to do so and send you the first part.

or will some lines of the HEX code  help you?

 

Regards   T.



#111 erwan.l

erwan.l

    Platinum Member

  • Developer
  • 3041 posts
  • Location:Nantes - France
  •  
    France

Posted 27 May 2018 - 10:36 AM

There are several ways to do it.

 

I can recommend HxD (https://mh-nexus.de/en/hxd/).

Select a block, start at 0, length=33554432 (32mb), copy, paste into a new file, save to iso.tmp.

Zip and share it (mail, dropbox, etc).

 

Regards,

Erwan



#112 cdob

cdob

    Gold Member

  • Expert
  • 1469 posts

Posted 27 May 2018 - 03:11 PM

I believe adding an extra line for bootsect.bin and NTDLR would do the trick.

.
A default bootsect.bin (technically: there is no ISO9660 file name bootsect.bin used at Eltorito Boot) does load ISO9660 files
\I386\BOOTFIX.BIN
\I386\SETUPLDR.BIN

The file ntldr is not used at boot.

A custom patched bootsect.bin may use another directory or file names.
LiveXP uses the default names.

#113 erwan.l

erwan.l

    Platinum Member

  • Developer
  • 3041 posts
  • Location:Nantes - France
  •  
    France

Posted 28 May 2018 - 05:51 PM

.
A default bootsect.bin (technically: there is no ISO9660 file name bootsect.bin used at Eltorito Boot) does load ISO9660 files
\I386\BOOTFIX.BIN
\I386\SETUPLDR.BIN

The file ntldr is not used at boot.

A custom patched bootsect.bin may use another directory or file names.
LiveXP uses the default names.

 

Hi Cdob,

 

I should have read your post more carefully.

I insisted on "correcting" the iso image with NTDLR.;1 to NTDLR;1 when the actual trick was to correct SETUPLDR.BIN;1 to SETUPLDR.BIN .

 

CDBOOT does not like ISO9600 file versions (";1" suffix).

 

IMAPI is handy because natively there on any windows since XPSP2 but is limited in many ways specially with ISO9660.

 

Regards,

Erwan



#114 Tokener

Tokener

    Frequent Member

  • Developer
  • 378 posts

Posted 05 June 2018 - 09:01 AM

Dear Erwan,

thanks for fast maintaining the program.

Available version 1.0.0.9 works fine.

 

Regards   T.






1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users