A computer components & hardware forum. HardwareBanter

If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

Go Back   Home » HardwareBanter forum » General Hardware & Peripherals » Storage (alternative)
Site Map Home Register Authors List Search Today's Posts Mark Forums Read Web Partners

Hard Drive Geometry 101



 
 
Thread Tools Display Modes
  #1  
Old November 18th 09, 06:52 PM posted to comp.sys.ibm.pc.hardware.storage
Al[_4_]
external usenet poster
 
Posts: 22
Default Hard Drive Geometry 101

Hi Folks,

I am hoping some kind people on this NG could help me better
understand HDD Geometry. Dont get me wrong I have done some googling,
and read some wiki's - but some parts are still very blurry. I have
also used the man command since most of what I am doing is in linux.

Most of my questions have been brought about by various LInux tools I
have been experimenting with, such as testdisk, mount, and fdisk.

I will outline what I understand so far, if any of these statements
are wrong please let me know.

I understand so far:
That hard disks have physical geometry CHS, but modern hard disk CHS
bears no direct relationship to the physical geometry of the disk. I
think the modern CHS is sometimes called Psuedo CHS.

C and H numbering starts at 0, but S starts at 1.

The the definition of a sector (on the physical disk anyway) is a
strip extending from the center of the platter to the edge. And a
block is the intersection of a cylinder and a sector. Sometimes use
the terms block and sector to mean the same thing (block).

Block usually 512 bytes.

With read hard disk geometry C*H*S = number of blocks
Thus number of blocks * 512 = disk size?

Is there a relationship mathmatically, size wise, between a block and
a sector? ie 4 blocks = 1 sector or whatever?

Now to involve some real world data:

al@al-ubuntu:~$ sudo fdisk -l
[sudo] password for al:

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xaf010487

Device Boot Start End Blocks Id System
/dev/sda1 * 1 121601 976760001 83 Linux

I know that start and end are cylinder values and I assume that blocks
is the size of the partition in blocks. Assuming I was correct before
when I stated that blocks are 512 bytes in size, then:

976760001 * 512 bytes = disk size in bytes - but it doesnt, it equals
500101120512 bytes which is way off 1000204886016 bytes from the
header in fdisk. Why?

From fdisk headerline "255 heads, 63 sectors/track, 121601 cylinders"
- now using C*H*S = number of blocks

121601 * 255 * 63 = 1953520065 blocks
and because 512 bytes to a block:
512 * 1953520065 = 1000202273280 bytes (which should be the same as
the disk size given in the fdisk header line "1000204886016 bytes" but
it isnt. Why?)

The same disk:

TestDisk 6.10, Data Recovery Utility, July 2008
Christophe GRENIER
http://www.cgsecurity.org

Disk /dev/sda - 1000 GB / 931 GiB - CHS 121601 255 63
Current partition structu
Partition Start End Size in sectors

1 * Linux 0 1 1 121600 254 63 1953520002

Now start and end are full CHS values and we can also see the size of
the partition in sectors. I have been told that:

(255 * 63 * 121601) - (63 * 1) = 1953520002

Which is the size in sectors. But I dont quite understand the
calculations.

In its simplest form the End CHS size - Start CHS size = size of
partition (True/False?)

Because of numbering starting at 0 start end CHS values in calculation
a
121601,255,63 (True/False?)

Start CHS values, by the same reasoning should be:
0,2,2 (Clearly this is not whats used in the calculation - why?)

Well this has been a long post, and I suspect the answer will raise
more questions.

Thanks in advance for any replies.

-Al











  #2  
Old November 18th 09, 08:29 PM posted to comp.sys.ibm.pc.hardware.storage
Grant[_4_]
external usenet poster
 
Posts: 20
Default Hard Drive Geometry 101

On Wed, 18 Nov 2009 10:52:53 -0800 (PST), Al wrote:

Hi Folks,

I am hoping some kind people on this NG could help me better
understand HDD Geometry. Dont get me wrong I have done some googling,
and read some wiki's - but some parts are still very blurry. I have
also used the man command since most of what I am doing is in linux.

