MAKE A MULTI LIVE DISTRO DVD

Benny
2006-12-07
2013-02-08
  • Benny
    Benny
    2006-12-07

    Hi Etienne,

    My aim is to create a "swiss knife" DVD containing several distribution Linux+WIN in one go. (i.e Knoppix, puppy, backtrack, BartPE, Ultimate Boot.... anything I like)

    For several weeks I studied the problem and gone around on forums digging into a rational solution.

    The ones I found around are all based on tricks and manually modified links for the several distributions. Very difficult to mantain each time a new release comes out.

    Gujin made me dream but I could not finish my project. I spent alot of time on it and I hope you'd dedicate at least 1% the time I dedicated to your "son".

    Here is were I arrived:

    1) I created the first .iso bootable image using boot144.bin and I burned it in multisession mode with NERO7

    2) I mounted "as they are" my iso images on as virtual CD (using deamon-tools under windows, or also using mount -o loop under linux)

    3) I burned the DVD with NERO appending the mounted disk as a new session

    4) goto 2) (another ISO)

    5) Turn on the computer: GREAT !!! Gujin recognized ALL my ISOs (sessions) and proposed me a few opportunities to boot (I was also clever burning each session under a meaninful disk label)

    6) made a choice, the boot is aborted because there is no "SPACE" ....WHY ???

    I am so close to the solution that I am getting mad. Please give me a clue to finish...

    Sincerely
    Benny

    Additional questions: is it true Gujin recognizes ISOs files so I can skip pass 2 ?

     
    • Benny
      Benny
      2006-12-10

      Episode 2
      I spent some more time on this matter trying to make it easy (no DVD, no Multisession for the moment) since each CD erase, burn and reboot takes  quite long (I don't want to use emulators which may misslead)

      I started with a very little distribution (Puppy linux) to miminize the burning time

      I extracted the ISO in my "dvdroot" directory then I built the iso
      mkisofs -untranslated-filenames -no-emul-boot -boot-load-size 4 -b boot.bcd -o provabenny.iso  /media/USB1/iso/dvdroot

      finally burned with k3b

      fire !

      Gujin saw the vmlinuz in the top dir, tried to load the OS, but it did not know where to mount /root
      most probably it was described in isolinux.cfg see below

      default 1
      DISPLAY BOOT.MSG
      prompt 1
      label 1
      kernel vmlinuz
      append root=/dev/ram0 initrd=image.gz  PFILE=pup001-none-262144
      label 2
      kernel vmlinuz
      append root=/dev/ram0 initrd=image.gz  PFILE=no
      label 3
      kernel vmlinuz
      append root=/dev/ram0 initrd=image.gz acpi=off  PFILE=pup001-none-262144
      label 4
      kernel vmlinuz
      append root=/dev/ram0 initrd=image.gz acpi=off  PFILE=no
      label 5
      kernel vmlinuz
      append root=/dev/ram0 initrd=image.gz  PFILE=cd
      timeout 100

      So I decided to change OS.. unsuccess... many knoppix based LIVE CD don't use the boot dir but isolinux or even isolinux/boot. Each one according to NO STANDARD schema....

      I made a few more attempts trying to change the bootdir with instboot but clearly there is too much customization to do so I almost decided to abandon my project.

      I believe infact that the winning way will be:

      Burn a bootloader (Gujin?) + 6 or 7 or more .iso distributions and that's it. such a bootloader shall only dig into each single .iso file (and probably emulate iso9660 CD) and pass the control to the native bootloaders.

      Even magazines editors would use such a system to publish the most recent LiveCD versions.

      Any suggestion to proceed will be welcome
      Marco

       
    •   Hi Benny/Marco,

        Yes, as a first step, it is better to try to boot the El-torito of each session/iso
      image, you can hide the vmlinuz/initrd selection with instboot while recreating
      boot.bcd (do not search for kernels neither in root nor in /boot directory).

      I you want to boot the vmlinuz/initrd included, you will need the complete command
      line, like "root=/dev/ram0 initrd=image.gz PFILE=pup001-none-262144" and with Gujin
      you cannot simply have a different command line for each autodetected kernel (the
      way is to add a comment in the GZIP file created during the kernel compilation,
      changing the Makefile of Linux adding a line after it compresses the vmlinux file
      and before it adds the real mode header).

        Usually, people are using (to make the DVD bootable under Gujin) the no-emulation
      system on newer machines (less than 5 years old) but some older PC will only accept
      floppy-emulation booting. Some newer PC no more accept floppy-emulation booting.
      You may or may not want to add some files to this first session of the DVD you are
      booting - that is depending how you want to manage everything.

        Using one session per iso will still bring problems when the distribution tries to
      load its own root, and you can reach a point where a distribution boots but loads
      the last session of the CD/DVD to load its own filesystem, instead of loading for
      instance session nuber 2, and you get the kernel of puppy with the root filesystem
      of Knoppix which display strange error messages. So the "-o session" parameter of
      mount to change in each iso.
        There is maybe a solution with DVD partitions, like what I did with Damn Small Linux
      on a hard disk partition, just copying it by "cat /dev/cdrom > /dev/hda8" it works
      without problem and quite quickly. Maybe there is some simple tricks with mount
      -o offset wich will work. I do not know the simplest solution.

      Etienne.

       
      • Benny
        Benny
        2006-12-14

        Thanks again for following this matter.
        I was in Spain a few days for work so I could not keep playing on this matter. I'll follow your suggestions, maybe I'll find sometime along the week end.
        I'll keep you posted

        Benny (Marco)

         
    • Benny
      Benny
      2007-01-22

      Here I am again...

      I discovered that my USB keys could help me to avoid "burn" time for CDs (emulators are not real life in this case).

      So, it took me a while to make them boot. (Usually USB keys are not designed to boot and you have to use an HP utility to "ride" them)

      So, now I made this basic basic approach:

      STEP 1
      I wish to create one USB key booting with gujin and DSL-2.4.iso on board, that's it

      So far I managed only to make the key booting with gujin (success !!) and recognize the startup partition on my hard disk.

      I create it after processing the key with the HP utility (under winXP) and then just issuing the instboot command towards boot.bin to /dev/media/myUSB.

      Then I copied on the USBdrive DSL-2.4.iso and rebooted.

      The problem: boot.bin does not recognize the .iso structure.

      Please just give me a clue.

      STEP 2 ... still away...

      Benny

       
    • Hello Benny,

      For me, under Linux, that command makes a USB key bootable (if the key is /dev/sdg and NOT mounted):
      ./instboot boot.bin /dev/sdg --disk=BIOS:0x00 --geometry=/dev/sdg
      It will erase the content so save files to a temporary directory before.

      To demo a multi-session CDROM system, just typing:
      make CDall
      in the source file directory (or doing a cut&paste of the Makefile lines) works as expected.

      The commands are:
      rm -rf /tmp/cdrom
      mkdir /tmp/cdrom
      cdrecord blank=fast -s
      ./instboot boot.bin /tmp/cdrom/boot.120 --full
      mkdir /tmp/cdrom/boot
      cp /boot/* /tmp/cdrom/boot
      mkisofs -untranslated-filenames -b boot.120 /tmp/cdrom | cdrecord -tao -multi gracetime=0 -s -
      rm -f /tmp/cdrom/boot.120
      rm -rf /tmp/cdrom/boot
      ./instboot boot.bin /tmp/cdrom/boot.144 --full
      mkisofs -untranslated-filenames -b boot.144 /tmp/cdrom | cdrecord -tao -multi gracetime=0 -s -
      rm -f /tmp/cdrom/boot.144
      ./instboot boot.bin /tmp/cdrom/boot.288 --full
      mkisofs -untranslated-filenames -b boot.288 /tmp/cdrom | cdrecord -tao -multi gracetime=0 -s -
      rm -f /tmp/cdrom/boot.288
      ./instboot boot.bin /tmp/cdrom/cd16Mb --full -d=BIOS:0x80 \     --geometry=32193,63,16,63,512,32256,0 --mbr-device=/tmp/cdrom/cd16Mb
      mkisofs -untranslated-filenames -hard-disk-boot -b cd16Mb /tmp/cdrom | cdrecord -tao -multi gracetime=0 -s -
      rm -f /tmp/cdrom/cd16Mb
      ./instboot boot.bin /tmp/cdrom/boot.bcd
      mkisofs -untranslated-filenames -no-emul-boot -boot-load-size 4 -b boot.bcd /tmp/cdrom | cdrecord -tao racetime=0 -s -
      rm -rf /tmp/cdrom

      So maybe the solution is to boot Linux (DSL-2.4 or knoppix should work) and just do those commands.
      Note that I bought a new DVD drive not long ago, and it no more support sessions.

        Etienne.

       
      • Benny
        Benny
        2007-01-27

        Saturday morning... got sometime.

        I try to follow your instructions step by step:

        Summary: USB Drive (512MB) successfully issued ./instboot, but booting from the USB drive BIOS dislikes and messages "disk error"

        I managed to make this step working in another way although: under WinXP I formatted my USB Drive with a USB formatter (it looks like it is an HP utility to modify the geometries of an USB drive an make it bootable)
        the following ./instboot boot.bin /mnt/sda1 worked properly and gujin booted.

        Next Step I copied my iso file to the USB drive (DSL-2.4.iso) and fired again. Unfortunately no additional booting choices were added by Gujin menu. (As the .iso was not read) I suspect I should use a different boot.bin file.

        Second experiment: make CDall: a torrent of errors and make aborted. I am using Ubuntu Edgy with updated system ...

        I'd proceed with simple steps now. The next success I want to achieve is booting DSL (or any other .iso file fitting into a USB pen) then I'll proceed onward.

        I read around something similar might be achieved with grub4dos or grub2  but I will not try those solutions. the former because it will not work on a CD DVD (which is my goal), the latter because not released yet. So let's processd with gujin...

        Thanks alot for your patience, if you rekon I am spamming your forum please let's continue with PM

        Marco/Benny

         
        • Hello Benny,

          Sunday, just relased a new Gujin, v1.7...

          > Summary: USB Drive (512MB) successfully issued ./instboot, but booting from the USB drive
          > BIOS dislikes and messages "disk error"

          So you have a BIOS I do not know.
          I think you will have success with Gujin v1.7 by doing:
          ./instboot boot.bin /dev/sda --disk=BIOS:0x80,auto --cmdline="" --mbr-device=/dev/sda \    --partition_index=4 --read_retry --usb_hdd
          because your BIOS seems to need a partition table.
          The two parameters "--partition_index=4 --read_retry" may not be needed.
          In extreme case one can try "--single_sector_load" and/or "--head=16 --sectorpertrack=32"
          It should do the same as the HP utility I also have, you method (doing instboot in the
          partition HP has created) is OK too - I just would like to know if --usb_hdd works.

          > Next Step I copied my iso file to the USB drive (DSL-2.4.iso) and fired again.
          > Unfortunately no additional booting choices were added by Gujin menu.
          > (As the .iso was not read) I suspect I should use a different boot.bin file.

          No, that cannot work. I could simulate a CDROM from your file DSL-2.4.iso, but once
          the kernel is loaded, DSL has no way to find where is his own filesystem and cannot
          continue. There isn't any solution this way, and there isn't any "sessions" defined
          on a USB thumb drive.

          > Second experiment: make CDall: a torrent of errors and make aborted.
          > I am using Ubuntu Edgy with updated system ...

          Well, which kind of errors? Do you have the compiler gcc-4.1.1 installed,
          is cdrecord installed (and do you have a link in /dev/cdrom to /dev/hdc)?
          The first line of "make CDall" tries to rebuild boot.bin, you could remove
          it from Makefile and use the one in install-1.7.tar.gz.
          Can you type each line (cut & paste from Makefile) one per one and
          show which is the first error?

          > I'd proceed with simple steps now. The next success I want to achieve is booting
          > DSL (or any other .iso file fitting into a USB pen) then I'll proceed onward.

          For DSL there is a trick, you can (on a hard disk) create a partition of few hundred
          Mbytes and cat the CD to it: "cat DSL.ISO > /dev/hda8", Gujin will correctly
          simulate a BIOS disk for the kernel to be loaded, and DSL will probe all the partitions
          to find his filesystem - so will find /dev/hda8 and continue booting (I am using
          that all the time).
          That may or may not be a solution for a USB thumb drive, because the USB BIOS may
          refuse to simulate a disk on two partitions...
          None of the other small distributions search so extensively for his own filesystem.

          > Thanks alot for your patience, if you rekon I am spamming your forum please
          > let's continue with PM

          No, I a lot prefer the forum, because I shall not have to answer same question
          4 or 5 times. Here people can read what is working, what has been tried, what
          to try...

          Cheers,
          Etienne.

           
          • Benny
            Benny
            2007-01-28

            Sunday Evening (for Italy)
            Bad news on all the points, here the results:

            downloaded V 1.7

            TEST1: instboot ( new )command
            benny@benny-laptop:~/Desktop/gujin1.7/install$ ./instboot
            Floating point exception (core dumped)

            any other command gives core dump...

            TEST2: (make command)
            benny@benny-laptop:~/Desktop/gujin1.7$ make CDall
            make clean dep boot.bin instboot
            make[1]: Entering directory `/home/benny/Desktop/gujin1.7'
            rm -f gujin.tar.gz gujin.shar tiny_img.asm tiny_exe.asm floppy.144.gz
            rm -f boot.[sSio] user.[sSio] debug.[sSio] library.[sSio] disk.[sSio] util.[sSio] gzlib.[sSio] kbd.[sSio] fs.[sSio] vmlinuz.[sSio] mouse.[sSio] main.[sSio] font.[sSio] instboot.[sSio] gzcopy.[sSio] fntbin2h.[sSio] addhole.[sSio] showmap.[sSio] cleandisk.[sSio] showmbr.[sSio]
            rm -f boot.lis user.lis debug.lis library.lis disk.lis util.lis gzlib.lis kbd.lis fs.lis vmlinuz.lis mouse.lis main.lis font.lis instboot.lis gzcopy.lis fntbin2h.lis addhole.lis showmap.lis cleandisk.lis showmbr.lis
            rm -f boot.c~ user.c~ debug.c~ library.c~ disk.c~ util.c~ gzlib.c~ kbd.c~ fs.c~ vmlinuz.c~ mouse.c~ main.c~ font.c~ instboot.c~ gzcopy.c~ fntbin2h.c~ addhole.c~ showmap.c~ cleandisk.c~ showmbr.c~ boot.h~ user.h~ debug.h~ library.h~ disk.h~ util.h~ gzlib.h~ kbd.h~ fs.h~ vmlinuz.h~ mouse.h~ font.h~ make.h~ gmem.h~ e2fs.h~ instboot.h~ messages.h~ vesabios.h~ vgabios.h~ ide.h~ bios.h~ dos.h~ ega.h~ xms.h~ bochs.png~ cmd.png~ color16.png~ color4.png~ main.png~ minicom.png~ mode0.png~ setup.png~ setup2.png~ setup-fr.png~ simple.png~ start.png~ ttys0.png~ gujin-scfrg.htm~ README.htm~ install.txt~ gpg_sign.txt~ gpl.txt~ toolchain.txt~ Makefile~ boot.ld~ awk.cmd~ cleandisk.ld~
            rm -f Makefile.tmp code16.h instboot gzcopy fntbin2h addhole showmap showmbr
            rm -f boot.bin boot.lnk boot.com boot.exe boot.pic boot.bcd boot.map boot.asm boot.elf
            rm -f boot.360 boot.120 boot.720 boot.144 boot.168 boot.288 bf144.img.gz
            rm -f gzcp*     # results of testgzcopy when failure
            echo -e "asm(\" .code16gcc \");" > code16.h
            echo -e "asm(\" .psize 0 \");" >> code16.h
            Makefile:792: *** assembler 'as' not working, Please upgrade binutils.  Stop.
            make[1]: Leaving directory `/home/benny/Desktop/gujin1.7'
            make: *** [CDall] Error 2
            benny@benny-laptop:~/Desktop/gujin1.7$

            THE LINK
            benny@benny-laptop:~/Desktop/gujin1.7$ ls -al /dev/cdrom
            lrwxrwxrwx 1 root root 3 2007-01-28 17:49 /dev/cdrom -> hdb

            THE Partition on the KEY
            I did not manage to create it with gparted and gtparted utilities. I will make some more attemps. I believe the HP utility changed the geometry of the key...

            Sorry I am not a clever pupil...

             
    • Monday Morning (for England)

      > Bad news on all the points, here the results:

      I did not checked that a simple executable compiled on the lastest Fedora cannot run on debian...
      I would like not to generate two executable for each release, maybe it is due to the fact that
      I used the default Fedora compiler and should use a released GCC-4.1 without Fedora patches, or a
      library/security problem.
      Anyway, you then have to get the source "gujin-1.7.tar.gz", and do:
      tar xvf gujin-1.7.tar.gz
      cd gujin
      make instboot
      make gzcopy
      To get the two Linux executable for Debian.
      It is not necessary to regenerate boot.bin and tiny.bin, and even preferable not to regenerate them.
      I will try to find out the correct solution...

      > make CDall
      So the regeneration of boot.bin fails, but as I said you can use this file in install-1.7.tar.gz
      Note that I have no problem regenerating those under my (remote) debian distribution, when
      I type "make install.tar.gz standard.tar.gz > log" I do not see even one warning on stderr,
      so you probably have a problem with the toolchain (version of binutils?).

      I would more like to know the error cdrecord gives.
      This command: "cdrecord blank=fast -s" should blank the CDRW (and is not needed for a simple CDR).
      What is the error message if you type (cut & paste), in the directory which contains file "boot.bcd"
      of install-1.7.tar.gz:

      rm -rf /tmp/cdrom
      mkdir /tmp/cdrom
      cp boot.bcd /tmp/cdrom/boot.bcd
      mkisofs -untranslated-filenames -no-emul-boot -boot-load-size 4 \               -b boot.bcd /tmp/cdrom | cdrecord -tao -s -
      rm -rf /tmp/cdrom

        And if that does not fail (a lot of messages are displayed, that is normal),
      does it produce a CDROM that does boot?

        Thanks, and sorry for the "instboot" problem,
        Etienne.

       
      • Benny
        Benny
        2007-01-29

        Hi Etienne,
        a few answers:

        - 1) I updated the system to the last version

        - 2) make instboot
        one single kind of error repeated each occourence:
        instboot.c:7693: warning: incompatible implicit declaration of built-in function ‘fprintf’
        make: *** [instboot] Error 1

        -3) make gzcopy
        same thing
        gzcopy.c:1220: warning: incompatible implicit declaration of built-in function ‘fprintf’
        make[1]: *** [gzcopy] Error 1
        make: *** [install.tar.gz] Error 2

        - 4) binutils version 2.17-1

        - 5) cdrecord
        benny@benny-laptop:~/Desktop/gujin1.7$ sudo cdrecord blank=fast -s
        Cdrecord-Clone 2.01.01a03 (i686-pc-linux-gnu) Copyright (C) 1995-2005 Joerg Schilling
        NOTE: this version of cdrecord is an inofficial (modified) release of cdrecord
              and thus may have bugs that are not present in the original version.
              Please send bug reports and support requests to <cdrtools@packages.debian.org>.
              The original author should not be bothered with problems of this version.

        cdrecord: Warning: Running on Linux-2.6.17-10-generic
        cdrecord: There are unsettled issues with Linux-2.5 and newer.
        cdrecord: If you have unexpected problems, please try Linux-2.4 or Solaris.
        scsidev: '/dev/cdrw'
        devname: '/dev/cdrw'
        scsibus: -2 target: -2 lun: -2
        Warning: Open by 'devname' is unintentional and not supported.
        Linux sg driver version: 3.5.27
        Using libscg version 'debian-0.8debian2'.
        cdrecord: Warning: using inofficial version of libscg (debian-0.8debian2 '@(#)scsitransp.c      1.91 04/06/17 Copyright 1988,1995,2000-2004 J. Schilling').
        Device type    : Removable CD-ROM
        Version        : 0
        Response Format: 2
        Capabilities   :
        Vendor_info    : 'MATSHITA'
        Identifikation : 'UJ-840D         '
        Revision       : '1.02'
        Device seems to be: Generic mmc2 DVD-R/DVD-RW.
        cdrecord: This version of cdrecord does not include DVD-R/DVD-RW support code.
        cdrecord: See /usr/share/doc/cdrecord/README.DVD.Debian for details on DVD support.
        Using generic SCSI-3/mmc   CD-R/CD-RW driver (mmc_cdr).
        Driver flags   : MMC-3 SWABAUDIO BURNFREE
        Supported modes: TAO PACKET SAO
        Starting to write CD/DVD at speed 4 in real BLANK mode for single session.
        Last chance to quit, starting real write    0 seconds. Operation starts.
        benny@benny-laptop:~/Desktop/gujin1.7$

        benny@benny-laptop:~/Desktop/gujin1.7/install/install$ rm -rf /tmp/cdrom
        benny@benny-laptop:~/Desktop/gujin1.7/install/install$ mkdir /tmp/cdrom
        benny@benny-laptop:~/Desktop/gujin1.7/install/install$ cp boot.bcd /tmp/cdrom/boot.bcd
        benny@benny-laptop:~/Desktop/gujin1.7/install/install$ mkisofs -untranslated-filenames -no-emul-boot -boot-load-size 4 \ >               -b boot.bcd /tmp/cdrom | cdrecord -tao -s -
        Cdrecord-Clone 2.01.01a03 (i686-pc-linux-gnu) Copyright (C) 1995-2005 Joerg Schilling
        NOTE: this version of cdrecord is an inofficial (modified) release of cdrecord
              and thus may have bugs that are not present in the original version.
              Please send bug reports and support requests to <cdrtools@packages.debian.org>.
              The original author should not be bothered with problems of this version.

        cdrecord: Warning: Running on Linux-2.6.17-10-generic
        cdrecord: There are unsettled issues with Linux-2.5 and newer.
        cdrecord: If you have unexpected problems, please try Linux-2.4 or Solaris.
        scsidev: '/dev/cdrw'
        devname: '/dev/cdrw'
        scsibus: -2 target: -2 lun: -2
        Warning: Open by 'devname' is unintentional and not supported.
        Linux sg driver version: 3.5.27
        Error: Cannot gain SYS_RAWIO capability.Is cdrecord installed SUID root?
        : Operation not permitted
        Using libscg version 'debian-0.8debian2'.
        cdrecord: Warning: using inofficial version of libscg (debian-0.8debian2 '@(#)scsitransp.c      1.91 04/06/17 Copyright 1988,1995,2000-2004 J. Schilling').
        Device type    : Removable CD-ROM
        Version        : 0
        Response Format: 2
        Capabilities   :
        Vendor_info    : 'MATSHITA'
        Identifikation : 'UJ-840D         '
        Revision       : '1.02'
        Device seems to be: Generic mmc2 DVD-R/DVD-RW.
        Warning: creating filesystem that does not conform to ISO-9660.
        INFO:   UTF-8 character encoding detected by locale settings.
                Assuming UTF-8 encoded filenames on source filesystem,
                use -input-charset to override.
        Size of boot image is 4 sectors -> No emulation
        cdrecord: This version of cdrecord does not include DVD-R/DVD-RW support code.
        cdrecord: See /usr/share/doc/cdrecord/README.DVD.Debian for details on DVD support.
        Using generic SCSI-3/mmc   CD-R/CD-RW driver (mmc_cdr).
        Driver flags   : MMC-3 SWABAUDIO BURNFREE
        Supported modes: TAO PACKET SAO
        cdrecord: WARNING: Total disk size unknown. Data may not fit on disk.
        Error: Cannot gain SYS_RAWIO capability.Is cdrecord installed SUID root?
        : Operation not permitted
        Total translation table size: 2048
        Total rockridge attributes bytes: 0
        Total directory bytes: 0
        Path table size(bytes): 10
        Max brk space used 0
        261 extents written (0 MB)
        Starting to write CD/DVD at speed 4 in real TAO mode for single session.
        Last chance to quit, starting real write    0 seconds. Operation starts.
        Turning BURN-Free off
        Track 01: Total bytes read/written: 534528/614400 (300 sectors).
        benny@benny-laptop:~/Desktop/gujin1.7/install/install$

        now I have to boot ...

         
    •   Hi Benny,

        I hope it did boot...
        You should have the executable compiled for Debian in the sourceforge
      download site within few minutes - tell me that those work - please!

        I still do not understand what is wrong with Fedora compiler.
        Etienne.

       
      • Benny
        Benny
        2007-01-29

        Yes it did boot.

        I also took a chance to cdrom -multi -tao dsl.iso and also slax.iso

        both rebooted (exactly what I wanted !!!) BUT BUT BUT .... they got lost (DSL and Slax) after a proper first booting phase. (exactly what I DON'T wanted).

        I downloaded the last upload executables. instboot does not dump I'll see in a minute if it boots here is  the log.

        benny@benny-laptop:~/Desktop/gujin1.7/install/install$ sudo ./instboot -w boot.bin /dev/sda --disk=BIOS:0x00 --geometry=/dev/sda
        Proc: initialise cmdline from /proc/cmdline: root=/dev/hda3 ro quiet splash
        Proc: kept '--cmdline="quiet splash"'
        Size: this configuration leaves 3168 bytes for code,
        Size: and leaves 6528 bytes for xcode, 34592 bytes for xdata segments.
        Size: this configuration leaves 41992 bytes for stack + heap.
        Extra: set devname to '/dev/sda' to get partition size & offset and disk parameters.
        Extra: geocmd beginning with '/', begin device geometry analysis.
        Extra: scandisk /sys/block/*/dev for stat_buf.st_rdev 0x800
        Extra: start_sector of MAJOR device '/sys/block/sda/dev' is zero
        Extra:  HDIO_GETGEO ioctl: total_sector: 257805, start_sector: 0, cylinders: 1011, heads: 5, sectpertrack: 51.
        Extra: something not perfect: total sector * 512 = 131996160, total len 132120576
        Extra: device name /dev/sda, len 132120576, total_sector 257805, so sector size 512, pages of 8 sectors
        Extra: Reporting wholedisk: start_sector = 0, total_sector 257805, partdisk: start_sector = 0, total_sector 258048
        Extra: exit setup_geometry with: --geometry=258048,0,5,51,512,257805,0,5,51,512 (cylinder: 1011,1011)
        Chain: --disk=BIOS:0x0,0x0
        Extra: entering setup_fs with fs->NbFsSector == 258048 and '--fs='
        Fs: if FatSize 12 and NbSectorPerCluster 4, then NbClusterPerCluster 1365, NbFatSector 189
        Fs: NbFsSector 258048, NbReservedSector 1, NbRootSector 8, nbDATandFATsector 258039
        Fs: nbDATcluster 64415 >= 4085 == 0xFF5 too big for FAT12
        Fs: if FatSize 16 and NbSectorPerCluster 4, then NbClusterPerCluster 1024, NbFatSector 252
        Fs: so FAT16, nbSectorPerFAT 252, nbDATcluster 64383
        Fs: FAT16 selected
        Fs: NbRootSector_default_used set, convert 3 trailing sector to root sectors (8 -> 11)
        Extra: exiting setup_fs with '--fs=FAT:258048,4,11,1,2,16,0x0,0xF0'
        Mbr: jmpinstruction: 0xEB,0x6F, EBIOSaccess 0x90 i.e. BIOS only
        Mbr: NbHiddensector 0, Head 5, Sector/track 51, i.e. floppy (1011 cylinders) size 126 Mb.
        Mbr: Bytepersector 512, Sectorpercluster 4, Reservedsector 1, NbRootdirentry 176.
        Mbr: NbFAT 2, NbSectorperFAT 252, NbTotalsector 0, NbTotalsector2 258048, Mediadescriptor 0xF0.
        Mbr: PhysicaldriveNb 0x0, FATreserved 0, Signaturebyte0x29 0x29, FileSysName 'FAT16   '.
        Extra: --position=0, so nb_cluster: at_begin 0, in_file 85, at_end 64298.
        Chain: MBR sector (lba = 0) of disk 0x0 at 0x7C00, chs_chain: lba=517, last_lba=855, 855 - 517 = 338,
        Chain: BIOS disk 0x0, C/H/S 1011/5/51
        Chain[00]:  1 sector at LBA 517, C/H/S: 2/00/08 loaded at 0x07E00, i.e. 0x07C00200..0x07C003FF
        Chain[01]: 43 sector at LBA 518, C/H/S: 2/00/09 loaded at 0x08000, i.e. 0x07C00400..0x07C059FF
        Chain[02]: 21 sector at LBA 561, C/H/S: 2/01/01 loaded at 0x0D600, i.e. 0x07C05A00..0x07C083FF
        Chain[03]: 30 sector at LBA 582, C/H/S: 2/01/22 loaded at 0x10000, i.e. 0x07C08400..0x07C0BFFF
        Chain[04]: 32 sector at LBA 612, C/H/S: 2/02/01 loaded at 0x13C00, i.e. 0x07C0C000..0x07C0FFFF
        Chain[05]: 19 sector at LBA 644, C/H/S: 2/02/33 loaded at 0x17C00, i.e. 0x17C00000..0x17C025FF
        Chain[06]: 47 sector at LBA 663, C/H/S: 2/03/01 loaded at 0x1A200, i.e. 0x17C02600..0x17C083FF
        Chain[07]:  4 sector at LBA 710, C/H/S: 2/03/48 loaded at 0x20000, i.e. 0x17C08400..0x17C08BFF
        Chain[08]: 51 sector at LBA 714, C/H/S: 2/04/01 loaded at 0x20800, i.e. 0x17C08C00..0x17C0F1FF
        Chain[09]:  7 sector at LBA 765, C/H/S: 3/00/01 loaded at 0x26E00, i.e. 0x17C0F200..0x17C0FFFF
        Chain[10]: 44 sector at LBA 772, C/H/S: 3/00/08 loaded at 0x27C00, i.e. 0x27C00000..0x27C057FF
        Chain[11]: 22 sector at LBA 816, C/H/S: 3/01/01 loaded at 0x2D400, i.e. 0x27C05800..0x27C083FF
        Chain[12]: 17 sector at LBA 838, C/H/S: 3/01/23 loaded at 0x30000, i.e. 0x27C08400..0x27C0A5FF
        Chain: using 12 element (max 35), i.e 312 bytes for bootchain[] (max 910)
        Chain: do not chain any MBR recovery
        Extra: scandisk /sys/block/*/dev for stat_buf.st_rdev 0x800
        Extra: start_sector of MAJOR device '/sys/block/sda/dev' is zero
        Extra: output device is the whole disk, do offset every writes by misc->output_partition_offset 0 * 512 = 0.
        You asked to create a new FAT filesystem on '/dev/sda',
        and so ERASE completely this partition, confirm [NO/yes]: yes
        Extra: Begin writing to the device.
        Extra: writing boot record as first sector.
        Location: will lseek64: 1 * 512 + 0 * 512, i.e. 512
        Location: lseek64(0, SEEK_CUR): 1 sector, should be 1 sector, after FAT Reserved Sector
        Fs: write_fat_16 write: FAT uses 128770 bytes and contains 129024 bytes, 254 bytes emptied
        Fs: write_fat_16 write: FAT uses 128770 bytes and contains 129024 bytes, 254 bytes emptied
        Location: lseek64(0, SEEK_CUR): 516 sector, should be 516 sector, after FAT(s) + root directory
        Location: will lseek64: 516 * 512 + 0 * 512, i.e. 264192
        Extra: writing complete file
        Location: lseek64(0, SEEK_CUR): 855 sector, should be 855 sector, after the complete file
        Location: lseek64(0, SEEK_CUR): 856 sector, should be 856 sector, after end-of-cluster filler just after file
        Finishing write (flushing buffers) and then checking...
        Extra: scandisk /sys/block/*/dev for stat_buf.st_rdev 0x800
        Extra: start_sector of MAJOR device '/sys/block/sda/dev' is zero
        Extra: output device is the whole disk, do offset every writes by misc->output_partition_offset 0 * 512 = 0.
        Extra: Begin extensive verification of what has been written.
        Extra: checking boot record as first sector.
        Location: will lseek64: 1 * 512 + 0 * 512, i.e. 512
        Location: lseek64(0, SEEK_CUR): 1 sector, should be 1 sector, after FAT Reserved Sector
        Fs: write_fat_16 check: FAT uses 128770 bytes and contains 129024 bytes, 254 bytes emptied
        Fs: write_fat_16 check: FAT uses 128770 bytes and contains 129024 bytes, 254 bytes emptied
        Location: lseek64(0, SEEK_CUR): 516 sector, should be 516 sector, after FAT(s) + root directory
        Location: will lseek64: 516 * 512 + 0 * 512, i.e. 264192
        Extra: checking complete file
        Location: lseek64(0, SEEK_CUR): 855 sector, should be 855 sector, after the complete file
        Location: lseek64(0, SEEK_CUR): 856 sector, should be 856 sector, after end-of-cluster filler just after file
        benny@benny-laptop:~/Desktop/gujin1.7/install/install$

         
    • > Yes it did boot.

      So the CDROM El-Torito interface is working for you, fine.

      I would like to know if the USB key boots if you do as root (that
      will delete all file there, check that the key is /dev/sda):
      dd if=/dev/zero of=/dev/sda bs=512 count=64     # to erase the begining
      ./instboot boot.bin /dev/sda --disk=BIOS:0x80,auto --cmdline="" \       --mbr-device=/dev/sda --partition_index=4 --read_retry --usb_hdd
      The two parameters "--partition_index=4 --read_retry" may not be needed.
      In extreme case one can try "--single_sector_load"
      and/or "--head=16 --sectorpertrack=32"
      So the HP tool would no more be needed.

      > I also took a chance to cdrom -multi -tao dsl.iso and also slax.iso
      > both rebooted (exactly what I wanted !!!) BUT BUT BUT .... they got
      > lost (DSL and Slax) after a proper first booting phase.
      > (exactly what I DON'T wanted).

        From what I can get of your problem with DSL and Slax, it is the
      same as the one I had: those two distribution are - after booting
      correctly the kernel using their initrd - looking for the real
      device where they are installed. DSL will look for all the physical
      CD/DVD drives, then all the USB drives, then all the partitions of
      all the drives, to find some predetermined file and then mount this
      device as their root filesystem to continue the boot process and
      log the user.
      Slax finish the search earlier and does not look for all the
      partitions so you cannot do the "cat slax.iso > /dev/hda8" I talk
      about with DSL.
      You would see more info if you disable the "quiet splash" command
      line parameter (go to the setup in Gujin itself to edit that).

        Gujin cannot do anything about that, even if Gujin simulate a
      BIOS CDROM drive, the distribution will have a problem to find
      what shall be its own device. With multisession, you could hope
      that DSL search all the sessions of the CDROM for its own device,
      supposing that a session can be a device.

        There isn't any protocol, while booting a CDROM, to tell the
      distribution where to look for its own device - that would be
      nice. Even if Gujin would like to tell "your own device" is "the
      session 3 of the first CDROM", "the 2nd partition of the first
      hard disk" or even "this file to be mounted as a loopback",
      like the Linux kernel command line - there isn't any defined
      protocol like this for El-Torito CD/DVD booting.

        Take care that when creating a multisession cdrom, some BIOSes may
      want the last session to be closed, that is all cdrecord but the last
      one have the -multi option.

        Note that I have a new portable PC here and it refuses to boot from a
      multisession CDROM - standard CDROM without any problem.

      > I downloaded the last upload executables. instboot does not dump I'll see in
      > a minute if it boots here is the log.

        I hope it will work.

      > $ sudo ./instboot -w boot.bin /dev/sda --disk=BIOS:0x00 --geometry=/dev/sda

        All the debug messages (due to the -w switch) seem to be OK, note that
      you no more need to add parameter "--geometry=/dev/sda" when it is the
      same as the target device.
      You have a strange geometry of C/H/S 1011/5/51 on this device, but
      regenerating with dd/instboot should give you more standard numbers.

        This forum is getting quite difficult to read, but I would better not
      re-explain that too many time - so better like the messages public.
      Maybe we should switch to gujin-devel@lists.sourceforge.net ?
      Feel free to post there the answer, and put a link to here for anybody
      who want to follow te discussion...

        Cheers,
        Etienne.

       
    • kamil86
      kamil86
      2007-06-15

      Hello:)
      I only want to say that I wait patiently for solution of this topic:)
      I hope somebody will defeat problems and share with us how he made it.
      Thanks, Cheers:)

       
      •   Maybe it would be more efficient to ask to the different distributions you want to include to search more for their data. Most live CDROM/DVD search only for a CD-drive to contain their data. Damn Small Linux also probe each hard disk partition (so it is possible to bit-per-bit copy the CDROM content into a partition and it works with Gujin). Some distribution (installable on USB thumb disk) also probe for /dev/sd*.
        The right order to use for a live distribution should be something like (in that order):
        - probe each CDROM (last session)
        - probe each hard disk (IDE and SCSI)
        - probe each partition in each hard disk
        - probe for a filesystem image file to "loop" mount, of the name of the distribution (to
            not conflict with other live distribution).
        - probe each CDROM session (over than last session)

        That is a very simple thing to do for them, few lines to add in the startup script - and no possible regression because it is just "do something more if the thing was failling before".

        Etienne.

         
        • Benny
          Benny
          2007-06-28

          So we are stalled.

          I am in touch with an italian Linux magazine. they would be delighted to save money publishing  5-10 live distributions instead of 1 or 2 (with double side more expensive DVD).

          a very unique and innovative solution, not existing yet and  worthy money

          It looks from Etienne last answer we are in each single distribution programmers hands. Is there any Idea for a workaround ?

          what's a difference between a real CD or a looped ISO image ? Can't gujin emulate the CD driver for the booting distribution ?

          Benny

           
    • > I am in touch with an italian Linux magazine. they would be delighted to save money publishing 5-10 live
      > distributions instead of 1 or 2 (with double side more expensive DVD).

      They would not like multisession DVDs because some new PC refuse to boot multisession CDROMS, even
      refuse to boot the first session. BIOS in Intel based laptop behave that way for mine.

      > what's a difference between a real CD or a looped ISO image ?

      Simplifying, the Linux kernel of the distribution has to mount the root filesystem
      either on /dev/cdrom or on /dev/loop.

      > Can't gujin emulate the CD driver for the booting distribution ?

      That is what Gujin does when booting El-Torito CDROMs, but Gujin cannot leave a driver hidden from
      the distribution Linux kernel so that when the kernel mounts /dev/cdrom it in fact mounts /dev/loop.
      Gujin cannot modify the content of /etc/fstab of the CDROM neither.

      Etienne.