A couple of days I posed a problem to the list. I have found the solution. The problem was why I could not boot a 286 to fetch a DOS ramdisk whereas I was able to do that on a 386. The answer is that I was loading the "boot PROM" from a floppy. When I burnt the "boot PROM" onto an EPROM, it worked fine. I don't understand it fully, but my guess is that the DOS that was loaded from the floppy intercepted some interrupts, in particular INT 2F. So the setup code wasn't starting from a clean slate. I think the 386 has hooks in the BIOS for handling INT 2F so the DOS kernel left that alone. This may or may not explain why some people have problems netbooting DOS. If it doesn't work from a floppy, try burning an EPROM anyway. Anyway, now I have a 286 that has just a network card and a parallel port and running as a print server. The whole story is at http://www.syd.dit.csiro.au/staff/ken/personal/etherboot/atnetboot.html Gero, here is a patch to mknbi-dos/openrd.c to cater for OPENDOS floppy images. Also, any chance of allowing a "floppy size" to be specified to mknbi-dos instead of defaulting to 1.44 Mb when creating from a directory? --- /proj/linux/local/sysutil/netboot/mknbi-dos/openrd.c Fri Jun 13 07:58:05 1997 +++ ./openrd.c Wed Jun 18 22:45:58 1997 @@ -223,6 +223,10 @@ (!strncmp(fsp->name, "IO ", 8) || !strncmp(fsp->name, "MSDOS ", 8))) fsp->attrib |= ATTR_HIDDEN + ATTR_SYSTEM + ATTR_READONLY; + if (!strncmp(fsp->ext, "COM", 3) && + (!strncmp(fsp->name, "IBMBIO ", 8) || + !strncmp(fsp->name, "IBMDOS ", 8))) + fsp->attrib |= ATTR_HIDDEN + ATTR_SYSTEM + ATTR_READONLY; strcpy(fsp->path, tmppath); fsp->size = (unsigned long)sbuf.st_size; fsp->next = dsp->files; @@ -281,13 +285,15 @@ + (CLUST_SIZE - 1)) / CLUST_SIZE; /* Check that the MSDOS system files are present */ - if ((fsp = findfile(root_dir, "MSDOS ", "SYS")) == NULL) { - fprintf(stderr, "%s: Cant find msdos.sys in %s\n", progname, path); + if ((fsp = findfile(root_dir, "MSDOS ", "SYS")) == NULL && + (fsp = findfile(root_dir, "IBMDOS ", "COM")) == NULL) { + fprintf(stderr, "%s: Cant find msdos.sys or ibmdos.com in %s\n", progname, path); exit(EXIT_FAILURE); } movefirst(root_dir, fsp); - if ((fsp = findfile(root_dir, "IO ", "SYS")) == NULL) { - fprintf(stderr, "%s: Cant find io.sys in %s\n", progname, path); + if ((fsp = findfile(root_dir, "IO ", "SYS")) == NULL && + (fsp = findfile(root_dir, "IBMBIO ", "COM")) == NULL) { + fprintf(stderr, "%s: Cant find io.sys or ibmbio.com in %s\n", progname, path); exit(EXIT_FAILURE); } movefirst(root_dir, fsp);
For requests or suggestions regarding this mailing list archive please write to netboot@gkminix.han.de.