Recently, I did a chassis swap due to hardware issue. On the new chassis, the system won’t boot from disks. Quickly, I booted up the server with grml and confirmed the drives and filesystems are ok. I even did a chroot and grub2-install to reinstall the boot sector / loader. Still, this chassis went straight to network boot, as if the disk array do not exist.
Took us an hour to figure out what went wrong. If your OS won’t boot on a new chassis or even just a new RAID controller, look at this setting before anything.
The fix
The following steps worked on Proliant DL380 Gen9 with P840 RAID controller. Boot the HP server, press F9 to enter the BIOS setting. Then go the array controller and select Smart Storage Administrator.
Select your array controller and click configure. In the actions setting, select Set Bootable Logical Drive.

Select the volume to boot

Exit and reboot.