Redhat 6.5-6.7 vs Dell Poweredge R430 serial console

Situation, normal day at work, need to port a working on a Dell 620r serial console friendly kickstart image to updated hardware, in this case a Dell R430.

I’m working over the integrated Dell serial console(ssh->idrac) with no external serial connectivity.

I expect the port to take about 2 hours, I am very wrong.

The installation via PXE + kickstart works fine, serial output is seen throughout, BUT upon reboot. The system is bricked and non-bootable. The system POSTs, then fails to show a grub boot menu and hangs indefinitely. I PXE netbooted then examined the disks. The installation looks good, MBR looks good. grub.conf looks good.

After digging around on the internet, I found I was not the only person running into this:

https://access.redhat.com/discussions/2136671

This is the postmorten of what I found.

TL;DR

Default behavior or Redhat 6.5’s Anaconda installer leaves a grub bootloader configuration which causes bios/serial interaction conflict. The result of this conflict is a non-bootable system. Tweaking the installed grub.conf in kickstart’s post-installation allows for a workaround.

The Longer Version

No matter what bios COM settings were selected, it seemed post kickstart, grub.conf would contain serial –unit=1. The Documentation confirms this –unit=1 setting on pages 131-132 at: http://topics-cdn.dell.com/pdf/idrac8-with-lc-v2.05.05.05_User’s%20Guide_en-us.pdf. With –unit=1, the system would be unbootable with a message of ‘Booting from Hard drive C:’ Then nothing regardless of bios serial COM settings.

Further reading suggested grub.conf would be happier with only ‘console’ on the grub.conf terminal line, rather than ‘serial console’ which was the post kickstart installed option.

https://wiki.nikhef.nl/grid/Serial_Consoles

“Grub essentially should see a single console, called “console”, as the BIOS will take care of sending any output also to the serial line. If you would configure grub now to also talk to the serial (SoL) port, they’ll fight for the input, and you will have to wait for a very, very long time. Actually, you can wait forever, infinitely long.”

Tweaking both the ‘serial –unit=’ setting and the ‘terminal’ line yielded a working grub.conf. With this tweaked grub.conf, serial console shows boot time output over serial console, the kickstart output over serial console, and an installed r430 which will boot.

Difference between working grub.conf and Kickstart generated grub.conf

There were a couple of BIOS configurations which in conjunction with kickstart/pxe menu settings and %post tweaks would work with the r430s, one on COM1, one on COM2. The below config works, and is most similar to our previous Dell configurations.

This was sensitive. Adding a bootloader –append with “console=ttyS1” per our previous kickstarts put multiple console= lines in the resultant grub.conf’s kernel append lines. This would net a non bootable system.