Jump to content











Photo
- - - - -

isohybrid from syslinux and ISO WinXP?


  • Please log in to reply
7 replies to this topic

#1 reboot12

reboot12

    Frequent Member

  • Advanced user
  • 287 posts
  • Interests:WinXP, Debian, OpenWrt, gPXE, iPXE, BIOS, UEFI, Coreboot, MS VirtualPC, VMware
  •  
    Poland

Posted 27 September 2020 - 08:47 AM

With the isohybrid tool, you can create a hybrid ISO with Linux that adds a MBR of 512 bytes to the very beginning of the image. I tried to do this with the xp.iso image but the isolinux.bin loader is not there:

isohybrid xp.iso

isohybrid: xp.iso: boot loader does not have an isolinux.bin hybrid signature. Note that isolinux-debug.bin does not support hybrid booting

Is there any way to make a hybrid ISO with xp.iso image so that you can write to a USB flash drive using the dd command?:

dd if=xp.iso of=/dev/sdb


#2 Wonko the Sane

Wonko the Sane

    The Finder

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

Posted 27 September 2020 - 09:45 AM

Maybe you can use another loader instead of isolinux.

 

If I get your question right, it is:

How can I modify a "standard" XP .iso, ONLY by writing something to its very first sector(s) so that it remain a bootable .iso when burned to CD/DVD BUT that it can be dd-ed to a USB tick and still boot "normally"?

 

Is that the actual question? :unsure:

 

A normal CD/.iso has a number of unused (2048 bytes each) sectors  at the beginning (LBA 0-15 that makes 16*2048 bytes=32768 bytes).

 

Those (roughly) are the same amount of a "head" on hd-like media (LBA 0-62 that make 63*512=32256 bytes).

 

So you need a "self-standing" loader that can fit in that space.

 

The only one I know would be Tinybit's WEE, but seemingly it doesn't support .iso/CD-like devices in the version that would fit in that space:
http://reboot.pro/to...t-a-filesystem/

 

If you want to experiment with that approach or - should it work :dubbio: - the simpler UMBR, you still need *somewhere* in the CD/ISO a grldr, so the .iso won't be anymore "untouched".

 

