2002-08-16 07:47:47

by Misha Alex

[permalink] [raw]
Subject:



Hi,
1)How do convert C,H,S into bytes.
How can one read in linux if we know the C,H,S.

Also i tried the linear addressing linear = c*H*S + h*S +s -1 .But
linear or linear*512 never gave me the exact byte offset to seek.

I am working in linux and using a hexeditor to seek .How many exact bytes
should i seek to find out the extended partition.I read the MBR and found
the exteneded partiton.
00 01 01 00 02 fe 3f 01 3f 00 00 00 43 7d 00 00
80 00 01 02 0b fe bf 7e 82 7d 00 00 3d 26 9c 00
00 00 81 7f 0f fe ff ff bf a3 9c 00 f1 49 c3 01
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00


See the third column it is 0f(extended windows).The cylinder is 639(7f81 h)
and sector is 1 .I don't know where to exactly read for the next partiton.
The byte offset for finding out the next partitions.

If i open hda3(Mind you hda3 is an extended partition on hda) with a
hexeditor i get

00 01 81 7f 83 fe ff 7d 3f 00 00 00 00 82 3e 00
00 00 c1 7e 05 fe ff ff 3f 82 3e 00 7e 04 7d 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

.Now the first partition is of type 83 which is linux and the next
extended partition is of type 05(extended) and cylinder894 and sec1.



*************************************
How do i find the next chain of extended partitions.I mean how do i convert
cylinder 894 ,sec1 and head 0 into absolute bytes so that i can hexdump the
next partition table for finding out ?
************************************

Thank you,
Misha

_________________________________________________________________
Send and receive Hotmail on your mobile device: http://mobile.msn.com


2002-08-16 09:48:39

by Willy Tarreau

[permalink] [raw]
Subject: Re: your mail

Hello !

On Fri, Aug 16, 2002 at 07:51:37AM +0000, Misha Alex wrote:

> Also i tried the linear addressing linear = c*H*S + h*S +s -1 .But
> linear or linear*512 never gave me the exact byte offset to seek.
>
> I am working in linux and using a hexeditor to seek .How many exact bytes
> should i seek to find out the extended partition.I read the MBR and found
> the exteneded partiton.
> 00 01 01 00 02 fe 3f 01 3f 00 00 00 43 7d 00 00
> 80 00 01 02 0b fe bf 7e 82 7d 00 00 3d 26 9c 00
> 00 00 81 7f 0f fe ff ff bf a3 9c 00 f1 49 c3 01
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

I haven't played with this for a long time, but I still have some memory
about this. First, when an offset is higher than 8GB, there's no way to
code it with the bios' CHS scheme as you find it in the partition table.
I see that you know how to decode this, so set all the CHS bits to ones
and look at the offset. For this reason, we often use only the size to
locate these partitions. If I recall correctly, the last 4 bytes of your
parts are the sizes in sectors. For example, hda2 is 9c263d sectors long,
which equals 5.2 GB. You'll notice that bytes 8 to 11 of each partitions
are nearly equivalent to the size of the previous part. They should be
the start offset in sectors. So in this case, hda3 begins at 9ca3bf
(byte 5255953920), and is 1c349f1 sectors long (15.1 GB).

I think that 'fe ff ff' after the partition type indicates that only the
linear mode should be used, but I'm not sure about this nor I do I have
any proof. You should read the partition code to get more clues, IMHO.

Hoping this helps,
Willy