Windows 10 Pro Installation

Windows 10 installation is straightforward most of the time, but not intuitive on Servers. For starters, first check whether the motherboard can support Windows 10. Brute forcing an uncertified Operating System installation can lead to incompatability issues. For Windows, most notably, the infamous BSOD (Blue Screen of Death).

Starting with BIOS Optimized defaults

I am installing Windows 10 Pro on an M.2 drive. System/MB supports the OS. For starters, I used the 'Restore Optimized Defaults' in BIOS, and will make changes after finishing the Windows 10 installation.

 BIOS Optimized Defaults

Note: Using 'Restore Optimized Defaults' post-Win10 installation

Windows would not boot without Splash screen/BIOS intervention.

 Reason: Re-ordered boot options; it took 'Windows Boot Manager' from 1st boot option

Switching the Windows Boot Manager as Boot Option #1 resolved the boot issue.

Step 1 - Create Windows 10 Bootable USB Installer tool

On a separate computer, plug in a blank USB drive, or one that you are willing to part ways with the data for, and visit the link below- AND THEN click 'Download Now' under 'Create Windows 10 installation media'

https://www.microsoft.com/en-us/software-download/windows10

Step 2 - Boot Windows 10 Installer via UEFI 

Non-UEFI USB Boot Media installation - selecting M.2 drive to install Win10 Pro

Difference between UEFI and non-UEFI Boot Media installation selection BIOS is whether the USB drive is prefixed with 'UEFI'.

Example:

Stops here.

Step 3 - Install Windows 10

UEFI USB Boot Media installation - selecting M.2 drive to install Win10 Pro

Unlike the non-UEFI USB option, it will now let you choose your desired Windows 10 OS from a list after selecting the drive. For this article, we are installing Windows 10 Pro.

After it finishes installation, it warns that it is automatically rebooting. Windows Boot Manager and the M.2/NVMe drive shows up at the top of Boot priority.

On default settings, it will not list the M.2/NVMe drive as a bootable disk, but will instead be identified within the Win10 Pro installer. After Windows 10 Pro finishes installing, it will show up as 'Windows Boot Manager' in BIOS with the full part number of the M.2/NVMe drive.

After selecting the Windows Boot Manager right after the Win10 Pro installation rebooted the system, it will run a disk check and repair that will look like below screen.

This takes about 3-4 minutes, and will reboot once more. Without interrupting system boot to visit BIOS Menu, it will boot straight into Windows 10 Pro Basics and Welcome screens.

Language, Keyboard Layout (Skip). It did not list any available Network ports, so I used 'I don't have internet'.

After Account, Password, and declining all services, it will take seconds to finally bring me to a desktop.

 Account, Password, declining services

Windows 10 and drivers for servers

Missing Drivers

On a fresh Windows 10 install from ISO (not triggered from a Win7 upgrade or restored with whatever Boot Media comes with your original system), there are no drivers installed. Since there are no drivers installed, that means the network ports will not work natively, and that you cannot have Windows 10 search online and auto-update to fill in the drivers needed for installed hardware.

You will need to plug in a USB to a computer that can download the drive files, load those driver files onto the USB drive, and then plug that USB drive back into this newly installed Windows 10 system to install the drivers.

Windows 10 drivers are limited on servers, and heavily varies from manufacturer to manufacturer on their respective resource page from their websites.

Obtaining drivers for remaining hardware

  1. Visit your system motherboard website's driver page
  2. Filter the drivers for Windows 10
  3. Locate and download chipset drivers (if there are no chipset drivers available, just skip to network/LAN drivers)
  4. Locate and download network/LAN drivers
  5. Load both drivers' .zip files onto USB drive, then unpack them
  6. Plug USB into your Win10 Pro system, first install Chipset drivers using the 'application' file
  7. Restart system
  8. Install Network drivers using the 'application' file
  9. Once network drivers are installed, connect to a network
  10. Scan for Windows Update, reboot system after every completed batch of updates; repeat if necessary until Win10 system is up-to-date

Example

  1. My system is an Exxact <whatever nomenclature at the time> that uses a Supermicro SYS-7049GP-TRT. Supermicro's website is here, and I click on their Drivers & Utilities link below the system image.
  2. Filter and download drivers for chipset and LAN for Windows 10, then download both

     7049GP-TRT Chipset Drivers

  3. Unpack both zip files onto a USB drive

     Extracting zip files to USB drive

    WinRAR is free to download, in case you do not have a package utility in Windows.

    Personal choice, but I deleted the .zip files, since it is not needed after extracting them.

  4. Plug USB drive containing the Drivers onto the newly installed Win10 Pro system, install Chipset drivers first if you have it (if not, skip to network/LAN drivers in step 6)

     Installing Chipset drivers

  5. Reboot system when it asks after the Chipset driver installation - VERY IMPORTANT TO DO BEFORE INSTALLING NETWORK DRIVERS
  6. Install Network drivers

     Installing Network drivers

  7. Check for Windows Updates, reboot as necessary

     Checking for Windows Updates