Only as a generic reference (won't work in this case) JFYI:

http://reboot.pro/to...os-isohybrided/

 

:duff:

Wonko



#3 Wonko the Sane

Wonko the Sane

    The Finder

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

Posted 28 September 2020 - 08:40 AM

Re-thinking about the matter, it would be possible to add to the .iso a "footer" consisting of (say) a floppy image containing grub4dos and (if needed) Firadisk or Winvblock.

The MBR (written to the first sector of the .iso) could be a "conventional" one or the syslinux one (plain or modified) or the grub4dos one with the "floppy tail" set as active in the partition table.

 

When dd-ed to a USB stick it should work just fine.

I wonder if the modified .iso itself would be burned fine to CD/DVD (since it will have an excess size when compared to the CDFS data) but I don't see a reason why it shouldn't. :unsure: after all a simple burning tool like -say - imgburn should behave as a form of dd for oprical recordable media. :dubbio:

 

At the end of the day the "footer floppy" might become an F6  floppy (which is likely to be needed anyway for SATA drivers) and we could fall in either of these (of which the second, in RAM, should be much easier and nowadays *any* machine will have enough RAM):
https://msfn.org/boa...rom-a-iso-file/

or
https://msfn.org/boa...aded-iso-image/

(installing XP is tricky)

 

:duff:

Wonko



#4 reboot12

reboot12

    Frequent Member

  • Advanced user
  • 287 posts
  • Interests:WinXP, Debian, OpenWrt, gPXE, iPXE, BIOS, UEFI, Coreboot, MS VirtualPC, VMware
  •  
    Poland

Posted 28 September 2020 - 05:00 PM

Only as a generic reference (won't work in this case) JFYI:

http://reboot.pro/to...os-isohybrided/

Why won't it work? After all, a regular ISO from Debian 5 or WinXP has an ISO9660 filesystem and no partitions.

 

I understand that the isohybrid tool adds MBR 512 bytes to the beginning of the ISO image, but how does it work that the bios sees files on the partition while the filesystem is ISO9660 ????



#5 Wonko the Sane

Wonko the Sane

    The Finder

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

Posted 28 September 2020 - 05:51 PM

Why won't it work? After all, a regular ISO from Debian 5 or WinXP has an ISO9660 filesystem and no partitions.

 

I understand that the isohybrid tool adds MBR 512 bytes to the beginning of the ISO image, but how does it work that the bios sees files on the partition while the filesystem is ISO9660 ????

No.

 

The Isohybrid tool does NOT "add" 512 bytes it writes in the existing first 512 bytes (that are normally 00's and are unused like the following 32256 bytes on optical media) some MBR-like  code and a partition table.

 

The whole point is that the same file work BOTH as a .iso AND as a RAW image that you can dd to a hd-like device or "burn" to optical media without any changes to it:

https://wiki.syslinu...title=Isohybrid

 

Then Linux (but not Windows) can access just fine a "partition" (more properly a volume) CDFS formatted on a hd-like device such as a USB stick, this is the essence of the cdob's idea with fake partition in the referenced thread:

http://reboot.pro/to...brided/?p=88531

 

 

Additionally an XP install .iso (to actually work, besides "booting") needs additional provisions besides the BIOS mapping of the CDFS to a virtual CD drive, as as soon as the HAL kicks in the virtually mapped device will be lost if not "hooked" by a suitable driver, such as Firadisk or Winvblock (tested in the given threads on MSFN) or possibly SVbus (untested in this scenario AFAIK).

 

:duff:

Wonko



#6 reboot12

reboot12

    Frequent Member

  • Advanced user
  • 287 posts
  • Interests:WinXP, Debian, OpenWrt, gPXE, iPXE, BIOS, UEFI, Coreboot, MS VirtualPC, VMware
  •  
    Poland

Posted 28 September 2020 - 06:48 PM

I already know that isohybrid "writes" (no "add") 512 at the beginning of ISO. I already know that hybrid iso work BOTH as a .iso AND as a RAW image that you can dd to a hd-like device or "burn" to optical media without any changes to it.
 

Then Linux (but not Windows) can access just fine a "partition" (more properly a volume) CDFS formatted on a hd-like device such as a USB stick, this is the essence of the cdob's idea with fake partition in the referenced thread:
http://reboot.pro/to...brided/?p=88531

Additionally an XP install .iso (to actually work, besides "booting") needs additional provisions besides the BIOS mapping of the CDFS to a virtual CD drive, as as soon as the HAL kicks in the virtually mapped device will be lost if not "hooked" by a suitable driver, such as Firadisk or Winvblock (tested in the given threads on MSFN) or possibly SVbu (untested in this scenario AFAIK).

In the xp.iso image, I have WinVBlock integrated. Maybe there is a CDFS (USB) driver for WinXP that also needs to be integrated into the ISO or/and need also add USB driver to [BootBusExtenders.Load] section in TXTSETUP.SIF file ???

How to install and run a FULL Windows XP from a USB drive 12 Apr 2008



#7 cdob

cdob

    Gold Member

  • Expert
  • 1469 posts

Posted 28 September 2020 - 07:42 PM

In the xp.iso image, I have WinVBlock integrated. Maybe there is a CDFS (USB) driver for WinXP that also needs to be integrated into the ISO or/and need also add USB driver to [BootBusExtenders.Load] section in TXTSETUP.SIF file ???

WinVBlock, Imdisk are drivers at device level, before file systems. 

.
There is cdfs.sys included by default. 

[CdRomDrivers.Load]
cdfs = cdfs.sys
However this default udfs.sys  seems to support CD/DVD devices like devices only, no (USB) mass storage devices.
There is a Matsushita DVD-RAM driver meiudfs.sys. As far as I rememver, not tested at (USB)  mass storage devices.
There is a BartPE plugin using registry ControlSet001\Services\meiudf. No idea what happens, if meiudfs is used at txtsetup.sif.
Out of memory from 2008, maybe false memory after twelve years.
 
And there is ReactOS, there should be a ufs file system driver too. Could read USB mass storage devices.
 
Edited:
There is no default udfs.sys at XP, there is cdfs.sys (ISO9660, Joliet file system) at XP only.
There are default udfs.sys at Vista and later. May support (USB) mass storage devices, may work at XP or fail.

Edited by cdob, 28 September 2020 - 07:54 PM.


#8 Wonko the Sane

Wonko the Sane

    The Finder

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

Posted 29 September 2020 - 07:29 AM

In the xp.iso image, I have WinVBlock integrated

Then it is not a "standard" XP .iso, you built it and created it, so there is no reason why you cannot build a new one adding grub4dos INSIDE the .iso, boot from it and from then on you may adapt the cdob's methods on the given MSFN threads. 

Still having it in an added floppy image appended to the end of the .iso might remain a better idea in the sense that it will be easier to experiment with.

Once the extent is mapped to a (virtual) CD-like device is not different from a .iso file.

 

BTW (maybe useful, maybe not, and in case only - I believe - for the GUI part or for the experimenting) IMDISK can also map a given extent on a device, see:

http://reboot.pro/to...image/?p=192170

 

:duff:

Wonko






1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users