wok rev 14247

syslinux/iso2exe: use posixovl -F
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sun Mar 24 23:14:15 2013 +0100 (2013-03-24)
parents da018658b8df
children 786aeb618875
files syslinux/stuff/iso2exe/README syslinux/stuff/iso2exe/init
line diff
     1.1 --- a/syslinux/stuff/iso2exe/README	Sun Mar 24 22:22:59 2013 +0100
     1.2 +++ b/syslinux/stuff/iso2exe/README	Sun Mar 24 23:14:15 2013 +0100
     1.3 @@ -1,7 +1,7 @@
     1.4  (c) GPLv2, Pascal Bellard <pascal.bellard@slitaz.org>
     1.5  
     1.6 -The iso2exe tool inserts a DOS .EXE header in an ISO image.
     1.7 -The ISO image can be launched by DOS :
     1.8 +The iso2exe tool inserts a DOS/WIN32 .EXE header in an ISO image.
     1.9 +The ISO image can be launched by DOS or Windows :
    1.10  
    1.11  C:\> ren slitaz-5.0.iso slitaz.exe
    1.12  C:\> slitaz
    1.13 @@ -22,6 +22,8 @@
    1.14  
    1.15  - to create a SliTaz USB Key.
    1.16  
    1.17 +When the slitaz.exe program can't boot SliTaz directly it will prompt to create
    1.18 +a bootable image on a removeable media (Memory card, USB stick or ... floppy).
    1.19  
    1.20  Usage:
    1.21  
    1.22 @@ -57,7 +59,7 @@
    1.23      +-----------------+
    1.24      | DOS .COM loader | Load bzImage, the last rootfs*.gz and the ISO initramfs
    1.25      +-----------------+
    1.26 -    |  WIN32 PE .exe  | Windows UMSDOS like installer / USB Key creator.
    1.27 +    |  WIN32 PE .exe  | USB boot Key creator / floppy bootstrap creator.
    1.28      +-----------------+
    1.29             unused
    1.30      +-----------------+
    1.31 @@ -66,7 +68,7 @@
    1.32      | isohybrid boot  | Starts isolinux.bin
    1.33  512 +-----------------+
    1.34      |  iso2exe boot   | Boot starts isohybrid (*), .EXE starts DOS .COM loader
    1.35 -  0 +-----------------+ or 32 bits Windows UMSDOS like installer
    1.36 +  0 +-----------------+ or 32 bits Windows boot device creator
    1.37  
    1.38  * Eltorito boot (i.e. bootable CD-ROM by BIOS) is not concerned by iso2exe.
    1.39  
    1.40 @@ -75,20 +77,29 @@
    1.41  
    1.42  - Only DOS 3, 4 and 6 supported. Checked with http://www.allbootdisks.com/
    1.43  
    1.44 -- Real mode support only. VM86 is not supported.
    1.45 +- Real mode support only. VM86 is not supported. Will not boot directly, but
    1.46 +  a removable boot media is created.
    1.47  
    1.48  - Image/zImage format not supported, bzImage only. Can't boot memtest or gpxe.
    1.49  
    1.50 -- posixovl still needs fixes !
    1.51 -
    1.52  - The tiny Linux loader can't load more than 15Mb of files. (not really a 
    1.53    problem since many-in-1 ISO format).
    1.54  
    1.55  - The DOS Linux loader and the ISO initramfs must fit in ~30Kb.
    1.56  
    1.57 -- Old Linux kernels don't support multiple initramfs load. They will not
    1.58 -  find the /init.exe file. Only the "text" mode will work:
    1.59 +- Linux kernels before version 2.6.30 don't support multiple initramfs load.
    1.60 +  They will not find the /init.exe file. The "text" mode will be forced:
    1.61  	C:\> slitaz.exe text
    1.62  
    1.63  - The ISO image must include the files /boot/bzImage and /boot/rootfs*.
    1.64  
    1.65 +TODO:
    1.66 +
    1.67 +- Add Windows boot device creator
    1.68 +
    1.69 +- Add XMM and VCPI (VM86) support.
    1.70 +
    1.71 +- floppy bootstrap
    1.72 +
    1.73 +- zImage support ?
    1.74 +
     2.1 --- a/syslinux/stuff/iso2exe/init	Sun Mar 24 22:22:59 2013 +0100
     2.2 +++ b/syslinux/stuff/iso2exe/init	Sun Mar 24 23:14:15 2013 +0100
     2.3 @@ -99,7 +99,7 @@
     2.4  arg mount "Mount device"
     2.5  mount \$( (blkid /dev/?d* || blkid) | grep \$val | sed 's/:.*//;q') /mnt
     2.6  arg subroot "Change root to directory"
     2.7 -mount.posixovl /mnt/\$val
     2.8 +mount.posixovl -F /mnt/\$val
     2.9  mount --bind /mnt /mnt/\$val/mnt/dos
    2.10  LDSO=\$(ls /mnt/\$val/lib/ld-* | sed q)
    2.11  umount /proc
    2.12 @@ -119,7 +119,7 @@
    2.13  doinstall()
    2.14  {
    2.15  	mkdir /mnt/slitaz
    2.16 -	mount.posixovl /mnt/slitaz || return
    2.17 +	mount.posixovl -F /mnt/slitaz || return
    2.18  	mkdir -p /mnt/slitaz/boot /mnt/slitaz/mnt/dos
    2.19  	if [ -d /media/cdrom/fs ]; then
    2.20  		cp -a /media/cdrom/fs/. /mnt/slitaz
    2.21 @@ -146,16 +146,16 @@
    2.22  	umount -d /media/cdrom
    2.23  	gettazboot /mnt/slitaz/boot/tazboot.exe
    2.24  	mkinitrd /mnt/slitaz/boot/initrd
    2.25 -	cat > /mnt/slitaz/boot/tazboot.cmd <<EOT
    2.26 +	unix2dos > /mnt/slitaz/boot/tazboot.cmd <<EOT
    2.27  kernel=\\slitaz\\boot\\bzimage
    2.28  initrd=\\slitaz\\boot\\initrd
    2.29  rw root=/dev/null mount=$(getuuid) subroot=slitaz autologin
    2.30  EOT
    2.31  	unix2dos /mnt/slitaz/boot/he* /mnt/slitaz/boot/opt* \
    2.32 -		/mnt/slitaz/boot/README /mnt/slitaz/boot/tazboot.cmd
    2.33 +		/mnt/slitaz/boot/README
    2.34  	[ -x /mnt/slitaz/usr/sbin/mount.posixovl ] ||
    2.35  	cp $(which mount.posixovl) /mnt/slitaz/usr/sbin
    2.36 -	! grep -qs tazboot /mnt/boot.ini && cat >> /mnt/boot.ini <<EOT
    2.37 +	! grep -qs tazboot /mnt/boot.ini && unix2dos >> /mnt/boot.ini <<EOT
    2.38  C:\\slitaz\\boot\\tazboot.exe="SliTaz"
    2.39  EOT
    2.40  	grep -qs menuitem /mnt/config.sys && !grep -q tazboot /mnt/config.sys &&
    2.41 @@ -164,6 +164,7 @@
    2.42  [slitaz]
    2.43  device=\\slitaz\\boot\\tazboot.exe
    2.44  EOT
    2.45 +	unix2dos /mnt/config.sys
    2.46  }
    2.47  
    2.48  install()
    2.49 @@ -310,7 +311,7 @@
    2.50  to machine.\n\n
    2.51  Please plug your USB stick in now.\n 
    2.52  " 18 70
    2.53 -	[ $? -eq 0 ] || return
    2.54 +	[ $? -eq 0 -a -n "$(which tazusb)" ] || return
    2.55  	sleep 5
    2.56  	DEV="$(grep -l 1 /sys/block/*/removable | \
    2.57  		sed 's|/sys/block/\(.*\)/removable|\1|')"
    2.58 @@ -407,9 +408,9 @@
    2.59  	getty -n -l /bin/ash 38400 tty1 || sh
    2.60  }
    2.61  
    2.62 -[ -x /usr/sbin/mount.posixovl ] ||
    2.63 -mv /bin/mount.posixovl.iso2exe /usr/sbin/mount.posixovl 2> /dev/null ||
    2.64 -mv /bin/mount.posixovl.iso2exe /bin/mount.posixovl
    2.65 +BIN=bin/mount.posixovl
    2.66 +[ -x /usr/s$BIN ] || mv /bin/mount.posixovl.iso2exe \
    2.67 +/usr/s$BIN 2> /dev/null || mv /bin/mount.posixovl.iso2exe /$BIN
    2.68  mount -t proc /proc /proc
    2.69  ISO="$(getarg iso | sed 's/.://;s|\\|/|g')"
    2.70  getiso
    2.71 @@ -419,6 +420,7 @@
    2.72  *live*)		live ;;
    2.73  *text*)		text ;;
    2.74  esac
    2.75 +which $DIALOG || live
    2.76  dmesg > /tmp/dmesg
    2.77  
    2.78  while true; do