Hi there, while trying to get my pbx (486/66 4MB) netbooting, I ran into some problems, which showed up as follows: First handish try with mtools succeeded, but had some trouble with the dos drivers. While fiddling around with the stuff, I damaged the mtools diskimage: emm386.exe & command.com not found (any more), but were visible & accessible thru mtools :-( mtools --version: Mtools version 3.9.6, dated 28 June 1999 configured with the following options: enable-xdf disable-vold disable-new-vold disable-debug enable-raw-term In order to get get a proper build environment, I prepared this script: ---8<--- #! /bin/bash # # create a netbootable dos image # # (c)2000 by H.P.Jansen, LISA GmbH, Berlin # bootimg=${TEMP:-/tmp}/pbxboot.img bootimglabel=netboot-hp bootdst=/djini/tftpboot/pbx.nb bootdir=$HOME/backup/pbxboot bootsec=$bootdir/bootsec.fd sysfiles="/io.sys /msdos.sys" # gets copied first && attrib +rsh'ed addfiles="/command.com /config.sys /autoexec.bat" # get copied next mtoolsrc=~/.mtoolsrc.tmp drv=z: function eecho { echo -e "$*" >&2 } function fatal { [ -n "$1" ] && echo -e "$0: $1" >&2 && shift exit $1 } mcopy > /dev/null 2>&1 [ "$?" -eq 127 ] && fatal "mtools package not installed! Go for it..." 1 mknbi-dos > /dev/null 2>&1 [ "$?" -eq 127 ] && fatal "netboot package not installed! Go for it..." 1 [ -d $bootdir ] || fatal "host bootdir $bootdir missing" 1 [ -s $bootsec ] || fatal "boot sector $bootsec missing" 1 for i in $sysfiles $addfiles; do [ -s $bootdir/$i ] || fatal "system file $i missing" 1 done cat > $mtoolsrc << EOF drive $drv file="$bootimg" EOF export MTOOLSRC=$mtoolsrc eecho "Create $bootimg on $drv" rm -rf $bootimg #mformat -t 80 -s 18 -h 2 -B $bootdir/bootsec.fd -C -l $bootimglabel $drv ||\ # fatal "mformat $drv ($bootimg) failed" 2 mformat -t 80 -s 9 -h 2 -B $bootdir/bootsec.fd -C -l $bootimglabel $drv ||\ fatal "mformat $drv ($bootimg) failed" 2 for i in $sysfiles; do eecho "copy $bootdir$i -> $drv$i" mcopy -mnp "$bootdir$i" "$drv$i" || fatal "mcopy failed" 2 eecho "attrib +rsh $drv$i" mattrib +rsh "$drv$i" || fatal "mattrib failed" 2 done for i in $addfiles; do eecho "copy $bootdir$i -> $drv$i" mcopy -mnp "$bootdir$i" "$drv$i" || fatal "mcopy failed" 2 done for i in `find $bootdir -type d -print`; do d="${i/$bootdir}" if [ -n "$d" ]; then eecho "mkdir $drv$d" mmd $drv$d || fatal "mdir $drv$d failed" 2 fi done for i in `find $bootdir -type f -print`; do for x in $sysfiles $addfiles; do if [ "$x" == "${i##$bootdir}" ]; then continue 2; fi done f=$drv${i/$bootdir} eecho "copy $i -> $f" mcopy -mnp "$i" "$f" || fatal "mcopy failed" 2 done mknbi-dos -x -x -s 720 -r $bootimg -o $bootdst --->8--- which should do the trick properly (although is lacks commandline parameters, some more error checkings and tweaks mtools config for this session (intended!)...) This is a sample run: Create /var/tmp/pbxboot.img on z: copy /home/hp/backup/pbxboot/io.sys -> z:/io.sys attrib +rsh z:/io.sys copy /home/hp/backup/pbxboot/msdos.sys -> z:/msdos.sys attrib +rsh z:/msdos.sys copy /home/hp/backup/pbxboot/command.com -> z:/command.com copy /home/hp/backup/pbxboot/config.sys -> z:/config.sys copy /home/hp/backup/pbxboot/autoexec.bat -> z:/autoexec.bat mkdir z:/sys copy /home/hp/backup/pbxboot/bootsec.fd -> z:/bootsec.fd copy /home/hp/backup/pbxboot/sys/debug.exe -> z:/sys/debug.exe copy /home/hp/backup/pbxboot/sys/doskey.com -> z:/sys/doskey.com copy /home/hp/backup/pbxboot/sys/emm386.exe -> z:/sys/emm386.exe copy /home/hp/backup/pbxboot/sys/himem.sys -> z:/sys/himem.sys copy /home/hp/backup/pbxboot/sys/keyb.com -> z:/sys/keyb.com copy /home/hp/backup/pbxboot/sys/keyboard.sys -> z:/sys/keyboard.sys copy /home/hp/backup/pbxboot/sys/mem.exe -> z:/sys/mem.exe copy /home/hp/backup/pbxboot/sys/mode.com -> z:/sys/mode.com copy /home/hp/backup/pbxboot/sys/more.com -> z:/sys/more.com copy /home/hp/backup/pbxboot/sys/bioncl.exe -> z:/sys/bioncl.exe copy /home/hp/backup/pbxboot/sys/login.exe -> z:/sys/login.exe copy /home/hp/backup/pbxboot/sys/edit.exe -> z:/sys/edit.exe copy /home/hp/backup/pbxboot/sys/3c5x9pd.com -> z:/sys/3c5x9pd.com Ramdisk filename = /var/tmp/pbxboot.img Output file name = /djini/tftpboot/pbx.nb Load record information: Magic number: 0x1B031336 Length of header: 16 bytes (standard) + 16 bytes (vendor) Flags: 0x00000000 Location address: 1000:0000 Execute address: 1040:0000 Vendor data: GK-mknbi-DOS Record #1: Length of header: 16 bytes (standard) + 0 bytes (vendor) Vendor tag: 0x10 (primary boot loader) Reserved flags: 0x00 Flags: 0x00 (absolute address) Load address: 0x00010400 Image length: 0x00000E00 bytes Memory length: 0x0000FC00 bytes Vendor data: none Record #2: Length of header: 16 bytes (standard) + 8 bytes (vendor) Vendor tag: 0x11 (ramdisk image) Reserved flags: 0x00 Flags: 0x04 (absolute address, last record) Load address: 0x00110000 (high memory) Image length: 0x0008DC00 bytes Memory length: 0x000B4000 bytes Vendor data: 80 cylinders; 2 heads; 9 sectors; disk id: 0x00 Everything is looking fine. The resulting image gets loaded, but after Gero's loader, the system complains: Kein System oder Laufwerksfehler Wechseln und Taste drücken (No system or drive failure) (Insert disk and press key) This message comes from the original M$DOS 5.0 bootsector code, but why the hell, it can't access the ramdisk? I reproduced this effect with mknbi-dos out of etherboot 4.4.2 (netboot 0.81) and netboot 0.9e. May be, it's mtools related? From 0.9e the mknbi-mgl build seems to be broken, btw (Gero!): gcc -O3 -mpentiumpro -O2 -Wall -DHAVE_CONFIG_H -I. -I.. -I../include -DPARANOID -c y.tab.c -o y.tab.o mglparse.y: In function `yyparse': mglparse.y:2388: called object is not a function mglparse.y:2388: called object is not a function mglparse.y:2388: warning: left-hand operand of comma expression has no effect mglparse.y:2388: warning: left-hand operand of comma expression has no effect mglparse.y:2388: called object is not a function mglparse.y:2388: warning: left-hand operand of comma expression has no effect mglparse.y:2388: called object is not a function mglparse.y:2388: warning: left-hand operand of comma expression has no effect mglparse.y:2414: called object is not a function mglparse.y:2414: called object is not a function mglparse.y:2414: warning: left-hand operand of comma expression has no effect mglparse.y:2414: warning: left-hand operand of comma expression has no effect mglparse.y:2414: called object is not a function mglparse.y:2414: warning: left-hand operand of comma expression has no effect mglparse.y:2414: called object is not a function mglparse.y:2414: warning: left-hand operand of comma expression has no effect mglparse.y:2388: warning: `__s2_len' might be used uninitialized in this function but mknbi-dos builds fine. This is a directory listing directly from the broken boot image: Volume in drive Y is NETBOOT-HP Volume Serial Number is 4A26-B9E4 Directory for Y:/ io sys 41055 05-31-1994 6:22 msdos sys 38186 05-31-1994 6:22 command com 57377 05-31-1994 6:22 config sys 194 02-12-2000 5:16 autoexec bat 175 02-11-2000 22:14 sys <DIR> 02-12-2000 6:10 bootsec fd 512 02-09-2000 17:23 7 files 137 499 bytes Directory for Y:/sys . <DIR> 02-12-2000 6:10 .. <DIR> 02-12-2000 6:10 debug exe 15945 05-31-1994 6:22 doskey com 5991 05-31-1994 6:22 emm386 exe 121950 05-31-1994 6:22 himem sys 29408 05-31-1994 6:22 keyb com 15871 05-31-1994 6:22 keyboard sys 34607 05-31-1994 6:22 mem exe 33030 05-31-1994 6:22 mode com 24097 05-31-1994 6:22 more com 2567 05-31-1994 6:22 bioncl exe 53976 02-11-2000 18:35 login exe 10084 02-11-2000 18:25 edit exe 64344 07-27-1993 18:03 3c5x9pd com 12352 06-18-1993 11:39 15 files 424 222 bytes Total files listed: 22 files 561 721 bytes 156 672 bytes free Everything is in place, but it doesn't work. Ask for missing details. Any hints and ideas are welcome. Thanks for listening Hans-Peter =========================================================================== This Mail was sent to netboot mailing list by: hpj.lisa@t-online.de (Hans-Peter Jansen) To get help about this list, send a mail with 'help' as the only string in it's body to majordomo@baghira.han.de. If you have problems with this list, send a mail to netboot-owner@baghira.han.de.
For requests or suggestions regarding this mailing list archive please write to netboot@gkminix.han.de.