FreeBSD slices and the Boot Manager
smithi at nimnet.asn.au
Sun Jul 28 17:54:47 UTC 2013
In freebsd-questions Digest, Vol 477, Issue 8, Message: 10
On Sat, 27 Jul 2013 19:39:30 +0200 (CEST) Conny Andersson <ataraxi at telia.com> wrote:
> 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
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? :)
More information about the freebsd-questions