fdisk(8) no longer capable of altering geometry
Dario Freni
saturnero at freesbie.org
Fri Nov 11 16:19:56 PST 2005
My little follow-up to this issue. This bug is quite critical on
products using bsdinstaller such as FreeSBIE or pfSense. I heard rumours
that PC-BSD also encounter this problem and had to workaround it by
sysinstall.
Can somebody please take a look at it?
Thanks,
Dario
Chris Pressey wrote:
> [this is a follow-up to / correction of my post to geom@ a few days ago,
> to which there was no reply]
>
> Hello,
>
> It appears that fdisk(8) is no longer capable of altering the geometry
> of a disk. (By which I mean, the kernel's idea of the BIOS'es idea of
> the geometry, of course.) I'd find it reassuring to know whether or not
> anyone else is seeing the same behaviour, before I go the official route
> and file a PR.
>
> Initially I thought that this failure case was only for uninitialized
> disks, but I have tried further tests and I can't get fdisk(8) to change
> the geometry in any of the cases. These cases are:
>
> a. uninitialized, totally blank disk (dd if=/dev/zero of=/dev/ad1 ...)
> b. initialized disk with FreeBSD (or any other OS) installed on it
> c. same as b, but with its root partition mounted on /mnt
> d. the disk containing the currently booted FreeBSD system
> (mounted on /, of course)
>
> In each of these cases, I tried a sequence like the following:
>
> fdisk -BI ad1
> fdisk -u ad1
> <when asked if I want to change "our idea of what the BIOS thinks",
> say yes, and plug in different but compatible values for cylinders,
> heads, and sectors/track>
> <when asked if I want to write the new partition table, say yes>
> fdisk ad1
> <observe that the geometry hasn't changed>
>
> The behaviour I see is, in summary:
>
> a & b: fdisk issues the warning "fdisk: Geom not found" which presumably
> refers to the fact that there is no GEOM MBR provider for that
> disk. It then falls back to the legacy behaviour of raw-writing
> the partition table into sector zero of the disk. This does not,
> however, trigger an update of the kernel's idea of the geometry.
>
> c & d: no "Geom not found" warning, but no change in geometry either.
>
> I don't see this behaviour on DragonFly; cases a and b work as you would
> logically expect (as they worked in 4.x, AFAIR, but I have not yet
> tested this) where the geometry does get changed, and subsequent runs of
> fdisk report the changed geometry.
>
> In cases c & d, the behaviour is the same as FreeBSD - nothing changes.
> This is not too surprising, since the disk _is_ in use - but an error
> message would probably make more sense.
>
> This bug is one of the few remaining things standing in the way of
> porting the BSD Installer to FreeBSD. Without some way of altering the
> the geometry, it can't install onto a system whose BIOS misreports the
> disk geometry.
>
> My analysis of the problem can be found in my previous post to geom@,
> but to sum it up: I think fdisk needs to inform GEOM somehow that the
> geometry should be changed. It might need to trigger the creation of a
> GEOM MBR provider for the disk before it does so; but I'm not certain of
> any of this, since my knowledge of GEOM is slim at best.
>
> Hopefully someone more familiar with GEOM and such under -CURRENT is
> listening and can shed more light on this problem and/or provide a
> workaround and/or explain how I'm wrong and show me the right way to do
> what I'm trying to do (change geometry) in -CURRENT.
>
> Thanks for your time,
> -Chris
> _______________________________________________
> freebsd-current at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe at freebsd.org"
>
--
Dario Freni (saturnero at freesbie.org)
FreeSBIE developer (http://www.freesbie.org)
GPG Public key at http://www.saturnero.net/saturnero.asc
More information about the freebsd-geom
mailing list