Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

How does a DOS/Windows boot sector locate io.sys?

385 views
Skip to first unread message

Bernd Finger

unread,
Oct 15, 2000, 3:00:00 AM10/15/00
to
Hi,
Who can tell me more on this, maybe a URL? Does the DOS/Windows boot
sector have a FAT file system software in it to be able to locate
io.sys? Or does io.sys have to reside in the first sector of the active
primary partition?

I got weird results when trying to boot Windows Me with V
Communication's System Commander 4.02: I copied io.sys from the WinMe CD
to C: (after deleting the previous version), then used the attrib
command to create attributes S, H, and R, and after I added a new entry
in the boot menu and attempted to boot WinMe from System Commander, I
received errors. After booting successfully Win95 again, I saw two (!)
io.sys files!

Regards,

Bernd


Mark Hoedemaeker

unread,
Oct 15, 2000, 3:00:00 AM10/15/00
to

true, you copied the boot file to the root but the file did not integrate on
the mbr( master boot record) therefore it will not be used to boot, and the
bootsequence will use the present io.sys that is integrated in the mbr. if
you want to use a new mbr enter from any drive (except c:) sys c: this will
install a new boot set on the root of the boot sector and will be integrated
on the mbr
Hope i told you enought
Mark Hoedemaeker
Bernd Finger <bernd...@t-online.de> schreef in berichtnieuws
39E9FAB3...@t-online.de...

Rick Collins

unread,
Oct 15, 2000, 3:00:00 AM10/15/00
to

"Bernd Finger" <bernd...@t-online.de> wrote in message
news:39EA3939...@t-online.de...
> Hi Mark,
> (continuing only on comp.os.msdos.misc)

