Changes between 9.1 and 9.2 affecting boot/loader/gpt discs
Paul Thornton
prt at prt.org
Thu Mar 20 17:00:34 UTC 2014
Hi all
I have a slightly strange booting issue. We use Mac Minis internally
for some servers and have an automated FreeBSD install for these - and
so I'm quite familiar with a lot of the hoops that need jumping through
to make this all work OK. We've been doing this since 8.3 without any
issues.
Our current OS was/is 9.1-RELEASE (amd64) and I was doing some tests to
update our installer to install 10.0. However, I quickly found these
10.0 machines wouldn't boot; so tested with 9.2 which also shows the
same problem.
The boot process does an MBR-based boot with GPT partitions; and all of
this works fine for me with 8.x and 9.1.
With 9.2 it gets as far as loading the loader, and then stops unable to
load the kernel. A bit of investigation shows that 'lsdev' only
displays the physical discs here, but doesn't show any partitions. So
that kind of explains the kernel not loading.
See: http://www.prt.org/temp/92boot.png
On a 9.1 installed machine, it boots OK - and if the boot process is
interrupted at this point, 'lsdev' shows the logical GPT entries fine
(including the one it is about to load the kernel from).
See: http://www.prt.org/temp/91boot.png
(Apologies for pictures, making it boot to a USB serial console is a
level of pain I don't want to put myself through).
If I then put a USB stick in with a 9.2 memstick image on it, and allow
the same 9.2 installed machine (that won't boot itself) to boot to a
live FS from USB, it boots fine and I can see all of the GPT partitions
on the disc that it refuses to boot itself from.
I've checked the sources for the loader and they are identical between
9.1 and 9.2 - however something must be different here. Can anyone
think of something that changed post 9.1-RELEASE that might be breaking
this?
Here is a 'gpart show' from a working 9.1 machine after installation:
> => 34 976773101 ada0 GPT (465G)
> 34 6 - free - (3.0k)
> 40 409600 1 efi (200M)
> 409640 974724960 2 freebsd-ufs (464G)
> 975134600 1638535 - free - (800M)
>
> => 0 974724960 ada0p2 BSD (464G)
> 0 4194304 1 freebsd-ufs (2.0G)
> 4194304 8388608 2 freebsd-swap (4.0G)
> 12582912 33554432 4 freebsd-ufs (16G)
> 46137344 2097152 5 freebsd-ufs (1.0G)
> 48234496 926490464 6 freebsd-ufs (441G)
Here is a 'gpart show' from the 9.2 machine after successfully booting
it from a 9.2 memstick:
> => 34 976773101 ada0 GPT (465G)
> 34 6 - free - (3.0k)
> 40 409600 1 efi (200M)
> 409640 974724960 2 freebsd-ufs (464G)
> 975134600 200 - free - (100k)
> 975134800 1638320 3 freebsd-ufs (800M)
> 976773120 15 - free - (7.5k)
>
> => 0 974724960 ada0p2 BSD (464G)
> 0 4194304 1 freebsd-ufs (2.0G)
> 4194304 8388608 2 freebsd-swap (4.0G)
> 12582912 33554432 4 freebsd-ufs (16G)
> 46137344 2097152 5 freebsd-ufs (1.0G)
> 48234496 926490464 6 freebsd-ufs (441G)
>
> => 0 1638320 ada0p3 BSD (800M)
> 0 1619793 1 freebsd-ufs (790M)
> 1619793 18527 - free - (9.0M)
>
> => 0 974724960 gptid/c1a23650-ed26-4f60-bb3f-b2ec4c766fae BSD (464G)
> 0 4194304 1 freebsd-ufs (2.0G)
> 4194304 8388608 2 freebsd-swap (4.0G)
> 12582912 33554432 4 freebsd-ufs (16G)
> 46137344 2097152 5 freebsd-ufs (1.0G)
> 48234496 926490464 6 freebsd-ufs (441G)
>
> => 0 1638320 gptid/1437a1fc-3253-480c-8195-9f39cbced235 BSD (800M)
> 0 1619793 1 freebsd-ufs (790M)
> 1619793 18527 - free - (9.0M)
>
> => 0 31309824 da0 BSD (15G)
> 0 1168848 1 freebsd-ufs (570M)
> 1168848 30140976 - free - (14G)
The ada0p3a partition is our installer image; it is only showing on this
installation as the machine never completed the install and tidied that
up afterwards. And da0 is the memstick, of course.
All pointers and suggestions will be very gratefully accepted, this has
been tying me in knots for the past few weeks.
Paul.
--
Paul Thornton
More information about the freebsd-hackers
mailing list