FreeBSD slices and the Boot Manager

Conny Andersson ataraxi at
Sun Jul 28 20:04:33 UTC 2013

Hi Ian,

Thank you for all of your advices regarding my questions. I have been using 
FreeBSD for more than ten years, but I never heard of sade (sysadmins disk 
editor). That is one of the joyful things with running FreeBSD/Unix; there 
is always something earlier unheard of to explore. And, there is always 
more than one way to approach a problem.

Thank you Ian,


> On Mon, 29 Jul 2013, Ian Smith wrote:

> In freebsd-questions Digest, Vol 477, Issue 8, Message: 10
> On Sat, 27 Jul 2013 19:39:30 +0200 (CEST) Conny Andersson <ataraxi at> wrote:
> > Hi,
> >
> > I have a workstation with two factory installed hard disks. The first disk,
> > ada0, is occupied by a Windows 7 Pro OS (mainly kept for the three year
> > warranty of the workstation as Dell techs mostly speak the Microsoft
> > language).
> Yes, best humour adherents of the Almighty Bill - keeps them sweet.
> > Instead I have configured the BIOS to boot from the MBR on the second disk
> > as I most of the time (99%) use FreeBSD. The MBR on ada1 was installed with
> > sysinstall's option "Install the FreeBSD Boot Manager", when I installed
> > the FreeBSD 8.3-RELEASE.
> Right.  sysinstall(8) - or at least the fdisk and bsdlabel modules that
> constitute sade(8) - remains the only safe and sane way to handle MBR
> disks.  bsdinstall seems fine for GPT, but its paradigm doesn't play so
> well with trying to do the sorts of manipulations you're talking about
> here.  Why noone's tried to update sade(8) for GPT I don't understand;
> it's a far better, more forgiving interface, in my old-fashioned? view.
> > (The latest BIOS version 2.4.0 for Dell T1500 does not support
> >
> > The second disk ada1, now has three FreeBSD slices:
> >
> > 1) ada1s1 with FreeBSD 8.1-RELEASE
> >
> > 2) ada1s2 with FreeBSD 8.2-RELEASE
> >
> > 3) ada1s3 with FreeBSD 8.3-RELEASE
> >
> > I want to install the new FreeBSD 8.4-RELEASE on ada1s1 by overwriting the
> > now existing two first slices. This means that ada1s3, must become ada1s2
> > instead. Is this possible to do?
> Yes and no.  Using sysinstall|sade on my 9.1 laptop -- without setting
> sysctl kern.geom.debugflags=16 so it can't write any inadvertent changes
> to my disk :) -- in the fdisk screen you can delete the first two slices
> freeing their space for a new slice (or two) and you can then allocate
> s1 ok, but the existing s3 is still called s3.  Would that be a problem?
> If you only created one slice there you'd have s1 and s3, with s2 and s4
> marked as empty in the MBR shown by fdisk(8).  MBR slice order need not
> follow disk allocations, eg s4 might point to an earlier disk region.
> sysinstall|sade has undo options for both fdisk and bsdlabel modules;
> it's easy to play with, no chance of damage - even with foot-shooting
> flag set, unless/until you commit to changes.  If in doubt hit escape
> until it backs right out, nothing will be written.
> > A very important question is if sysinstall's option "Install the FreeBSD
> > Boot Manager" detects that I have a FreeBSD 8.3 and detect it as slice 2 on
> > disk 1? So it becomes a boot option when I am rebooting? (Maybe the slice
> > may come up as ad6s2, because AHCI in FreeBSD 8.4 isn't enabled at the time
> > of the install.)
> If you're running 8.4 sysinstall as init, ie booted into the installer,
> and you've told it to install to s1, then it should set s1 as the active
> partition in the disk table and in boot0cfg's active slice table.  I've
> never tried it with a second disk so I can't confirm that will all play
> nice, but you seem to have installed 3 versions ok before :)
> If not, you can run boot0cfg(8) anytime to set the active slice etc, so
> that shouldn't be a worry.  Likely need to set debugflags=16 to do that
> on a running system also .. don't forget to set them back to 0 later!
> (For anyone) still nervous about sade for setting up MBR disks, play
> with a spare memstick, setup a couple of slices, boot0cfg etc, allocate
> and delete slices and partitions.  Jordan got that together >15years ago
> so noone would ever need to do those icky slice/partition maths again.
> My theory: few have been brave enough to dare mess with $deity's work,
> though it just needs some updates for modern realities, not abandonment.
> [ Polytropon, it's not 'obsolete' at all; still in 9 anyway.  It'll be
> obsolete when there are no more MBR-only systems in use - say 7 years -
> OR when bsdinstall incorporates all the missing good sade(8) features,
> which requires it making a clear distinction between GPT and MBR and
> working accordingly, including cleaning up GPT stuff if MBR chosen.  At
> 9.1-R anyway, it doesn't do it so well for MBR.  Try installing over an
> existing desired slice partitioning, newfs'ing everything EXCEPT your
> valuable /home partition.  Not for beginners, yet simple in sade(8) ]
> > If the answer to these questions is yes, then the next two questions arise.
> >
> > Can I mount ada1s2a (FreeBSD 8.3) from the newly installed FreeBSD 8.4 and
> > edit my FreeBSD's 8.3-R /etc/fstab according to the new disk layout, and
> > occasionally run FreeBSD 8.3 without problems? Or do I have to do more to
> > get it to work?
> Except it likely will still be called ada1s3a, it should be no problem.
> Once boot0cfg(8) is working right, you can boot from any bootable slice;
> it 'knows' but doesn't care what (if any) OS is on any other slices.
> > The idea behind this kind of 'reverse' disk layout of mine is to have
> > FreeBSD 8.4 as my new default OS. And have FreeBSD 8.3 untouched for
> > configuring FreeBSD 8.4 and booting into it when ever needed. If I can do
> > this as described above, I will have plenty of space on the disk for the
> > future and a new FreeBSD release.
> Sure.  Another option would be a much smaller new s2 after the bigger s1
> as a 'transit lounge' between slices, I use such for config backups etc.
> Speaking of which, given that you're all safely backed up, nothing can
> go wrong, right? :)
> cheers, Ian

More information about the freebsd-questions mailing list