Most of my questions have been brought about by various LInux tools I
have been experimenting with, such as testdisk, mount, and fdisk.

I will outline what I understand so far, if any of these statements
are wrong please let me know.

I understand so far:
That hard disks have physical geometry CHS, but modern hard disk CHS
bears no direct relationship to the physical geometry of the disk. I
think the modern CHS is sometimes called Psuedo CHS.


Er, LBA -- Logical Block Addressing?

C and H numbering starts at 0, but S starts at 1.

The the definition of a sector (on the physical disk anyway) is a
strip extending from the center of the platter to the edge. And a
block is the intersection of a cylinder and a sector. Sometimes use
the terms block and sector to mean the same thing (block).

Block usually 512 bytes.


1024 bytes for modern linux fdisk.

With read hard disk geometry C*H*S = number of blocks
Thus number of blocks * 512 = disk size?

Is there a relationship mathmatically, size wise, between a block and
a sector? ie 4 blocks = 1 sector or whatever?


There's different block sizes, depending on usage. Filesystem may
allocate space in 1k or 4k (or larger?) blocks depending on partition
size.

Now to involve some real world data:

al@al-ubuntu:~$ sudo fdisk -l
[sudo] password for al:

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xaf010487

Device Boot Start End Blocks Id System
/dev/sda1 * 1 121601 976760001 83 Linux

I know that start and end are cylinder values and I assume that blocks
is the size of the partition in blocks. Assuming I was correct before
when I stated that blocks are 512 bytes in size, then:

976760001 * 512 bytes = disk size in bytes - but it doesnt, it equals
500101120512 bytes which is way off 1000204886016 bytes from the
header in fdisk. Why?


Forget CHS -- the important number for large disks is the 8225280
bytes per cylinder.

Look at fdisk's 'x' mode display? It shows the uninterpreted sizes:

Command (m for help): p

Disk /dev/sda: 80.0 GB, 80025280000 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x45e0afb2

Device Boot Start End Blocks Id System
/dev/sda1 1 1024 8225248+ 83 Linux
/dev/sda2 1025 2048 8225280 83 Linux
/dev/sda3 * 2049 3072 8225280 83 Linux
/dev/sda4 3073 9728 53464320 5 Extended
/dev/sda5 3073 3200 1028128+ 82 Linux swap
/dev/sda6 3201 3968 6168928+ 83 Linux
/dev/sda7 3969 4736 6168928+ 83 Linux
/dev/sda8 4737 9728 40098208+ 83 Linux

Command (m for help): x

Expert command (m for help): p

Disk /dev/sda: 255 heads, 63 sectors, 9729 cylinders

Nr AF Hd Sec Cyl Hd Sec Cyl Start Size ID
1 00 1 1 0 254 63 1023 63 16450497 83
2 00 254 63 1023 254 63 1023 16450560 16450560 83
3 80 254 63 1023 254 63 1023 32901120 16450560 83
4 00 254 63 1023 254 63 1023 49351680 106928640 05
5 00 254 63 1023 254 63 1023 63 2056257 82
6 00 254 63 1023 254 63 1023 63 12337857 83
7 00 254 63 1023 254 63 1023 63 12337857 83
8 00 254 63 1023 254 63 1023 63 80196417 83

Grant.
--
http://bugsplatter.id.au
  #3  
Old November 18th 09, 08:56 PM posted to comp.sys.ibm.pc.hardware.storage
Al[_4_]
external usenet poster
 
Posts: 22
Default Hard Drive Geometry 101

On Nov 19, 9:29*am, Grant wrote:
Forget CHS -- the important number for large disks is the 8225280
bytes per cylinder.


Can you use the 8225280 bytes per cylinder with total number of
cylinders to calculate disk size?


Look at fdisk's 'x' mode display? *It shows the uninterpreted sizes:

Command (m for help): p

Disk /dev/sda: 80.0 GB, 80025280000 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x45e0afb2


