Yes, serial ports are still around in 2022 and sometimes they save you a lot of time debugging a faulty device.

Maybe your system doesn’t have a GPU. Or maybe you don’t want to pay your vendor a license to have a proper KVM on a server… Which would be a text console over a RDP-like connection…

Tell GRUB to display a text menu too

First, we need to tell GRUB to display a console-compatible interface. On your /etc/default/grub find the GRUB_TERMINAL line and replace it as such:

GRUB_TERMINAL="console serial"

You’ll also likely want to always display the GRUB menu (which is a more reasonable choice than to skip it automatically IMHO).

Just change also the following lines:

GRUB_HIDDEN_TIMEOUT_QUIET=false
GRUB_TIMEOUT_STYLE=menu
GRUB_TIMEOUT=5

Tell Linux to boot with a tty over the serial port

Now that GRUB is configured to be used over the serial port, we need to tell the kernel to use the serial port too.

Change your GRUB_CMDLINE_LINUX_DEFAULT to include the following:

console=tty1 console=ttyS0,115200"

In my case the serial port was ttyS0, it could be different on your system. 115200 is the baudrate, I found that in most cases you can omit that. You can also stick multiple console commands one after the other, just increase the ttyX number.

Also make sure that you don’t have a quiet or splash option the Linux cmdline, or it will takes over the text console. console should be there instead.

You can also do this one-shot at boot by pressing e in the GRUB screen. It will be reset at next boot.

Regenerate GRUB

Finally, regenerate the GRUB files:

sudo update-grub

Use the serial port on a Dell or HP server

For the price that you pay on enterprise servers, you also have nice features like remote management :P. And most of the times it means that Serial over LAN is one of these features.

On Dell iDRAC servers, you can ssh into the iDRAC console and then console com2 should start your console.

Similarly, on HP iLO, VSP as in Virtual Serial Port would give you the serial console.

Install via the Serial Console.

In such case, you may have to generate a custom ISO image with the same options as above. You can try this.