Cannot boot TrueNAS 12.0-U1.1

Description

Hi, I'm unable to boot TrueNAS 12.0-U1.1 after upgrading from FreeNAS 11.3-U5.

I have tried both the standard and the debug kernel, as well as enabled verbose and single user mode, but the kernel keeps hanging. If I switch back to my 11.3-U5 boot environment everything comes up fine.

My hardware:

HP microserver Gen8
iLO 2.77
BIOS J06
legacy booting

I'm booting off a small SSD installed on the 5th SATA port using the usual "chainload from grub in a USB stick" trick. I'm not sure that matters in this case though, since I can successfully chainload from grub to the BSD bootloader.

I have attached a couple of screenshots from the iLO console, but there's not much information. Is there a way I can generate more debug output?

Problem/Justification

None

Impact

None

SmartDraw Connector

Katalon Manual Tests (BETA)

Activity

Show:

Harald Fricke September 29, 2021 at 3:41 PM
Edited

I'd like to report that I have encountered the same problem on a system that is very similar to Andrea's .

Hardware:

  • HP microserver Gen8

  • iLO 2.78

  • BIOS J06 (04/04/2019)

  • legacy booting, system does not support UEFI

  • System installed on a SSD connected to the optical disk port, not bootable due to BIOS peculiarities

  • Booting with GRUB from USB Stick, GRUB then chainloads the first sector of the system SSD, thus starting the FreeBSD loader

 

Software:

TrueNAS 12.0-U5.1, upgraded from Freenas 11.3-U5, upgraded from 11.2-U8, upgraded from 11.1-U7, upgraded from 11.0-U4.

 

Problem:

After upgrading from 11.3-U5 to 12.0-U5.1, the boot process hangs after the FreeBSD loader has loaded the kernel and the required modules, but before the kernel produces any output.

 

Work-around:

From the FreeBSD loader menu, enter the loader command-line and use the set command to change comconsole_port from 0x3f8 to 0x2f8:

None of the variables from Andrea's post needed to be changed on my system.

Now boot. Repeat until the GUI is accessible, then navigate to System->Advanced and set Serial Port to 0x2f8 to make the change permanent.

 

Further information:

I have left the BIOS setting for the serial console  at "automatic". Explicitly setting this to either 0x2f8 or 0x3f8 did not help.

I was able to compare the settings of most boot environments:

Release

loader comconsole_port

old GUI

new GUI

database adv_serialport

11.0-U4

1016

0x2f8 (1)

N/A

0x2f8

11.1-U7

0x3f8

0x2f8 (1)

N/A

0x3f8

11.2-U8

0x3f8

0x3f8 (2)

none (3)

0x3f8

11.3-U5

0x3f8

N/A

none (4)

0x3f8

12.0-U5.1 failing

0x3f8

N/A

?

?

12.0-U5.1 fixed

0x2f8

N/A

0x2f8 (4)

0x2f8

(1) this is the only setting available in the menu

(2) setting in the text box, no menu

(3) no ports available in the menu

 (4) 0x2f8 is the only port available from the menu

 

Conclusion:

Somehow my system used the serial console port 0x3f8 from the initial install on, although the GUI did not reflect this most of the time. FreeNAS 11.X was able to use this port, but TrueNAS 12.0-U5.1 only seems to work with port 0x2f8.

This might be a weird interaction between the BIOS serial console emulation and the way the kernel probes or initializes the serial port.

It also might be a wierd interaction between grub and the FreeBSD loader.

I'd like to thank Andrea for documenting this issue. Without this bug report, I would not have found a solution.

Regards

Harald

 

 

 

 

Alexander Motin September 24, 2021 at 5:15 PM

As I remember from the last time I looked on this issue few years back, in some cases missing serial port at standard address may look like busy transmitting one.  All I could do is slightly reduce the wait time, but it was not too helpful, since console output was still as slow as few characters a second.  And loader and serial console code are not exactly a places to do anything complicated.

Andrea September 23, 2021 at 9:27 PM

Hi, I've privately attached a debug tarball from my current TrueNAS 12 installation.
I can confirm that I was able to use the 0x3f8 virtual serial port via IPMI SOL in FreeNAS 11 (after configuring the bios accordingly). Only 0x2f8 is an option now in TrueNAS 12.

I cannot confirm that both 0x2f8 and 0x3f8 were valid options in System / Advanced when I was on FreeNAS 11 as I ended up wiping my old boot environment during my investigations and I can't easily check, but my last FreeNAS 11 backup confirms that I was using 0x3f8:

Obviously I don't really mind which virtual COM port I use, I just wish FreeBSD had a graceful fallback when the loader config requests a non-existent console port.

Thanks for looking into this!

Alexander Motin September 22, 2021 at 3:57 PM

Have you used serial console before the upgrade?  Just to be sure, it is not a problem of serial console enabled by itself, but a problem of previously working specific serial port not detected by TrueNAS 12, right?  I could look that way if you provided at least standard TrueNAS debug archive (System -> Advanced -> Save Debug).  I am fine with saying it is some BIOS problem of not properly reporting serial port...

Andrea September 16, 2021 at 10:51 AM
Edited

Hopefully this is the last time I have to update this ticket... I am now able to boot and reboot TrueNAS 12 on my microserver gen8

I had noticed that the initial install boot environment was working well, so I diffed loader.conf.local across my boot environment and the initial one. I then determined that disabling console output allowed TrueNAS to fully boot. I could do so by editing loader.conf.local from a different boot environment, or dynamically at the loader prompt as follows:

When I went to the GUI to persist my changes I noticed that the serial port setting under System / Advanced was blank, and only offered one of my two COM ports from its drop-down menu. It turns out that for some reason TrueNAS 12 can only see my 0x2f8 port, while my loader (and BIOS) were configured to use 0x3f8. After setting the port to 0x2f8 and re-aligning all BIOS settings everything works: TrueNAS boots and I have output over VGA, iKVM, and IPMI SOL.

In the end it was a tiny issue that would not affect anyone installing TrueNAS 12 from scratch, but oh boy troubleshooting this was a nightmare due to the lack of output.

Given that my serial config was valid in FreeNAS 11, and did not produce a warning during the upgrade to TrueNAS 12 I'm still of the opinion that this is a (minor) upgrade bug. The solution is luckily simple... once you determine what's wrong.

Cannot Reproduce
Pinned fields
Click on the next to a field label to start pinning.

Details

Assignee

Reporter

Fix versions

Affects versions

Priority

More fields

Katalon Platform

Created January 17, 2021 at 2:18 AM
Updated July 1, 2022 at 5:14 PM
Resolved September 13, 2021 at 5:22 PM