ie: Why does the 8225280 * 9729 not equal 8002528000 bytes???

After all its the cylinder size * number of cylinders???

-Al
  #4  
Old November 18th 09, 08:57 PM posted to comp.sys.ibm.pc.hardware.storage
Al[_4_]
external usenet poster
 
Posts: 22
Default Hard Drive Geometry 101

a sector? ie 4 blocks = 1 sector or whatever?

There's different block sizes, depending on usage. *Filesystem may
allocate space in 1k or 4k (or larger?) blocks depending on partition
size.


So are you saying block size is a function of File System?

-Al



  #5  
Old November 18th 09, 10:41 PM posted to comp.sys.ibm.pc.hardware.storage
Rod Speed
external usenet poster
 
Posts: 8,559
Default Hard Drive Geometry 101

Al wrote:
a sector? ie 4 blocks = 1 sector or whatever?


There's different block sizes, depending on usage. Filesystem may
allocate space in 1k or 4k (or larger?) blocks depending on partition
size.


So are you saying block size is a function of File System?


Yep.


  #6  
Old November 18th 09, 10:41 PM posted to comp.sys.ibm.pc.hardware.storage
Rod Speed
external usenet poster
 
Posts: 8,559
Default Hard Drive Geometry 101

Al wrote:

Hi Folks,


Lo Folky,

I am hoping some kind people on this NG could help me better understand HDD Geometry.


What about the unkind ones ?

Dont get me wrong I have done some googling, and read some
wiki's - but some parts are still very blurry. I have also used the
man command since most of what I am doing is in linux.


Most of my questions have been brought about by various LInux tools
I have been experimenting with, such as testdisk, mount, and fdisk.


I will outline what I understand so far, if any of these statements
are wrong please let me know.


I understand so far:
That hard disks have physical geometry CHS,


Not in the sense that all cylinders have the same number of sectors per track.

Today, the sectors per track varys in bands across the platter.

but modern hard disk CHS bears no direct
relationship to the physical geometry of the disk.


Correct. And CHS values arent necessarily used for
access either, its more usual to use logical blocks today.

The drive itself converts that to a particular CHS value.

I think the modern CHS is sometimes called Psuedo CHS.


Or logical CHS.

C and H numbering starts at 0, but S starts at 1.


The the definition of a sector (on the physical disk anyway)
is a strip extending from the center of the platter to the edge.


Nope, that is completely wrong. A sector is part of
a track and tracks are concentric circles on the platter.

A cylinder is a collection of tracks at the same distance from
the center of the platter, one track per platter side/per head.

And a block is the intersection of a cylinder and a sector.


Nope, a block is just a sector at the physical drive level.

Sometimes use the terms block and sector to mean the same thing (block).


Same thing (sector) actually.

Block usually 512 bytes.


Not with Linux file systems.

With read hard disk geometry C*H*S = number of blocks
Thus number of blocks * 512 = disk size?


Yes.

Is there a relationship mathmatically, size wise, between
a block and a sector? ie 4 blocks = 1 sector or whatever?


A block is just one sector at the physical drive level.

Now to involve some real world data:


al@al-ubuntu:~$ sudo fdisk -l
[sudo] password for al:


Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xaf010487


Device Boot Start End Blocks Id System
/dev/sda1 * 1 121601 976760001 83 Linux


I know that start and end are cylinder values and I assume that blocks
is the size of the partition in blocks. Assuming I was correct before
when I stated that blocks are 512 bytes in size, then:


976760001 * 512 bytes = disk size in bytes - but it doesnt, it equals
500101120512 bytes which is way off 1000204886016 bytes from the
header in fdisk. Why?


You should have mulitiplied by 1024 instead of 512.

From fdisk headerline "255 heads, 63 sectors/track, 121601 cylinders"
- now using C*H*S = number of blocks

121601 * 255 * 63 = 1953520065 blocks


Nope, sectors.

and because 512 bytes to a block:
512 * 1953520065 = 1000202273280 bytes (which should be the same as
the disk size given in the fdisk header line "1000204886016 bytes" but
it isnt. Why?)


