What are the contents of Track 0 on a hard disk?

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

In trying to move to a new hard drive, I have noticed that
my first partition doesn't start right after the MBR. There
seem to be a few sectors after the MBR that BootMagic is
using for something. Can anyone point me to what the format
of Track 0 is?

- Tim

--
 
Spammay Blockay said:
In trying to move to a new hard drive, I have noticed that
my first partition doesn't start right after the MBR. There
seem to be a few sectors after the MBR that BootMagic is
using for something. Can anyone point me to what the format
of Track 0 is?

- Tim

Sector 0 : MBR
Sector 1 - 63 : void, but indeed sometimes used by boot managers, drive
overlay software, virtual diskettes, virii, mbr backups etc. There's no
convention on how those tools that use track 0 behave.
 
Sector 0 : MBR
Sector 1 - 63 : void, but indeed sometimes used by boot managers, drive
overlay software, virtual diskettes, virii, mbr backups etc. There's no
convention on how those tools that use track 0 behave.

Thanks! I did a Deja search after I asked, and saw you had
discussed this earlier, but this clarifies things nicely.

Also... I thought that each track usually has 63 sectors,
so track 0 would be sectors 0-62, right? Intuitively I'd
think 64 (power of 2, etc.), but all the documentation I read
says 63.

- Tim

--
 
Spammay Blockay said:
Thanks! I did a Deja search after I asked, and saw you had
discussed this earlier, but this clarifies things nicely.

Also... I thought that each track usually has 63 sectors,
so track 0 would be sectors 0-62, right? Intuitively I'd
think 64 (power of 2, etc.), but all the documentation I read
says 63.

Thats just because the total is 64, the MBR takes one.
 
That is the convention from the controller on the PC/AT. The register is 6
bits, but sectors start at 1 so there are only 63.

|
| Not so -- my partitioning software and other drive-control
| software, says "63 sectors/track". So they're ignoring the
| 1st sector of ALL tracks? That doesn't sound right.
|
 
Thats just because the total is 64, the MBR takes one.

Not so -- my partitioning software and other drive-control
software, says "63 sectors/track". So they're ignoring the
1st sector of ALL tracks? That doesn't sound right.

- Tim

--
 
Spammay said:
Not so -- my partitioning software and other drive-control
software, says "63 sectors/track". So they're ignoring the
1st sector of ALL tracks? That doesn't sound right.

- Tim

On modern HDs, the logical sector address (C/H/S) is translated
by the HD into physical C/H/S; necessary because the number of
sectors/track is not constant. 63 sectors/track has been fiction
for years.
 
On modern HDs, the logical sector address (C/H/S) is translated
by the HD into physical C/H/S; necessary because the number of
sectors/track is not constant. 63 sectors/track has been fiction
for years.

I know that there may not be actually 63 sectors/track, but
I'm talking about what your standard boot manager program
(or any other software that writes to track 0) assumes about
track size. Since the OS's idea of the disk layout is that it
has 63 sectors/track, I'd think that's what boot managers, et. al.,
would also assume, and write to track 0 accordingly. Not so?

- Tim

--
 
That is the convention from the controller on the PC/AT. The register is 6
bits, but sectors start at 1 so there are only 63.

That makes sense -- I knew there had to be SOME reason
for it! :-)

I *had* read elsewhere about the whole historical problem of
trying to stuff larger and larger disk addresses into a
traditional CHS value, and somewhere read about the 6-bits
available for that value.

WHEN, I wonder, will we drop all this old DOS nonsense and go to
values that can encompass future huge disk (and other device)
sizes? 64-bit addresses or larger? And BIOSs that know about
that as well? And NO support for this stupid legacy?

*sigh*

- Tim

--
 
I know that there may not be actually 63 sectors/track,
but I'm talking about what your standard boot manager
program (or any other software that writes to track 0)
assumes about track size.

They just use that virtual 63 sectors per track number.
Since the OS's idea of the disk
layout is that it has 63 sectors/track,

Thats not right either. The OS mostly uses logical block numbers
where sectors are in effect numbered from the start of the drive.

63 sectors per track is just the virtual CHS number for S and
modern OSs dont do that much in terms of CHS values anymore.
I'd think that's what boot managers, et. al., would
also assume, and write to track 0 accordingly.

Yes, and there is no downside with just using the conservative number of
63 when only the first physical sector is quite rigidly defined as far as what
its used for and the rest of that track isnt in theory used at all in a formally
specified sense and the various boot managers/bios overlays/virtual boot
systems all basically do their own thing with the sectors in that track.

At most they attempt to not stomp on
other stuff using some of those sectors too.

