# HG changeset patch # User Pascal Bellard # Date 1364163255 -3600 # Node ID 4bb9acf2b1b41f8ba0c3360f85febd0d5f93e184 # Parent da018658b8df032be1abdaa3561e246df9cff3dc syslinux/iso2exe: use posixovl -F diff -r da018658b8df -r 4bb9acf2b1b4 syslinux/stuff/iso2exe/README --- a/syslinux/stuff/iso2exe/README Sun Mar 24 22:22:59 2013 +0100 +++ b/syslinux/stuff/iso2exe/README Sun Mar 24 23:14:15 2013 +0100 @@ -1,7 +1,7 @@ (c) GPLv2, Pascal Bellard -The iso2exe tool inserts a DOS .EXE header in an ISO image. -The ISO image can be launched by DOS : +The iso2exe tool inserts a DOS/WIN32 .EXE header in an ISO image. +The ISO image can be launched by DOS or Windows : C:\> ren slitaz-5.0.iso slitaz.exe C:\> slitaz @@ -22,6 +22,8 @@ - to create a SliTaz USB Key. +When the slitaz.exe program can't boot SliTaz directly it will prompt to create +a bootable image on a removeable media (Memory card, USB stick or ... floppy). Usage: @@ -57,7 +59,7 @@ +-----------------+ | DOS .COM loader | Load bzImage, the last rootfs*.gz and the ISO initramfs +-----------------+ - | WIN32 PE .exe | Windows UMSDOS like installer / USB Key creator. + | WIN32 PE .exe | USB boot Key creator / floppy bootstrap creator. +-----------------+ unused +-----------------+ @@ -66,7 +68,7 @@ | isohybrid boot | Starts isolinux.bin 512 +-----------------+ | iso2exe boot | Boot starts isohybrid (*), .EXE starts DOS .COM loader - 0 +-----------------+ or 32 bits Windows UMSDOS like installer + 0 +-----------------+ or 32 bits Windows boot device creator * Eltorito boot (i.e. bootable CD-ROM by BIOS) is not concerned by iso2exe. @@ -75,20 +77,29 @@ - Only DOS 3, 4 and 6 supported. Checked with http://www.allbootdisks.com/ -- Real mode support only. VM86 is not supported. +- Real mode support only. VM86 is not supported. Will not boot directly, but + a removable boot media is created. - Image/zImage format not supported, bzImage only. Can't boot memtest or gpxe. -- posixovl still needs fixes ! - - The tiny Linux loader can't load more than 15Mb of files. (not really a problem since many-in-1 ISO format). - The DOS Linux loader and the ISO initramfs must fit in ~30Kb. -- Old Linux kernels don't support multiple initramfs load. They will not - find the /init.exe file. Only the "text" mode will work: +- Linux kernels before version 2.6.30 don't support multiple initramfs load. + They will not find the /init.exe file. The "text" mode will be forced: C:\> slitaz.exe text - The ISO image must include the files /boot/bzImage and /boot/rootfs*. +TODO: + +- Add Windows boot device creator + +- Add XMM and VCPI (VM86) support. + +- floppy bootstrap + +- zImage support ? + diff -r da018658b8df -r 4bb9acf2b1b4 syslinux/stuff/iso2exe/init --- a/syslinux/stuff/iso2exe/init Sun Mar 24 22:22:59 2013 +0100 +++ b/syslinux/stuff/iso2exe/init Sun Mar 24 23:14:15 2013 +0100 @@ -99,7 +99,7 @@ arg mount "Mount device" mount \$( (blkid /dev/?d* || blkid) | grep \$val | sed 's/:.*//;q') /mnt arg subroot "Change root to directory" -mount.posixovl /mnt/\$val +mount.posixovl -F /mnt/\$val mount --bind /mnt /mnt/\$val/mnt/dos LDSO=\$(ls /mnt/\$val/lib/ld-* | sed q) umount /proc @@ -119,7 +119,7 @@ doinstall() { mkdir /mnt/slitaz - mount.posixovl /mnt/slitaz || return + mount.posixovl -F /mnt/slitaz || return mkdir -p /mnt/slitaz/boot /mnt/slitaz/mnt/dos if [ -d /media/cdrom/fs ]; then cp -a /media/cdrom/fs/. /mnt/slitaz @@ -146,16 +146,16 @@ umount -d /media/cdrom gettazboot /mnt/slitaz/boot/tazboot.exe mkinitrd /mnt/slitaz/boot/initrd - cat > /mnt/slitaz/boot/tazboot.cmd < /mnt/slitaz/boot/tazboot.cmd <> /mnt/boot.ini <> /mnt/boot.ini < /dev/null || -mv /bin/mount.posixovl.iso2exe /bin/mount.posixovl +BIN=bin/mount.posixovl +[ -x /usr/s$BIN ] || mv /bin/mount.posixovl.iso2exe \ +/usr/s$BIN 2> /dev/null || mv /bin/mount.posixovl.iso2exe /$BIN mount -t proc /proc /proc ISO="$(getarg iso | sed 's/.://;s|\\|/|g')" getiso @@ -419,6 +420,7 @@ *live*) live ;; *text*) text ;; esac +which $DIALOG || live dmesg > /tmp/dmesg while true; do