Because the linux block is 1024

The same disk:


TestDisk 6.10, Data Recovery Utility, July 2008
Christophe GRENIER
http://www.cgsecurity.org


Disk /dev/sda - 1000 GB / 931 GiB - CHS 121601 255 63
Current partition structu
Partition Start End Size in sectors


1 * Linux 0 1 1 121600 254 63 1953520002


Now start and end are full CHS values and we can also see the size of
the partition in sectors. I have been told that:


(255 * 63 * 121601) - (63 * 1) = 1953520002


Which is the size in sectors. But I dont quite understand the calculations.


Its 255 instead of 254 because the cylinder numbering starts at 0

In its simplest form the End CHS size - Start CHS size = size of partition (True/False?)


Falso.

Because of numbering starting at 0 start end CHS values in calculation
a
121601,255,63 (True/False?)


True with the 255, but its more complicated than that.

Start CHS values, by the same reasoning should be:
0,2,2


Nope, those dont start at 0, they start at 1.

(Clearly this is not whats used in the calculation - why?)


Well this has been a long post, and I suspect the answer will raise more questions.


Thanks in advance for any replies.


Even ones that tell you to shove your head up a dead bear's arse ?


  #7  
Old November 19th 09, 03:52 AM posted to comp.sys.ibm.pc.hardware.storage
Al[_4_]
external usenet poster
 
Posts: 22
Default Hard Drive Geometry 101

On Nov 19, 11:41*am, "Rod Speed" wrote:
Al wrote:
Hi Folks,


C and H numbering starts at 0, but S starts at 1.
The the definition of a sector (on the physical disk anyway)
is a strip extending from the center of the platter to the edge.


Nope, that is completely wrong. A sector is part of
a track and tracks are concentric circles on the platter.


Not in this picture it isnt sunshine : http://en.wikipedia.org/wiki/Cylinder-head-sector
its a pie shaped slice from the center.



Block usually 512 bytes.


Not with Linux file systems.


So why does the header from fdisk say "Units = cylinders of 16065 *
512 = 8225280 bytes" - note the 512 value.


With read hard disk geometry C*H*S = number of blocks
Thus number of blocks * 512 = disk size?


Yes.

Is there a relationship mathmatically, size wise, between
a block and a sector? ie 4 blocks = 1 sector or whatever?


A block is just one sector at the physical drive level.


So a block and a sector are the same thing?


Now to involve some real world data:
al@al-ubuntu:~$ sudo fdisk -l
[sudo] password for al:
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xaf010487
* Device Boot * * *Start * * * * End * * *Blocks * Id *System
/dev/sda1 * * * * * * * 1 * * *121601 * 976760001 * 83 *Linux
I know that start and end are cylinder values and I assume that blocks
is the size of the partition in blocks. Assuming I was correct before
when I stated that blocks are 512 bytes in size, then:
976760001 * 512 bytes = disk size in bytes - but it doesnt, it equals
500101120512 bytes which is way off 1000204886016 bytes from the
header in fdisk. Why?


You should have mulitiplied by 1024 instead of 512.


976760001 * 1024 = 1000202241024 which is still not equal to
1000204886016.


From fdisk headerline "255 heads, 63 sectors/track, 121601 cylinders"
- now using C*H*S = number of blocks


121601 * 255 * 63 = 1953520065 blocks


Nope, sectors.


C*H*S according to the wiki gives the size in blocks :
http://en.wikipedia.org/wiki/Cylinde...CHS_Addressing - I
guess thats another area where the wiki disagrees with you?


and because 512 bytes to a block:
512 * 1953520065 = 1000202273280 bytes (which should be the same as
the disk size given in the fdisk header line "1000204886016 bytes" but
it isnt. Why?)


Because the linux block is 1024


Again even if I use 1024 * 1953520065 = 1000202273280 which is still
not equal to fdisk header line "1000204886016 bytes" - can you
explain that?


