Z C
2014-Jun-02 00:52 UTC
[syslinux] Is it possible to chainload isolinux.bin file from syslinux
I have a USB disk with syslinux files installed in /boot/syslinux, and the bootloader is installed into MBR or VBR I then extracted a *.iso file which uses syslinux as the bootloader, into root dir of the disk. The iso file contains a rescue OS or an OS installer. Now I got the directory /isolinux with files isolinux.bin and isolinux.cfg in this folder I can now boot into syslinux, but *what to do to boot/chainload the isolinux.bin file to launch the OS*? Note that just load the isolinux config file /isolinux/ioslinux.cfg (using "config" module) instead of chainloading entire isolinux is not what I want. Because the version of my syslinux (official compiled binary) and the isolinux (from another verdor) may be different and the isolinux may contain some 3rd party patches. So just load the config file will sometimes result in failure. My final purpose is to make a universal USB boot disk: It can boot any extracted iso as long as the iso file is made using isolinux. So perhaps the most elegant solution to this is chainload isolinux from syslinux. Thanks!
Ady
2014-Jun-02 06:49 UTC
[syslinux] Is it possible to chainload isolinux.bin file from syslinux
> I have a USB disk with syslinux files installed in /boot/syslinux, and the > bootloader is installed into MBR or VBR > > I then extracted a *.iso file which uses syslinux as the bootloader, into > root dir of the disk. The iso file contains a rescue OS or an OS installer. > Now I got the directory /isolinux with files isolinux.bin and isolinux.cfg > in this folder > > I can now boot into syslinux, but *what to do to boot/chainload the > isolinux.bin file to launch the OS*? > > Note that just load the isolinux config file /isolinux/ioslinux.cfg (using > "config" module) instead of chainloading entire isolinux is not what I > want. Because the version of my syslinux (official compiled binary) and the > isolinux (from another verdor) may be different and the isolinux may > contain some 3rd party patches. So just load the config file will sometimes > result in failure. > > My final purpose is to make a universal USB boot disk: It can boot any > extracted iso as long as the iso file is made using isolinux. > > So perhaps the most elegant solution to this is chainload isolinux from > syslinux. >When you say "_may_ contain some 3rd party patches", do you actually know there are 3rd party patches there? You need to match the version of the c32 modules with the version of the bootloader. If the particular ISO image includes a Syslinux installer and all the relevant c32 modules for the same version, you could use those for your USB drive. Unless there are specific reasons (such as a special c32 module that is not publicly available, for instance), using upstream official binaries would be (generally speaking) recommended for merging the content of multiple ISO images into one "multiboot" USB drive. There are other options, such as loading the ISO image with MEMDISK or using a different bootloader. Each alternative has its own pros and cons. Regards, Ady.
Gene Cumm
2014-Jun-02 10:40 UTC
[syslinux] Is it possible to chainload isolinux.bin file from syslinux
On Mon, Jun 2, 2014 at 2:49 AM, Ady <ady-sf at hotmail.com> wrote:> On Sun, Jun 1, 2014 at 8:52 PM, Z C <zcnnbb at gmail.com> wrote: >> I have a USB disk with syslinux files installed in /boot/syslinux, and the >> bootloader is installed into MBR or VBR >> >> I then extracted a *.iso file which uses syslinux as the bootloader, into >> root dir of the disk. The iso file contains a rescue OS or an OS installer. >> Now I got the directory /isolinux with files isolinux.bin and isolinux.cfg >> in this folder >> >> I can now boot into syslinux, but *what to do to boot/chainload the >> isolinux.bin file to launch the OS*? >> >> Note that just load the isolinux config file /isolinux/ioslinux.cfg (using >> "config" module) instead of chainloading entire isolinux is not what I >> want. Because the version of my syslinux (official compiled binary) and the >> isolinux (from another verdor) may be different and the isolinux may >> contain some 3rd party patches. So just load the config file will sometimes >> result in failure. >> >> My final purpose is to make a universal USB boot disk: It can boot any >> extracted iso as long as the iso file is made using isolinux. >> >> So perhaps the most elegant solution to this is chainload isolinux from >> syslinux. >> > > When you say "_may_ contain some 3rd party patches", do you actually > know there are 3rd party patches there?Along these lines, I know for a fact that VMware's ESXi installer ISOs ship with a patched mboot.c32 however I've loaded them from the matching SYSLINUX version with no issues.t> You need to match the version of the c32 modules with the version of > the bootloader. If the particular ISO image includes a Syslinux > installer and all the relevant c32 modules for the same version, you > could use those for your USB drive. > > Unless there are specific reasons (such as a special c32 module that > is not publicly available, for instance), using upstream official > binaries would be (generally speaking) recommended for merging the > content of multiple ISO images into one "multiboot" USB drive. > > There are other options, such as loading the ISO image with MEMDISK > or using a different bootloader. Each alternative has its own pros > and cons.Short answer: no, this is impossible. There will be no one clear answer for your goals. 1) ISOLINUX only comprehends ISO9660 file systems. SYSLINUX does not comprehend ISO9660 file systems. 2) After the initial boot payload is launched (ie a Linux kernel and 0 or more initrds ), many OSs won't hunt for their media on a USB stick/MEMDISK since they expect they were booted from an ISO. Note, there are select exceptions and some can be retrained. Long answer: Getting around point #1 can be done by having every single version of SYSLINUX installed to unique directories (saving the VBR before installing the next) and using some logic, likely a COM32 module you write, to determine which version to chainload to. Point #2 will exist for MEMDISK and ISO extraction. The main issues with arbitrary MEMDISK usage are related to http://www.syslinux.org/wiki/index.php/MEMDISK#INT_13h_access:_Not_all_images_will_complete_the_boot_process.21 With ISO extraction, the data is often reachable but there isn't always logic to fine/attempt to use it. -- -Gene
Possibly Parallel Threads
- Is it possible to chainload isolinux.bin file from syslinux
- Isolinux bug: CD bootsector support broken
- Patches for chain.c32: Error message is more detailed and chainload another isolinux.bin
- OFF TOPIC: Chainloading CD-ROM boot after ISOLINUX + MEMDISK.
- isolinux + cloop