>
> Mark Hoedemaeker wrote:
>
> > true, you copied the boot file to the root but the file did not
integrate on
> > the mbr( master boot record) therefore it will not be used to
boot, and the
> > bootsequence will use the present io.sys that is integrated in the
mbr. if
> > you want to use a new mbr enter from any drive (except c:) sys c:
this will
> > install a new boot set on the root of the boot sector and will be
integrated
> > on the mbr
> > Hope i told you enought
>
> In the meantime, I found an interesting document ("How to switch
between 2
> Windows 95 Systems" -
http://home1.inet.tele.dk/ianking/docs/switch1.htm ) which
> seems to show that copying io.XXX files to io.sys is fine.
Additionally, I
> remember I deleted my two io.sys files and copied one from another
location to
> C:\ and it worked fine!
>
> So the question is: In what way does io.sys correspond to the boot
sector of the
> active primary partition (I am very sure it does not correspond to
the MBR - see
> http://www.users.intercom.com/~ranish/part/primer.htm#partitions )

Ask yourself this: Since IO.SYS is the first "DOS" file to load during
the boot process, _how_ does the system know how to find that file,
given that "directories" and "clusters" are _DOS_ creations, and DOS
isn't yet running?

That may suggest how IO.SYS relates to the primary partition.

Bernd Finger

unread,
Oct 15, 2000, 7:09:45 PM10/15/00
to
Hi Mark,
(continuing only on comp.os.msdos.misc)

Mark Hoedemaeker wrote:

> true, you copied the boot file to the root but the file did not integrate on
> the mbr( master boot record) therefore it will not be used to boot, and the
> bootsequence will use the present io.sys that is integrated in the mbr. if
> you want to use a new mbr enter from any drive (except c:) sys c: this will
> install a new boot set on the root of the boot sector and will be integrated
> on the mbr
> Hope i told you enought

In the meantime, I found an interesting document ("How to switch between 2
Windows 95 Systems" - http://home1.inet.tele.dk/ianking/docs/switch1.htm ) which
seems to show that copying io.XXX files to io.sys is fine. Additionally, I
remember I deleted my two io.sys files and copied one from another location to
C:\ and it worked fine!

So the question is: In what way does io.sys correspond to the boot sector of the
active primary partition (I am very sure it does not correspond to the MBR - see
http://www.users.intercom.com/~ranish/part/primer.htm#partitions )

Regards,

Bernd

Bernd Finger

unread,
Oct 16, 2000, 3:00:00 AM10/16/00
to
Rick,

Rick Collins wrote:

> Ask yourself this: Since IO.SYS is the first "DOS" file to load during
> the boot process, _how_ does the system know how to find that file,
> given that "directories" and "clusters" are _DOS_ creations, and DOS
> isn't yet running?

Exactly. That's what I asked.


> That may suggest how IO.SYS relates to the primary partition.

Unfortunately not: Either could it be that the boot sector of the primary
partition contains a minimum FAT code, or it contains a compiled or
otherwise translated io.sys, or it contains code that jumps to the first
sector of io.sys, or ...

Who can tell me details?

Regards,

Bernd


Rick Collins

unread,
Oct 16, 2000, 3:00:00 AM10/16/00
to

"Bernd Finger" <bernd...@t-online.de> wrote in message
news:39EB5AEA...@t-online.de...

> Rick,
>
> Rick Collins wrote:
>
> > Ask yourself this: Since IO.SYS is the first "DOS" file to load
during
> > the boot process, _how_ does the system know how to find that
file,
> > given that "directories" and "clusters" are _DOS_ creations, and
DOS
> > isn't yet running?
>
> Exactly. That's what I asked.
>
>
> > That may suggest how IO.SYS relates to the primary partition.
>
> Unfortunately not: Either could it be that the boot sector of the

primary
> partition contains a minimum FAT code, or it contains a compiled or
> otherwise translated io.sys, or it contains code that jumps to the
first
> sector of io.sys, or ...
>
> Who can tell me details?

It's the latter. Can't be a FAT - the FAT is a DOS creation. Can't be
a "translated io.sys" - that's a DOS file.

Martin Stromberg

unread,
Oct 17, 2000, 3:00:00 AM10/17/00
to
Bernd Finger (bernd...@t-online.de) wrote:
: Unfortunately not: Either could it be that the boot sector of the primary

: partition contains a minimum FAT code, or it contains a compiled or
: otherwise translated io.sys, or it contains code that jumps to the first
: sector of io.sys, or ...

: Who can tell me details?

<http://www.kzin.com/> can.


Right,

MartinS

Mike Jones

unread,
Oct 17, 2000, 3:00:00 AM10/17/00
to

"Rick Collins" <ab...@debbs.ndhq.dnd.ca> wrote in message
news:8sg376$ibu$2...@gps4.ndhq.dnd.ca...

>
> "Bernd Finger" <bernd...@t-online.de> wrote in message
> news:39EB5AEA...@t-online.de...
> > Rick,
> >
> > Rick Collins wrote:
> >
> > > Ask yourself this: Since IO.SYS is the first "DOS" file to load
> during
> > > the boot process, _how_ does the system know how to find that
> file,
> > > given that "directories" and "clusters" are _DOS_ creations, and
> DOS
> > > isn't yet running?
> >
> > Exactly. That's what I asked.
> >
> >
> > > That may suggest how IO.SYS relates to the primary partition.
> >
> > Unfortunately not: Either could it be that the boot sector of the

> primary
> > partition contains a minimum FAT code, or it contains a compiled or
> > otherwise translated io.sys, or it contains code that jumps to the
> first
> > sector of io.sys, or ...
> >
> > Who can tell me details?
>
> It's the latter. Can't be a FAT - the FAT is a DOS creation. Can't be
> a "translated io.sys" - that's a DOS file.


For reasons as yet unclear to me it *still* has to be named IO.SYS (as well
as starting in the first logical sector)

Anyone know why?

Bernd Finger

unread,
Oct 17, 2000, 3:00:00 AM10/17/00
to
Rick,

Rick Collins wrote:

> > > That may suggest how IO.SYS relates to the primary partition.
> >
> > Unfortunately not: Either could it be that the boot sector of the
> primary
> > partition contains a minimum FAT code, or it contains a compiled or
> > otherwise translated io.sys, or it contains code that jumps to the
> first
> > sector of io.sys, or ...
> >
> > Who can tell me details?
>
> It's the latter. Can't be a FAT - the FAT is a DOS creation. Can't be
> a "translated io.sys" - that's a DOS file.

I was told in another newsgroup that the boot sector of the primary
partition contains - among others - the disk block number of the location
of IO.SYS in this partition, and that SYS C: copies IO.SYS to drive C:
AND modifies the boot sector of the corresponding partition to be able to
locate IO.SYS. I doubt that it has to be in a specific sector - otherwise
the boot sector could always remain as it is.

So if this is true, I am now looking for a freeware boot manager that is
able to write arbitrary boot sector files into boot sectors as well as
important operating system files to the root directory. Anyone aware of
such a tool? I though about updating my System Commander Deluxe 4.02 to
System Commander 2000, but maybe for the next operating system I need
another update and that's what I would like to avoid.

Thanks a lot so far,

Bernd

Bernd Finger

unread,
Oct 17, 2000, 3:00:00 AM10/17/00
to
Hi all,

Mike Jones wrote:

> For reasons as yet unclear to me it *still* has to be named IO.SYS (as well
> as starting in the first logical sector)

If IO.SYS had to be located starting in the first logical sector, then all DOS
boot sectors would probably be the same - but there are several versions.

So the absolute truth is still to be found...

Maybe there's a sourcecode of a SYS.COM program available in the web? I'll try
to find one...

Regards,

Bernd


Bernd Finger

unread,
Oct 17, 2000, 3:00:00 AM10/17/00
to
Martin,

I was lucky to find a MSKB article, Q66530, "SYS.COM Requirements in MS-DOS
versions 2.0-6.0", which shows that the SYS.COM versions differ significantly.
Maybe there's another detailed description of the boot process of all the
Windows releases? (The Win95 boot description which I found on
http://www.microsoft.com/TechNet/win95/tips/w9p9744.asp , is not exactly
describing the conditions and relation between boot sector and IO.SYS files)

Now here's the URL which describes in detail SYS.COM functionality for DOS 2.0
to 6.0:
http://support.microsoft.com/support/kb/articles/q66/5/30.asp

It says,
"SYS.COM copies the hidden system files from the default drive to the
specified destination drive and updates the boot sector of the destination
drive. Each version of SYS only recognizes system files that have the same
filenames as its version of MS-DOS. The MS-DOS boot sequence requires
that the system files be the first files in the disk data area, that they be
contiguous (that is, not fragmented), and that they occupy the first two
entries in the root directory."

"SYS copies the files to the destination if there is empty space for them at
the beginning of the disk. If the destination disk is already bootable and
its
system files have the same names, SYS replaces the existing system files.
SYS does not copy COMMAND.COM."

It also says that with DOS 5.0 and above,

"The first three sectors of IO.SYS do not need to be in
the first three sectors of the data area; however, they
must be contiguous."


This is becoming more and more crazy... I hope this nightmare will be over
soon! (Will I end in writing my own boot manager software?)


Regards,

Bernd


Rick Collins

unread,
Oct 17, 2000, 3:00:00 AM10/17/00
to

"Mike Jones" <ad...@127.0.0.1> wrote in message
news:oMVG5.8831$oD.2...@news6-win.server.ntlworld.com...

> For reasons as yet unclear to me it *still* has to be named IO.SYS
(as well
> as starting in the first logical sector)
>
> Anyone know why?

IO.SYS is what gets loaded by the DOS boot program. The DOS boot
program has to be the first thing in the boot partition, because the
_partition boot_ code looks for it there.

So, where IO.SYS "has to be" is related to what the DOS boot code
requires - and that varies with different versions of DOS.

Does that help any?

Rick Collins

unread,
Oct 17, 2000, 3:00:00 AM10/17/00
to

"Bernd Finger" <bernd...@t-online.de> wrote in message
news:39ECB487...@t-online.de...

> Martin,
>
> I was lucky to find a MSKB article, Q66530, "SYS.COM Requirements in
MS-DOS
> versions 2.0-6.0", which shows that the SYS.COM versions differ
significantly.
> Maybe there's another detailed description of the boot process of
all the
> Windows releases? (The Win95 boot description which I found on
> http://www.microsoft.com/TechNet/win95/tips/w9p9744.asp , is not
exactly
> describing the conditions and relation between boot sector and
IO.SYS files)
>
> Now here's the URL which describes in detail SYS.COM functionality
for DOS 2.0
> to 6.0:
> http://support.microsoft.com/support/kb/articles/q66/5/30.asp
>
> It says,
> "SYS.COM copies the hidden system files from the default drive to
the
> specified destination drive and updates the boot sector of the

Maybe this gets more understandable if you remember that the above is
referring to the DOS boot, not the "system" boot. The DOS boot (which
SYS updates) has to know where to find IO.SYS.

Mike Jones

unread,
Oct 18, 2000, 3:00:00 AM10/18/00
to

"Rick Collins" <ab...@debbs.ndhq.dnd.ca> wrote in message
news:8sipi3$gau$1...@gps4.ndhq.dnd.ca...

Sorry, no! I naively thought that as the boot sector code loads IO.SYS (has
to?) from the first logical sector, there was no need of a filename. It
seems from other comments on this thread that I was wrong about it the LS 0
requirement though.

Frédéric Pasteleurs

unread,
Nov 1, 2000, 6:47:40 PM11/1/00
to
Rick Collins wrote:
>
> "Bernd Finger" <bernd...@t-online.de> wrote in message
> news:39EB5AEA...@t-online.de...
> > Rick,
> >
> > Rick Collins wrote:
> >
> > > Ask yourself this: Since IO.SYS is the first "DOS" file to load
> during
> > > the boot process, _how_ does the system know how to find that
> file,
> > > given that "directories" and "clusters" are _DOS_ creations, and
> DOS
> > > isn't yet running?
> >
> > Exactly. That's what I asked.
> >
> >
> > > That may suggest how IO.SYS relates to the primary partition.
> >
> > Unfortunately not: Either could it be that the boot sector of the
> primary
> > partition contains a minimum FAT code, or it contains a compiled or
> > otherwise translated io.sys, or it contains code that jumps to the
> first
> > sector of io.sys, or ...
> >
> > Who can tell me details?
>
> It's the latter. Can't be a FAT - the FAT is a DOS creation. Can't be
> a "translated io.sys" - that's a DOS file.

The DOS BOOT sector know only the needed stuff for loading IO.SYS into
memory:
Here is how it works:

1) The BOOT sector search in the ROOT directory the file IO.SYS
If not found, then panic
2) If there is a file named IO.SYS, then the BOOT sector will keep only
the number of the first cluster of the file.
3) With this number, the BOOT sector will look into the first FAT in
order
to build the whole cluster chain for the file.
4) Once we have a list of all clusters, the BOOT sector then load all
clusters
into memory.
5) If there is no read error, the BOOT sector will perform a FAR jump
into the DOS code.

...And about directories, the BOOT sector ALWAYS assume that the file
IO.SYS is on the ROOT directory.

You can find more informations (with source code) by looking at the
FreeDOS project (http://www.freedos.org)

Frédéric Pasteleurs
metalbu...@yahoo.fr

0 new messages