The same disk:
TestDisk 6.10, Data Recovery Utility, July 2008
Christophe GRENIER
http://www.cgsecurity.org
Disk /dev/sda - 1000 GB / 931 GiB - CHS 121601 255 63
Current partition structu
* * Partition * * * * * * * * *Start * * * *End * *Size in sectors
1 * Linux * * * * * * * * * *0 * 1 *1 121600 254 63 1953520002
Now start and end are full CHS values and we can also see the size of
the partition in sectors. I have been told that:
(255 * 63 * 121601) - (63 * 1) = 1953520002
Which is the size in sectors. But I dont quite understand the calculations.


Its 255 instead of 254 because the cylinder numbering starts at 0

In its simplest form the End CHS size - Start CHS size = size of partition (True/False?)


Falso.


Why?


Because of numbering starting at 0 start end CHS values in calculation
a
121601,255,63 (True/False?)


True with the 255, but its more complicated than that.

Start CHS values, by the same reasoning should be:
0,2,2


Nope, those dont start at 0, they start at 1.


Al

  #8  
Old November 19th 09, 04:19 AM posted to comp.sys.ibm.pc.hardware.storage
Franc Zabkar
external usenet poster
 
Posts: 1,118
Default Hard Drive Geometry 101

On Wed, 18 Nov 2009 10:52:53 -0800 (PST), Al put
finger to keyboard and composed:

I understand so far:
That hard disks have physical geometry CHS, but modern hard disk CHS
bears no direct relationship to the physical geometry of the disk.


In the early 1990s, drives already began to support address
translation where you could specify any logical CHS combination that
didn't exceed a drive's capacity. The drive would then perform its own
internal conversion to physical CHS values.

The the definition of a sector (on the physical disk anyway) is a
strip extending from the center of the platter to the edge.


Nowadays drives use Zone Bit Recording. Each zone has a constant
number of sectors/track, with the outermost zone having the most, and
the innermost zone the least. This equalises the bit densities across
the surface of the platter.

See http://en.wikipedia.org/wiki/Zone_bit_recording

Here is an excellent, in-depth technical article on modern hard
drives:





And a
block is the intersection of a cylinder and a sector. Sometimes use
the terms block and sector to mean the same thing (block).

Block usually 512 bytes.

With read hard disk geometry C*H*S = number of blocks
Thus number of blocks * 512 = disk size?

Is there a relationship mathmatically, size wise, between a block and
a sector? ie 4 blocks = 1 sector or whatever?

Now to involve some real world data:

al@al-ubuntu:~$ sudo fdisk -l
[sudo] password for al:

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xaf010487

Device Boot Start End Blocks Id System
/dev/sda1 * 1 121601 976760001 83 Linux

I know that start and end are cylinder values and I assume that blocks
is the size of the partition in blocks. Assuming I was correct before
when I stated that blocks are 512 bytes in size, then:

976760001 * 512 bytes = disk size in bytes - but it doesnt, it equals
500101120512 bytes which is way off 1000204886016 bytes from the
header in fdisk. Why?

From fdisk headerline "255 heads, 63 sectors/track, 121601 cylinders"
- now using C*H*S = number of blocks

121601 * 255 * 63 = 1953520065 blocks
and because 512 bytes to a block:
512 * 1953520065 = 1000202273280 bytes (which should be the same as
the disk size given in the fdisk header line "1000204886016 bytes" but
it isnt. Why?)

The same disk:

TestDisk 6.10, Data Recovery Utility, July 2008
Christophe GRENIER
http://www.cgsecurity.org

Disk /dev/sda - 1000 GB / 931 GiB - CHS 121601 255 63
Current partition structu
Partition Start End Size in sectors

1 * Linux 0 1 1 121600 254 63 1953520002

Now start and end are full CHS values and we can also see the size of
the partition in sectors. I have been told that:

(255 * 63 * 121601) - (63 * 1) = 1953520002

Which is the size in sectors. But I dont quite understand the
calculations.

