Messages in this thread | | | Date | Wed, 16 Apr 2008 09:49:39 +0200 | From | Seewer Philippe <> | Subject | Re: Disk geometry from /sys |
| |
Hi,
Francis Moreau wrote: > Hi Seewer, > > On Mon, Apr 14, 2008 at 2:57 PM, Seewer Philippe <philippe.seewer@bfh.ch> wrote: >> As you've problably seen from the other answers, disk geometry is (except >> for a few older devices) unneeded inside the Linux kernel. > > Yes but I'm doing userspace stuff and that's the reason I was asking for the > sysfs thing. > >> I'd say thats the >> reason why there's no sysfs export and I'd further guess disk geometry is an >> artifact most would like to get rid of (or pushed into userspace). >> > > Well, I looked at sfdisk(8) and parted(8) source code and they all need the > geometry description. If I understood correctly the reason why is that it > 'prefers' to align partition sizes/starts on a cylinder boundary because some > bootloaders probably use CHS addressing, but I'm really not sure. Yes indeed, mainly in the (w)intel world though.
> >> Anyway, if you really need it, try the patch below. Should apply cleanly to >> version 2.6.23.1 and gives you a geometry/ directory for each block device >> providing the getgeo function. It adds a setgeo counterpart for some >> subsystems as well, allowing 'echo something > ...' so please be careful. >> > > Thanks but I probably won't use it. Using sfdisk, for example, is a > more portable > way to get the geometry from a script.
Correct. Though be really careful which geometry you are requesting:
root@local:/# sfdisk -g /dev/sda /dev/sda: 7296 cylinders, 255 heads, 63 sectors/track root@local:/# sfdisk -G /dev/sda /dev/sda: 116280 cylinders, 16 heads, 63 sectors/track
The first one is the kernels idea of a disks geometry which is probably as often correct as it's just plain wrong, versus the second one which tries to guess a disks geometry by looking at the current partition table. Which might be just as wrong since its only necessary for bios and/or bootloader. Really depends on what you need.
Cheers Philippe
| |