Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 12 Nov 2005 01:19:52 +0100
From:      Dario Freni <saturnero@freesbie.org>
To:        Chris Pressey <cpressey@catseye.mine.nu>,  current@freebsd.org,  geom@freebsd.org
Subject:   Re: fdisk(8) no longer capable of altering geometry
Message-ID:  <43753528.7030802@freesbie.org>
In-Reply-To: <20051027200448.1ba236fe.cpressey@catseye.mine.nu>
References:  <20051027200448.1ba236fe.cpressey@catseye.mine.nu>

next in thread | previous in thread | raw e-mail | index | archive | help
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@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"
> 


-- 
Dario Freni (saturnero@freesbie.org)
FreeSBIE developer (http://www.freesbie.org)
GPG Public key at http://www.saturnero.net/saturnero.asc



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?43753528.7030802>