In its simplest form the End CHS size - Start CHS size = size of
partition (True/False?)

Because of numbering starting at 0 start end CHS values in calculation
a
121601,255,63 (True/False?)

Start CHS values, by the same reasoning should be:
0,2,2 (Clearly this is not whats used in the calculation - why?)

Well this has been a long post, and I suspect the answer will raise
more questions.

Thanks in advance for any replies.

-Al











- Franc Zabkar
--
Please remove one 'i' from my address when replying by email.
  #9  
Old November 19th 09, 04:22 AM posted to comp.sys.ibm.pc.hardware.storage
Rod Speed
external usenet poster
 
Posts: 8,559
Default Hard Drive Geometry 101

Al wrote
Rod Speed wrote
Al wrote


The the definition of a sector (on the physical disk anyway)
is a strip extending from the center of the platter to the edge.


Nope, that is completely wrong. A sector is part of
a track and tracks are concentric circles on the platter.


Not in this picture it isnt sunshine :


You're misinterpretting that, moonshine.

http://en.wikipedia.org/wiki/Cylinder-head-sector
its a pie shaped slice from the center.


Thats a different sort of sector, not the 512 byte sector you referred to elsewhere.

There is no way that that pie shaped sector could be just 512 bytes.

http://en.wikipedia.org/wiki/Disk_sector makes it much clearer and
http://en.wikipedia.org/wiki/Fileisk-structure2.svg
makes it much clearer, the 512 bytes sectors are C in that diagram.

Block usually 512 bytes.


Not with Linux file systems.


So why does the header from fdisk say "Units = cylinders of 16065 *
512 = 8225280 bytes" - note the 512 value.


That uses the word units.

With read hard disk geometry C*H*S = number of blocks
Thus number of blocks * 512 = disk size?


Yes.


Is there a relationship mathmatically, size wise, between
a block and a sector? ie 4 blocks = 1 sector or whatever?


A block is just one sector at the physical drive level.


So a block and a sector are the same thing?


At the physical drive level, yes. But not necessarily at the file system level.

Now to involve some real world data:
al@al-ubuntu:~$ sudo fdisk -l
[sudo] password for al:
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xaf010487
Device Boot Start End Blocks Id System
/dev/sda1 * 1 121601 976760001 83 Linux
I know that start and end are cylinder values and I assume that
blocks
is the size of the partition in blocks. Assuming I was correct
before
when I stated that blocks are 512 bytes in size, then:
976760001 * 512 bytes = disk size in bytes - but it doesnt, it
equals 500101120512 bytes which is way off 1000204886016 bytes from
the
header in fdisk. Why?


You should have mulitiplied by 1024 instead of 512.


976760001 * 1024 = 1000202241024 which is still not equal to 1000204886016.


Sure, the difference is with the first track which isnt part of
the partition and the last cylinder which is usually reserved etc.

From fdisk headerline "255 heads, 63 sectors/track, 121601
cylinders" - now using C*H*S = number of blocks


121601 * 255 * 63 = 1953520065 blocks


Nope, sectors.


C*H*S according to the wiki gives the size in blocks :
http://en.wikipedia.org/wiki/Cylinde...CHS_Addressing - I
guess thats another area where the wiki disagrees with you?


Nope, blocks and sectors are the same, as otherwise discussed.

and because 512 bytes to a block:
512 * 1953520065 = 1000202273280 bytes (which should be the same as
the disk size given in the fdisk header line "1000204886016 bytes"
but it isnt. Why?)


Because the linux block is 1024


Again even if I use 1024 * 1953520065 = 1000202273280 which is still not
equal to fdisk header line "1000204886016 bytes" - can you explain that?


See above.

The same disk:
TestDisk 6.10, Data Recovery Utility, July 2008
Christophe GRENIER
http://www.cgsecurity.org
Disk /dev/sda - 1000 GB / 931 GiB - CHS 121601 255 63
Current partition structu
Partition Start End Size in sectors
1 * Linux 0 1 1 121600 254 63 1953520002
Now start and end are full CHS values and we can also see the size of
the partition in sectors. I have been told that:
(255 * 63 * 121601) - (63 * 1) = 1953520002
Which is the size in sectors. But I dont quite understand the calculations.


