No reboot after v12.0-RELEASE upgrade

Hi all,

I updated a NAS running v11.2 using the freebsd-update tool, something I've done many times in the past without problem, only this time the 11.2 OS was installed on ZFS root, if that makes any difference (which shouldn't, according to this post (didn't want to further hijack that thread).

Alas, the box won't reboot, stops at the BTX loader. I tried booting from a FreeBSD USB stick, but the same thing happens: drives C through H are listed and then it simply hangs.

I tried booting from a USB stick with Linux Mint installed. That worked, and the gparted tool displays the HDDs and their partitions on the NAS.

Can someone suggest a way forward here? I don't mind doing a fresh install of v12.0, if I can at least find a way to boot from a USB stick. But if I could find someway of restoring the existing setup, that would be even better.
 
You have to upgrade the bootcode on all disk in the zfs pool, when doing major version upgrade.

Boot the 12.0-RELEASE FreeBSD installer, drop to the shell and install the appropriate bootcode using gpart(8).
If you need further help, post the output from gpart show.
 
k.jacker this is not from the system that I can't boot, but one with the same setup, which is still running v11.2:
Code:
$ sudo gpart show
=>       40  234441568  ada4  GPT  (112G)
         40       1024     1  freebsd-boot  (512K)
       1064        984        - free -  (492K)
       2048    4194304     2  freebsd-swap  (2.0G)
    4196352  230244352     3  freebsd-zfs  (110G)
  234440704        904        - free -  (452K)

I see this in the Handbook chapter on ZFS:
If you boot from pool 'mypool', you may need to update
boot code on newly attached disk 'ada1p3'.

Assuming you use GPT partitioning and 'da0' is your new boot disk
you may use the following command
gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 da0

Sounds like I would need to do something like this?
# gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada4

I will try again tomorrow evening to boot from a USB drive.
 
That is correct.
Though, there is no need to update the pMBR, the following should be enough:
# gpart bootcode -p /boot/gptzfsboot -i 1 ada4

You COULD update only the disk you boot the pool from, you SHOULD update all disks in the pool.
Think what happens when ada4 suddenly dies...
 
I don't completely follow you here. I have four HDD in the box; ada0-3 form a single storage pool; ada4 is small SSD I boot from. Looks more or less like this:
Code:
$ zpool status
  pool: pool.2
state: ONLINE
  scan: none requested
config:

    NAME        STATE     READ WRITE CKSUM
    pool.2      ONLINE       0     0     0
      raidz2-0  ONLINE       0     0     0
        ada0    ONLINE       0     0     0
        ada1    ONLINE       0     0     0
        ada2    ONLINE       0     0     0
        ada3    ONLINE       0     0     0

errors: No known data errors

  pool: zroot
state: ONLINE
  scan: scrub repaired 0 in 0h0m with 0 errors on Tue Dec  4 03:54:12 2018
config:

    NAME        STATE     READ WRITE CKSUM
    zroot       ONLINE       0     0     0
      ada4p3    ONLINE       0     0     0
You recommend that I install the bootcode on ada0-3 as well? Why? These are not boot disks.
 
I am making some progress but still have not solved the problem.
  • Booting FreeBSD from the existing ZFS root (ada4) or a USB image, my NAS (HP Proliant microserver N36L) hangs at the BTX loader.
  • Booting Linux Mint (debian based) from a USB stick works fine, and all drives (ada0-4) are visible in gparted.
I next tried disconnecting the four drives (ada0-3) that make up the single zpool. Booting from the ZFS root (ada4) then works.

Turns out it wasn't necessary to manually update the boot code. I finished the freebsd-update install, rebooted, and it booted again fine, now running v12.0-RELEASE.

I shut down the system, reconnected the four storage drives, and rebooted. Once again it hangs at the BTX loader.

Anyone have any ideas about what could be going wrong with my zpool here?
 
I ended up reinstalling v11.2; my pool is once again recognized and the server now working again as before. I'm sure I can easily wait a year or two (lol) while the problems with v12.0 get sorted out.
 
Back
Top