Yes, but thats a different issue to what the OS does.
 
Spammay Blockay said:
has 63 sectors/track, I'd think that's what boot managers, et. al.,
would also assume, and write to track 0 accordingly. Not so?

No, every now and then I see systems (I suspect SCSI) using a cccc cyl / hhh
heads / *32* sect geometry, so one should not assume 63 sectors per track.
 
Correct, although not necessarily. Depends on translation method.

Nope, 1-63.

Because 0 isn't used so it is (2power6)-1, base 1.

Nonsense. CHS sector 0 does not exist, S is base 1, not 0.
LBA is base 0.
Not so -- my partitioning software and other drive-control
software, says "63 sectors/track". So they're ignoring the
1st sector of ALL tracks? That doesn't sound right.

It doesn't, indeed.
 
Joep said:
Sector 0 : MBR

That is either sector 1 (0/0/1) or LBA 0.
Sector 1 - 63 : void,

Make that sector 2 - 63 (0/0/2 - 0/0/63)
but indeed sometimes used by boot managers, drive overlay
software, virtual diskettes, virii, mbr backups etc. There's
no convention on how those tools that use track 0 behave.

Including MBR and other bootrecords.
 
Spammay Blockay said:
That makes sense -- I knew there had to be SOME reason for it! :-)

I *had* read elsewhere about the whole historical problem of
trying to stuff larger and larger disk addresses into a
traditional CHS value, and somewhere read about the 6-bits
available for that value.

That has actually never been different.
The difference is in the heads value for the software side of
the bios (Int13) and in the cylinder value on the hardware
side of the bios (ATA commands). Both are limited to 8GB.
WHEN, I wonder, will we drop all this old DOS nonsense and go
to values that can encompass future huge disk (and other device)
sizes? 64-bit addresses or larger?
LBA.

And BIOSs that know about that as well?

Int13 extended.
And NO support for this stupid legacy?

Already happened too. Well, partially.
CHS translation is no longer defined in ATA-6 and later
so there goes 'Bit Shift' or 'Large' or 'Extended CHS'.

Of course Int13 still exists so LBA Assist translation will still
be with us for a while longer for applications that use CHS.

And it is a typical MoBo legacy thing that no one really understands
well. No add-in controller offers choice for CHS translation.
They either get it right or you are forced to start from scratch.

SCSI controllers offer just a fixed value for new partitioning and
read whatever is on the partioned drive MBR when already partitioned.
I'll assume that add-in ATA controllers do the same thing and offer an
LBA Assist translation value when not partitioned and make a calculated
guess on what translation type was used with the CHS found in the MBR.
 
Joep said:
No, every now and then I see systems (I suspect SCSI) using a cccc cyl / hhh
heads / *32* sect geometry, so one should not assume 63 sectors per track.

That is the old 1 GB limited SCSI bios.

With IDE, if the drive is bigger than 528MB, per T10
specification you should expect 63 sectors per track.
 
Spammay Blockay said:
That makes sense -- I knew there had to be SOME reason
for it! :-)

I *had* read elsewhere about the whole historical problem of
trying to stuff larger and larger disk addresses into a
traditional CHS value, and somewhere read about the 6-bits
available for that value.

WHEN, I wonder, will we drop all this old DOS nonsense and go to
values that can encompass future huge disk (and other device) sizes?

Thats basically happened.
64-bit addresses or larger?

48 bit is fine.
And BIOSs that know about that as well?

They do already. Thats what the AUTO setting is for.
And NO support for this stupid legacy?

Heavy breathing aint gunna help.
 
Thats basically happened.

Not to the extent that you need not worry about boot boundaries.
As far as I know, for example, the standard boot code on Win2K
and NT can't boot beyond some boundary or other (2 or 4 gig, I think).
If that's no longer true, then I'd like to know.

- Tim

--
 
Win NT was limited to the first 4GB, Win 2K+ can do up to 2TB using Int13
extentions.

|
| Not to the extent that you need not worry about boot boundaries.
| As far as I know, for example, the standard boot code on Win2K
| and NT can't boot beyond some boundary or other (2 or 4 gig, I think).
| If that's no longer true, then I'd like to know.
|
| - Tim
|
| --
|
 
Not to the extent that you need not worry about boot boundaries.

Yep, that problem is gone now.
As far as I know, for example, the standard boot code on Win2K and
NT can't boot beyond some boundary or other (2 or 4 gig, I think).
If that's no longer true, then I'd like to know.

Its no longer true except with the dinosaur versions of NT.

NT itself is long gone now basically.
 
Back
Top