Its 255 instead of 254 because the cylinder numbering starts at 0


In its simplest form the End CHS size - Start CHS size = size of partition (True/False?)


False.


Why?


Sorry, I should proof read complicated stuff like this, I meant True.

Because of numbering starting at 0 start end CHS values in calculation a
121601,255,63 (True/False?)


True with the 255, but its more complicated than that.


Start CHS values, by the same reasoning should be:
0,2,2


Nope, those dont start at 0, they start at 1.



  #10  
Old November 19th 09, 04:38 AM posted to comp.sys.ibm.pc.hardware.storage
Franc Zabkar
external usenet poster
 
Posts: 1,118
Default Hard Drive Geometry 101

On Wed, 18 Nov 2009 10:52:53 -0800 (PST), Al put
finger to keyboard and composed:

I understand so far:
That hard disks have physical geometry CHS, but modern hard disk CHS
bears no direct relationship to the physical geometry of the disk.


In the early 1990s, drives already began to support address
translation where you could specify any logical CHS combination that
didn't exceed a drive's capacity. The drive would then perform its own
internal conversion to physical CHS values.

The the definition of a sector (on the physical disk anyway) is a
strip extending from the center of the platter to the edge.


Nowadays drives use Zone Bit Recording. Each zone has a constant
number of sectors/track, with the outermost zone having the most, and
the innermost zone the least. This equalises the bit densities across
the surface of the platter.

See http://en.wikipedia.org/wiki/Zone_bit_recording

Here is an excellent, in-depth technical article on modern hard
drives:

http://hddscan.com/doc/HDD_Tracks_and_Zones.html

I think of a block as a logical construct rather than a physical one,
although you can think of it in physical terms as well. It depends on
the context ...

Now to involve some real world data:


TestDisk 6.10, Data Recovery Utility, July 2008

Disk /dev/sda - 1000 GB / 931 GiB - CHS 121601 255 63
Current partition structu
Partition Start End Size in sectors

1 * Linux 0 1 1 121600 254 63 1953520002

Now start and end are full CHS values and we can also see the size of
the partition in sectors. I have been told that:

(255 * 63 * 121601) - (63 * 1) = 1953520002

Which is the size in sectors. But I dont quite understand the
calculations.


Historically, the maximum number of sectors per track is 63, and the
maximum number of heads (aka tracks per cylinder) is 255. AIUI, this
is because the original disc controller's registers allocated 6 bits
for S and 8 bits for H.

In its simplest form the End CHS size - Start CHS size = size of
partition (True/False?)


LBA = (C x 255 x 63) + (H x 63) + (S - 1)

Partition size (in sectors) = End LBA - Start LBA + 1

= (Ce - Cs) x 255 x 63 + (He - Hs) x 63 + (Se - Ss) + 1

where e/s are the end/start values of CHS.

Historically, the first partition usually starts at LBA 63 because the
first track (LBA 0 - LBA 62) contains the MBR, partition table, and
sometimes additional boot code, eg disc overlays, or a boot manager to
allow booting from one of several partitions.

- Franc Zabkar
--
Please remove one 'i' from my address when replying by email.
 




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Different translations of HDD geometry :-( Geir Holmavatn Storage (alternative) 6 May 6th 06 01:31 AM
Geometry Instancing Jamie_Manic Ati Videocards 1 June 19th 05 02:50 PM
Sudden change of drive geometry Debian User Storage (alternative) 1 March 23rd 05 07:40 PM
wd600bb drive geometry Ben Fitzgerald Storage (alternative) 5 December 9th 03 09:14 PM
Lost CMOS drive geometry settings.... Bob Howell Storage (alternative) 1 July 3rd 03 08:32 AM


All times are GMT +1. The time now is 05:04 PM.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 HardwareBanter.
The comments are property of their posters.