Check Device Manager for any hardware missing drivers

I used the latest Windows ISO available on Microsoft's website, so it only took one round of updates to install and update all drivers for installed hardware for my system. Main ones to check are Graphics Card and LAN. If you installed any additional hardware to your system, then you should know what type of component it is to search the dropdown categories. If Windows cannot find your hardware driver via network, then you will need to visit that respective hardware component manufacturer's website to obtain drivers and install them manually.

 All hardware drivers installed - no warning flags


Windows 10 Onboard/Offboard display channels and Graphics Card interactions

Coming from default 'Optomized' BIOS settings, Windows will display the Onboard VGA as a display option. I can also use both the onboard VGA and offboard PCI-e display device (Graphics Card) simultaneously. To avoid integrated CPU graphics from being used for display or calculation, you will need to set the system to use Offboard video display in BIOS.

 Proof

Onboard/Offboard channels for servers

Whole article about it here: System boot times, and Onboard and Offboard video display channels

Graphics Card interactions with Onboard/Offboard display channels

BIOS Onboard - Single display - Onboard VGA

 Settings

BIOS Onboard - Dual display - Onboard VGA and Graphics Card

 Onboard and Offboard Windows and NVIDIA settings

NVIDIA driver only detects displaay plugged into the Graphics Card, of course.

Windows display settings detects both

GPU Burn-in with Onboard/Offboard video display channels

 BIOS unsafe-Onboard - FurMark detects all display adapters

 BIOS Offboard - FurMark detects GPU unsafe-only

Onboard VGA port only shows the manufacturer motherboard splash screen, so it is not being detected as a display or usable GPU in Windows.

Additionally, Windows Display settings does not detect the onboard display.

Windows 10 Install Notes

  • For servers that are expected to be on 24/7, disable hibernation. Make sure Windows does not hibernate or power off installed hardware components after a period of time, or that any of the system's front panel (power/reset) buttons hibernate the system. Linux or Windows, hibernation mode messes with the hardware initialization of installed components, and typically results in blank screen while system remains powered on, missing devices (GPU/PCI-e), or remote connectivity issues when attempting to wake the system back up; rebooting would be necessary to have the system properly initialize hardware again.

     Quick example via cmd

    Check in settings for whether you want the screen to turn off as well.

  • Enable remote desktop in settings if you plan on installing this system at a remote location - Remote Desktop Connection (RDC/RDP). Alternatively, make sure your preference of remote dekstop connection app works with this system before racking or installing remotely.

     Remote Desktop settings

  • System IT/Admin will have their security protocols or workflows that would need to be applied to the system immediately before handing off to users. If this is a home system, Windows Security is enabled, and is usually all you need. Any off-the-store-shelf computer may come with bloatware that disables Windows Security (e.g. McAfee/Norton).

     Windows Security

  • ninite.com is my go-to after fresh Win10 installations, and after updates. Exxact mainly ensures that Windows 10 is installed and fully up-to-date, but you can visit ninite to add-on helpful tools and developer packages, such as:
    • (Google) Chrome
    • Teamviewer
    • Developer Tools (Python)
    • Java
    • Blender
    • WinRAR
    • Online Storage (Dropbox/Google Drive/OneDrive)

Snide remarks

  • Benefit of Linux, right after fresh installation, is that the onboard network ports are highly likely of already being detected, and are already work if I enabled them through Linux OS installer, or even in the settings without updating the OS at all. I could also query the installed hardware without drivers.

    • Taking this into account, Windows having drivers is adding another point of failure for each piece of hardware that relies on them
  • Exxact doesn't make Windows, nor Linux. Exxact assembles HPC's and servers using various hardware components, and then apply Operating System installations towards HPC/servers
  • Why Linux is used in >90% of supercomputer
    • "Supercomputers seek to maximize performance. Usually supercomputers are assigned with jobs that require computation at a very high speed. When compared to Windows, Windows has number of extraneous processes that are unnecessary and only degrade the supercomputer performance  However as Windows is proprietary the code cannot be altered to cut off unnecessary processes. With Linux it is certainly possible which gives a performance boost to computers."