> On 2019-4-11 13:29, Lu Wei wrote: > > On 2019-4-10 1:20, Ady Ady via Syslinux wrote: > >>>>> #This item fails > >>>>> label dos > >>>>> menu label MS-^DOS 7.1 > >>>>> com32 chain.c32 msdos7=io.sys > >>> > >>> IO.SYS and COMMAND.COM are copied from a Windows98 system on another > >>> computer, which is MSDOS7.1; and BOOTSECT.W98 is from Bootpart tool (I > >>> compared it with the one from my Windows98 system, and I think they are > >>> basically the same except label name, so I use this one), but I think if > >>> io.sys is loaded, boot sector should be of no use. I have tried "boot > >>> BOOTSECT.W98" and "bss BOOTSECT.W98" without success, so I'd like to > >>> jump over it and get to IO.SYS directly. > >> > >> > >> Would you please try using the equivalent files for FreeDOS in the USB? You > can > >> see the options for chain.c32 in the Syslinux wiki. There are at least 2 > wiki > >> pages relevant for chain.c32, so I would suggest taking a look at both of > them. > >> > > FreeDOS equivalent file of io.sys is kernel.sys, (both use command.com > > as CLI shell), and can successfully boot by: > > com32 chain.c32 freedos=kernel.sys > > > >> BTW, which exact version of SYSLINUX are you using? Is your chain.c32 from > the > >> same exact package / version? FYI, different versions should not be mixed, > and > >> the options that chain.c32 actually supports depend on the exact version > (with > >> some backward incompatibilities too). > >> > > I downloaded syslinux-6.03.zip from official site, and extracted all > > files in \bios to H:\syslinux (sub-directory structure not retained to > > reduce path command in syslinux.cfg), except later I found memdisk do > > not honor path command and moved it to root. So they must be same version. > > > I forgot to say, the error message of "com32 chain.c32 msdos7=io.sys" is: > ---------------------------------------- > BPB detection (sect): unknown > Booting... > (16 non-text strange characters) > ---------------------------------------- > Then press Esc can return to syslinux boot menu.I was tempted to reply to several side-topics you have mentioned. I'll skip them, except for one: the PATH directive is for c32 files only. I am mentioning this because some readers might interpret the phrase "memdisk do not honor path command" as if it was some kind of bug; it is not. Regarding the MSDOS 7.1 boot files... Do you still have access to that Win98 system? If you do, I would suggest searching for "io.dos" and "msdos.dos". These might be set as "hidden" and/or "system" (use attrib if needed), and there might be some additional "*.dos" file(s) too. These are the "MSDOS 7.1" boot files. The ones you got before _might_ be the "Win98" variants instead. Once copied to your USB device, you can change the filename extension from "*.dos" to "*.sys" (and "*.com" for the DOS shell). Yet, these might not be enough for a successful chainload. The MSDOS boot files require some conditions for them to be able to boot. The easiest way to achieve the adequate conditions is to create an MS-DOS 7.1 boot disk, test it, and then install SYSLINUX on it. Additional potential problems might be the C/H/S values (FreeDOS is more tolerant in this regard), and using FAT32 instead of FAT16. Yes, Win98 already supports FAT32, but I admit that I don't exactly recall which filesystem (and max size) its MS-DOS counterpart supports. Another test you could perform: build a boot floppy image with these io.sys / msdos.sys / command.com files and boot it by means of memdisk (not with chain.c32). Repeat the same with a bigger, FAT16 image. These tests could narrow down the problem, according to their results. OTOH, if FreeDOS boots correctly, perhaps it is enough for your DOS needs and you might not need "MS-DOS 7.1" anymore. Regards, Ady.
On 2019-4-12 2:48, Ady Ady via Syslinux wrote:> > I was tempted to reply to several side-topics you have mentioned. I'll skip > them, except for one: the PATH directive is for c32 files only. I am mentioning > this because some readers might interpret the phrase "memdisk do not honor path > command" as if it was some kind of bug; it is not.Thanks for the clarification. The \bios folder of release zip has so many deep sub folders so I extracted them regardless of the original folder structure, eventually put everything including memdisk into the same folder.> > Regarding the MSDOS 7.1 boot files... Do you still have access to that Win98 > system? If you do, I would suggest searching for "io.dos" and "msdos.dos". > These might be set as "hidden" and/or "system" (use attrib if needed), and > there might be some additional "*.dos" file(s) too. These are the "MSDOS 7.1" > boot files. The ones you got before _might_ be the "Win98" variants instead. >I don't have access to that Win98 system now, yet I can recall two files io.sys and command.com are sufficient for MSDOS7.1 booting; Bootsect.dos is the only ".dos" file (which I later renamed to bootsect.W98). That system installed WinXP after Win98, that's I think why there was this bootsect.dos file, because a line C:\bootsect.dos="Windows 98" in boot.ini will boot to Win98.> Once copied to your USB device, you can change the filename extension from > "*.dos" to "*.sys" (and "*.com" for the DOS shell). Yet, these might not be > enough for a successful chainload. The MSDOS boot files require some conditions > for them to be able to boot. The easiest way to achieve the adequate conditions > is to create an MS-DOS 7.1 boot disk, test it, and then install SYSLINUX on it. >Follow your suggestion, I used Rufus to create a MSDOS8 (the only version it supports on XP) boot disk, tested it OK. Then before installing Syslinux, I copied MSDOS 7.1 file io.sys and command.com over, and it fails to boot. I copied MSDOS 8 files back, and it can boot again. Then I installed Syslinux, but "msdos7=io.sys" option still did not work (lots of strange characters scrolling up and even ctrl+alt+del can not stop).> Additional potential problems might be the C/H/S values (FreeDOS is more > tolerant in this regard), and using FAT32 instead of FAT16. Yes, Win98 already > supports FAT32, but I admit that I don't exactly recall which filesystem (and > max size) its MS-DOS counterpart supports. > >From experiment above, maybe MSDOS8 (WinME) supports FAT32 better, butSyslinux cannot boot it either.> Another test you could perform: build a boot floppy image with these io.sys / > msdos.sys / command.com files and boot it by means of memdisk (not with > chain.c32). Repeat the same with a bigger, FAT16 image. >Floppy image could boot using memdisk without problem.> These tests could narrow down the problem, according to their results. > > OTOH, if FreeDOS boots correctly, perhaps it is enough for your DOS needs and > you might not need "MS-DOS 7.1" anymore. >I think you are right, FreeDOS seems not so picky in booting as MSDOS. Although I haven't used FreeDOS before, I guess most things should work. -- Regards, Lu Wei IM: xmpp:luweitest at riotcat.org PGP: 0xA12FEF7592CCE1EA
On at 2019-04-12 11:28 +0800, Lu Wei via Syslinux wrote:>> Regarding the MSDOS 7.1 boot files... Do you still have access to that Win98 >> system? If you do, I would suggest searching for "io.dos" and "msdos.dos". >> These might be set as "hidden" and/or "system" (use attrib if needed), and >> there might be some additional "*.dos" file(s) too. These are the "MSDOS 7.1" >> boot files. The ones you got before _might_ be the "Win98" variants instead. >> > > I don't have access to that Win98 system now, yet I can recall two files > io.sys and command.com are sufficient for MSDOS7.1 booting; Bootsect.dos > is the only ".dos" file (which I later renamed to bootsect.W98). That > system installed WinXP after Win98, that's I think why there was this > bootsect.dos file, because a line > C:\bootsect.dos="Windows 98" > in boot.ini will boot to Win98. > >> Once copied to your USB device, you can change the filename extension from >> "*.dos" to "*.sys" (and "*.com" for the DOS shell). Yet, these might not be >> enough for a successful chainload. The MSDOS boot files require some conditions >> for them to be able to boot. The easiest way to achieve the adequate conditions >> is to create an MS-DOS 7.1 boot disk, test it, and then install SYSLINUX on it. >> > Follow your suggestion, I used Rufus to create a MSDOS8 (the only > version it supports on XP) boot disk, tested it OK. Then before > installing Syslinux, I copied MSDOS 7.1 file io.sys and command.com > over, and it fails to boot. I copied MSDOS 8 files back, and it can boot > again. Then I installed Syslinux, but "msdos7=io.sys" option still did > not work (lots of strange characters scrolling up and even ctrl+alt+del > can not stop). > >> Additional potential problems might be the C/H/S values (FreeDOS is more >> tolerant in this regard), and using FAT32 instead of FAT16. Yes, Win98 already >> supports FAT32, but I admit that I don't exactly recall which filesystem (and >> max size) its MS-DOS counterpart supports. >> >>From experiment above, maybe MSDOS8 (WinME) supports FAT32 better, but > Syslinux cannot boot it either.MSDOS.DOS and IO.DOS are created when installing MSWindows 4.x to a FAT16 FS partition with MS-DOS 5.x/6.x already installed. They contain the parts of the "old MS-DOS" kernel, which is only FAT16-capable. There is only one actual IO.SYS per Windows version. (MSDOS.SYS is a configuration file instead of a kernel part, for these versions.) MS-DOS 7.10 (first appearing in MSW 95 OSR2, later re-used in MSW 98 and 98 SE) and 8.00 (MSW Me, and MSW XP DOS boot diskettes) both support FAT32 equally well. MS-DOS 8.00 (without some patches that are around) only supports booting in DOS mode from diskettes. Hard disk booting only succeeds when directly passing control to the Windows loader. Regards, ecm