From: Tejun Heo <tj@kernel.org>
To: James Bottomley <James.Bottomley@suse.de>
Cc: Denys Vlasenko <vda.linux@googlemail.com>,
Arnd Bergmann <arnd@arndb.de>,
"linux-ide@vger.kernel.org" <linux-ide@vger.kernel.org>,
lkml <linux-kernel@vger.kernel.org>,
Daniel Taylor <Daniel.Taylor@wdc.com>,
Jeff Garzik <jeff@garzik.org>, Mark Lord <kernel@teksavvy.com>,
tytso@mit.edu, "H. Peter Anvin" <hpa@zytor.com>,
hirofumi@mail.parknet.co.jp,
Andrew Morton <akpm@linux-foundation.org>,
Alan Cox <alan@lxorguk.ukuu.org.uk>,
irtiger@gmail.com, Matthew Wilcox <matthew@wil.cx>,
aschnell@suse.de, knikanth@suse.de, jdelvare@suse.de
Subject: Re: ATA 4 KiB sector issues.
Date: Tue, 16 Mar 2010 23:50:23 +0900 [thread overview]
Message-ID: <4B9F9AAF.6080709@kernel.org> (raw)
In-Reply-To: <1268749297.21384.15.camel@mulgrave.site>
Hello,
On 03/16/2010 11:21 PM, James Bottomley wrote:
>>> For msdos labels, it's embedded in the label ... for all other labels,
>>> it's made up on the spot.
>>
>> Where in the label?
>
> No idea ... I only know you can use fdisk expert mode to change the
> C/H/S layout and the change is preserved across reboots.
The CHS addresses are stored alongside with the LBA addresses. The
problem is that the geometry parameters (sectors/track and heads/cyl)
are not stored anywhere and CHS addresses don't make any sense without
the two parameters. The only way to figure out the geometry
parameters is to solve two equations involving CHS addresses and LBA
addresses.
e.g. If the first partition begins at CHS 0/32/33 and ends at
12/233/19 and the corresponding LBA addresses are 2048 and 206848, you
can solve the equation and determine that the parameters gotta be 63
secs/trk and 255 heads/cyl to make those two pairs of addresses match
each other and in fact some BIOSs try to do this depending on
configuration (and sometimes falls into infinite loop or causes other
boot related problems if the parameters are too uncommon).
This method can't work reliably even at theoretical level because it
requires at least two pairs of CHS/LBA addresses to match (two unknown
parameters to solve for) and there is only single pair available if
the first partition goes over the CHS limit which at maximum is 8GiB.
So, CHS *values* are preserved if it falls below the CHS limit of the
geometry used during partitioning but the geometry information is lost
making the CHS values completely meaningless, so the only sane thing
to do is to stick to whatever geometry parameters provided by the BIOS
which usually is 255/63 these days. Otherwise, the results are...
* If the first partition ends before the CHS limit and BIOS is
configured to calculate back the parameters, BIOS may be able to
report the geometry correctly.
* If the first partition goes over the CHS limit,
* BIOS can use 255/63 or whatever default parameters and CHS and LBA
addresses won't match each other which won't be a problem for
modern OSes as they don't look at the CHS addresses at all but
older operating systems which consider both CHS and LBA addresses
may get confused.
* BIOS can set up arbitrary parameters such that the CHS and LBA for
the start of the first partition match and maybe also try to
cylinder align further LBA addresses but there is no guarantee
these parameters match the original parameters used during
partitioning and this seems to cause more compatibility problems
than it solves.
Thanks.
--
tejun
next prev parent reply other threads:[~2010-03-16 14:48 UTC|newest]
Thread overview: 129+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-08 3:48 ATA 4 KiB sector issues Tejun Heo
2010-03-08 5:38 ` Greg Freemyer
2010-03-08 7:00 ` James Bottomley
2010-03-08 7:53 ` H. Peter Anvin
2010-03-08 15:34 ` Martin K. Petersen
2010-03-09 22:36 ` Daniel Taylor
2010-03-09 22:46 ` Greg Freemyer
2010-03-10 0:05 ` Tejun Heo
2010-03-10 0:14 ` Daniel Taylor
2010-03-10 0:26 ` Tejun Heo
2010-03-10 0:36 ` H. Peter Anvin
2010-03-10 5:17 ` H. Peter Anvin
2010-03-10 7:09 ` Gabor Gombas
2010-03-10 0:32 ` H. Peter Anvin
2010-03-10 10:46 ` Johannes Stezenbach
2010-03-10 11:22 ` H. Peter Anvin
2010-03-08 7:56 ` H. Peter Anvin
2010-03-08 15:33 ` Martin K. Petersen
2010-03-08 15:38 ` Martin K. Petersen
2010-03-08 15:41 ` Martin K. Petersen
2010-03-08 18:50 ` H. Peter Anvin
2010-03-08 18:58 ` James Bottomley
2010-03-08 19:11 ` H. Peter Anvin
2010-03-08 20:02 ` Cláudio Martins
2010-03-08 21:07 ` Martin K. Petersen
2010-03-08 20:19 ` Martin K. Petersen
2010-03-08 21:16 ` H. Peter Anvin
2010-03-10 0:34 ` Tejun Heo
2010-03-10 7:53 ` Matthew Wilcox
2010-03-10 13:47 ` Jeff Garzik
2010-03-10 16:19 ` Damian Lukowski
2010-03-11 13:04 ` Theodore Tso
2010-03-11 13:57 ` Nikanth Karthikesan
2010-03-11 14:28 ` Theodore Tso
2010-03-11 14:39 ` James Bottomley
2010-03-11 15:05 ` Nikanth Karthikesan
2010-03-11 15:25 ` tytso
2010-03-11 16:26 ` Gene Heskett
2010-03-11 16:34 ` Greg Freemyer
2010-03-12 1:09 ` Tejun Heo
2010-03-11 14:48 ` Mike Snitzer
2010-03-11 15:00 ` Nikanth Karthikesan
2010-03-11 15:10 ` Tejun Heo
2010-03-11 16:01 ` Mike Snitzer
2010-03-11 18:26 ` Christoph Hellwig
2010-03-11 16:33 ` H. Peter Anvin
2010-03-08 15:18 ` Martin K. Petersen
2010-03-08 18:29 ` H. Peter Anvin
2010-03-08 20:01 ` Martin K. Petersen
2010-03-08 19:34 ` Mike Snitzer
2010-03-09 2:53 ` Tejun Heo
2010-03-09 3:20 ` Martin K. Petersen
2010-03-09 6:53 ` Michael Tokarev
2010-03-09 10:01 ` Karel Zak
2010-03-09 10:16 ` Michael Tokarev
2010-03-09 11:15 ` Dave Chinner
2010-03-09 11:38 ` Michael Tokarev
2010-03-09 12:20 ` Dave Chinner
2010-03-09 11:50 ` Karel Zak
2010-03-09 12:18 ` Karel Zak
2010-03-10 5:06 ` Martin K. Petersen
2010-03-10 20:50 ` Henrique de Moraes Holschuh
2010-03-10 4:57 ` Martin K. Petersen
2010-03-08 19:58 ` Karel Zak
2010-03-09 2:34 ` Tejun Heo
2010-03-09 2:42 ` Jeff Garzik
2010-03-09 2:49 ` Tejun Heo
2010-03-09 2:42 ` Tejun Heo
2010-03-09 3:11 ` Martin K. Petersen
2010-03-09 3:09 ` Martin K. Petersen
2010-03-09 3:38 ` Daniel Taylor
2010-03-09 4:54 ` Martin K. Petersen
2010-03-09 7:27 ` Jim Meyering
2010-03-09 23:56 ` Tejun Heo
2010-03-08 20:12 ` H. Peter Anvin
2010-03-09 2:22 ` Tejun Heo
2010-03-09 2:44 ` Tejun Heo
2010-03-09 3:18 ` Martin K. Petersen
2010-03-09 14:32 ` Mark Lord
2010-03-09 6:34 ` Mikael Abrahamsson
2010-03-09 10:06 ` Michal Soltys
2010-03-10 0:11 ` Tejun Heo
2010-03-14 21:09 ` Michal Soltys
2010-03-14 22:56 ` s ponnusa
2010-03-09 13:55 ` Mark Lord
2010-03-10 0:00 ` Tejun Heo
2010-03-10 6:08 ` Mark Lord
2010-03-09 23:46 ` Arnd Bergmann
2010-03-10 0:20 ` Tejun Heo
2010-03-10 9:14 ` Denys Vlasenko
2010-03-15 1:21 ` H. Peter Anvin
2010-03-15 2:26 ` Denys Vlasenko
2010-03-15 2:56 ` Greg Freemyer
2010-03-15 4:00 ` H. Peter Anvin
2010-03-15 12:30 ` Arnd Bergmann
2010-03-15 5:20 ` david
2010-03-15 9:56 ` Denys Vlasenko
2010-03-15 14:47 ` H. Peter Anvin
2010-03-16 2:30 ` Tejun Heo
2010-03-16 2:32 ` Tejun Heo
2010-03-16 6:14 ` James Bottomley
2010-03-16 6:22 ` Tejun Heo
2010-03-16 13:24 ` James Bottomley
2010-03-16 13:56 ` Tejun Heo
2010-03-16 14:21 ` James Bottomley
2010-03-16 14:25 ` Arnd Bergmann
2010-03-16 14:50 ` Tejun Heo [this message]
2010-03-16 15:02 ` James Bottomley
2010-03-16 15:20 ` Tejun Heo
2010-03-16 15:22 ` Martin K. Petersen
2010-03-17 2:07 ` Tejun Heo
2010-03-16 15:23 ` James Bottomley
2010-03-16 15:37 ` Tejun Heo
2010-03-16 20:42 ` Ric Wheeler
2010-03-17 2:04 ` Tejun Heo
2010-03-17 2:51 ` Kevin Easton
2010-03-17 3:44 ` Tejun Heo
2010-03-17 8:01 ` jdow
2010-03-17 17:04 ` Bill Davidsen
2010-03-16 14:38 ` Denys Vlasenko
2010-03-16 15:12 ` Tejun Heo
2010-03-16 15:25 ` Denys Vlasenko
2010-03-16 15:47 ` Tejun Heo
2010-03-17 6:48 ` H. Peter Anvin
2010-03-16 6:27 ` Thomas Chou
-- strict thread matches above, loose matches on Subject: below --
2010-03-12 3:10 H. Peter Anvin
2010-03-16 22:21 H. Peter Anvin
2010-03-17 15:08 ` Ric Wheeler
2010-03-17 17:13 ` H. Peter Anvin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4B9F9AAF.6080709@kernel.org \
--to=tj@kernel.org \
--cc=Daniel.Taylor@wdc.com \
--cc=James.Bottomley@suse.de \
--cc=akpm@linux-foundation.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=arnd@arndb.de \
--cc=aschnell@suse.de \
--cc=hirofumi@mail.parknet.co.jp \
--cc=hpa@zytor.com \
--cc=irtiger@gmail.com \
--cc=jdelvare@suse.de \
--cc=jeff@garzik.org \
--cc=kernel@teksavvy.com \
--cc=knikanth@suse.de \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=matthew@wil.cx \
--cc=tytso@mit.edu \
--cc=vda.linux@googlemail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox