# No reboot after v12.0-RELEASE upgrade



## cbrace (Dec 11, 2018)

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.


----------



## k.jacker (Dec 11, 2018)

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`.


----------



## yuripv (Dec 11, 2018)

That reminds me of similar problem I had myself:  https://lists.freebsd.org/pipermail/freebsd-current/2018-November/071983.html

There are other similar threads on current@ and stable@, check if they seem to be the same.  Or just post a question on stable@, describing your hardware as verbose as you can


----------



## cbrace (Dec 11, 2018)

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:

```
$ 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
> ...



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.


----------



## k.jacker (Dec 11, 2018)

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...


----------



## cbrace (Dec 11, 2018)

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:

```
$ 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.


----------



## k.jacker (Dec 11, 2018)

Ok, so your boot pool is only a single disk. Then there is no need to do that, of course.


----------



## cbrace (Dec 13, 2018)

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?


----------



## cbrace (Dec 13, 2018)

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.


----------

