Close

Kubernetes – OS Install

This part should be simple I thought – I have a PXE boot server running netboot.xyz, the clients will just default to network booting, I choose my desired OS, the install happens and away we go, just like it did on my recent Lenovo m93p Minecraft server build.

Oh no, that would be far too simple.

Everything went fine, right up to the server reboot at the end of the OS install, after which it fails to find an OS: “error 1962: no operating system found press any key to repeat boot sequence”

I repeat the process a few more times just to be sure (Definition of insanity: doing the same thing over and over again expecting a different result – often attributed to Albert Einstein).

I then spend the rest of the day searching the Web trying different approaches and discovering that this is a pretty common issue on Lenovo m92p machines and that nearly all of the solutions offered don’t actually work (I tried them all).

It turns out that there are a number of issues to contend with:

  • Ubuntu will only install as BIOS boot if it has been booted in a Legacy boot environment (no EFI devices can be found)
  • Ubuntu will only install as UEFI if it has been booted in a UEFI boot environment
  • Netboot.xyz fails to boot UEFI on a Lenovo m92p (it works fine on an Lenovo m93p), it will only Legacy boot.
  • BIOS firmware on the Lenovo m92p has been ‘tweaked’ so that it will only boot from a disk that has a Windows 8 MBR.

The solution was to force the Lenovo m92p to boot UEFI from a USB drive, then install Ubuntu, this results in the correct disk layout and the required UEFI ‘hacks’ being put in place to convince the Lenovo m92p that it as a Windows 8 OS installed that it can boot from.

I don’t own a PC, I only have MACs so I follow this method of creating a bootable USB.

Except that for some reason the Ubuntu server one would not boot, but the Ubuntu desktop version would, so I installed the desktop version and then converted the server USB to bootable with the following command:

parted /dev/sdb set 1 boot on

I could have done this sooner from a network booted OS as well, but I was playing with USB based installs at the time.

Next as I had 8 machines to install, I wanted a minimal set of configuration that was guaranteed to work to setup the BIOS and vPro on each Lenovo m92p.

F1 to enter the BIOS

Startup Menu:

  • CSM – Disabled (forces UEFI only as a boot option)
  • Keyboardless Operation – Enabled (I will be running these headless and keyboardless)
  • Ensure USB drive is first device for Primary and Automatic Boot Sequences (ensure USB is inserted before going into BIOS or it won’t show the USB stick in the list)

F10 to save and reboot

Ctrl-P to enter MEBx configuration for vPro

MEBx Login – “admin’ then your new password (8 chars, 1 upper, 1 number, 1 special), then re-enter to confirm

Intel (R) AMT Configuration:

  • User Consent
    • User Opt-in – None (removes the need for codes to be entered from a non existent screen for remote access)
  • Network Setup
    • Intel (R) ME Network Name Settings
      • Host Name – enter host name
      • Domain Name – enter domain name
  • Activate Network Access – Y to confirm

A couple of the machines had an existing vPro configuration, this can be cleared by enabling the MBEx reset option in the Advanced section of the BIOS and rebooting.

After defining static DHCP addresses and DNS entries for each of the machines, on my pfSense firewall, I was able to install and connect to them from both the command line via ssh and via MeshCommander (vPro)

I only found 2 dead hard drives and 2 dead memory DIMMs but was still able to complete 7 of the 8 installs by shuffling hardware, I will do the last one once I replace the bad items.

Next I spent a few hours modifying my rack layout and connecting it all up without any outage to service beyond what TCP-IP can cope with on cable re-plugs.

The Dell R210 ii will ultimately be replaced by a second pfSense firewall in HA mode. I will probably relocate it to the garage or somewhere else where the fan noise is not an issue.

Leave a Reply