CentOS 7.9 on OS/Scratch/Data w/ Teamviewer

This assumes you are willing to part with your data; fresh install means wiping previous data.

Step 1 - Create bootable USB and load CentOS ISO

On a separate computer, with a spare USB 8GB or more that you are willing to part with, assuming Windows.

  1. If you need the ISO, download CentOS 7.9 from their mirror website - http://isoredirect.centos.org/centos/7/isos/x86_64/

     Example of downloading a CentOS ISO file

    Most important thing is that it is CentOS 7. The update steps later in these instructions will automatically bring it to latest CentOS 7.x available. At the time of writing this, CentOS goes up to 7.9.

  2. If you need the program to create bootable USB, download https://rufus.ie/
  3. Open Rufus and load the ISO onto the USB drive; select the USB you want to reformat under the 'Device' dropdown, and use 'select' to select the Ubuntu ISO file (it looks something like CentOS-7-x86_64-DVD-2009.iso)
    • Example can be found on Rufus website linked

Step 2 - Plug in bootable USB drive and boot to it

You motherboard BIOS menu may differ, but it is overall the same process. Get to your boot menu, and select the UEFI option for the bootable USB drive that has the Ubuntu ISO file on it. It will take a few minutes to load.

 Example of selecting the UEFI option for the USB drive containing the CentOS ISO file

There will be a very quick image of penguins, and then some loading messages. You should land on a language selection screen.

Step 3 - Reach installation summary menu, choose 'Software Selection', and select the packages to be installed

If you haven't already, choose your language, it should be highlighting English by default. After choosing the language, it will proceed to the CentOS installation summary menu.

Select 'Software Installation' and set left and right columns as following:

  • (Left) GNOME Desktop
  • (Right) Development Tools

Once selected, hit the 'Done' button on the upper-left corner of the screen.

 Selecting the Software Selection


Step 4 - Setup custom drive partitions

FIRST OF ALL, CentOS partitioning tool is not very user-friendly... Forget everything that you know about setting up partitions for other Operating Systems, and read below.

How to setup partitions in CentOS:

  1. Create as many mount 


12 minutes for install to complete


Incomplete. I will upload pictures and continue documenting this later.

Step 3 - Setup your network (mostly skipping screens)

Make sure system has network. Your IT/Network Admins will know whether a network port/cable AT YOUR SITE works or not, not us. Most of this is just skipped (or pressing 'Done' at the bottom) until you reach the 'Guided Storage Configuration' section.

 Example of skipping the network setup screens

Just select 'English' and select 'Done' at the bottom of the page until you reach the 'Guided Storage Configuration' section.


Step 7 - Setting up your Ubuntu OS for NVIDIA drivers and GUI display

After the system reboots, you will be greeted by terminal-mode/command-line only. NO GUI; we'll get to that shortly. We have to first setup the base-system and make it work nicely with NVIDIA drivers. A constant challenge for us is making sure your system's Linux OS has a functional NVIDIA driver installed; easier said than done, as Linux/header updates unlinks NVIDIA modules if local updates are ran.

I condensed these commands so you can copy/paste AFTER you can SSH into your system, OR very carefully type out.

Step 7a - Grant root access for yourself for the next set of commands during this step

FIRST, grant yourself 'root' access by using the command:

sudo bash

Use the password you setup for this system, and then you will be greeted with a 'root@<whatever>'.

Step 7b - Update base-system

apt-get update && apt-get upgrade -y && apt-get dist-upgrade -y

Step 7c - Blacklist Nouveau in system files

Nouveau is a legacy display driver loaded by Linux, it conflicts with NVIDIA and needs to be disabled so NVIDIA driver can install properly. I put this all on one line for the sake of time, but it basically writes the blacklist-nouveau parameter so it doesn't load when Ubuntu boots. Ever.

echo "blacklist nouveau" >> /etc/modprobe.d/blacklist-nouveau.conf && echo "blacklist lbm-nouveau" >> /etc/modprobe.d/blacklist-nouveau.conf && echo "options nouveau modset=0" >> /etc/modprobe.d/blacklist-nouveau.conf && echo "alias nouveau off" >> /etc/modprobe.d/blacklist-nouveau.conf && echo "alias lbm-nouveau off" >> /etc/modprobe.d/blacklist-nouveau.conf && echo options nouveau modeset=0 | tee -a /etc/modprobe.d/nouveau-kms.conf

Step 7d - Get rid if legacy/old NVIDIA modules

apt-get remove nvidia* && apt-get autoremove -y

Step 7e - Install necessary packages for NVIDIA driver and other Docker packages

This takes 5-8 minutes

apt-get install net-tools -y && apt-get install build-essential -y && apt-get install gfortran -y && apt-get install ethtool -y && apt-get install software-properties-common -y && apt-get install curl -y && apt-get install ipmitool -y && apt-get install git -y

Step 7f - Update system files

Should take 1-2 minutes

update-initramfs -u

Step 7g - Install Ubuntu-desktop

This takes quite a bit of time (maybe 10-12 minutes)... So step away from your system after running this.

apt install ubuntu-desktop -y

Step 7h - REBOOT to allow all the changes to apply

Important: Depending on the hardware, your system may feature a primary onboard/offboard display selection. Generally, onboard is the display-port built into the motherboard, and offboard is a GPU-accelerated device. A bit more description here: Onboard/Offboard display notes by Operating System

  • If your system DOES NOT have a built-in display port to the motherboard, meaning NO onboard/offboard selection, the display will naturally default to the only option- the Graphics Card
  • If your system supports onboard/offboard display, results may vary whether the Ubuntu 20.04 login screen will loop or freeze

In the linked article, it shows no confirmed expectation for Ubuntu 20.04, this is because it really does differ depending on the hardware installed, and there are many many combinations of hardware that may or may not allow normal Ubuntu 20.04 behavior AFTER the login screen. If it hangs on the login screen, reboot the system, get to the screen again, and try 'ctrl+alt+f3' to reach a terminal-only screen again so you can resolve it when properly installing the NVIDIA drivers in step 8.

reboot

Step 8 - Installing NVIDIA driver

Once you get access to a terminal, whether getting lucky with the display as the system is locally, or SSH'ed via IP, you can install

#get root access again
sudo bash
<password>

#this downloads the NVIDIA driver .run file to whatever directory you are currently in
#for example sake, this is the latest A6000 Linux Driver file at the time of publishing this article
wget https://us.download.nvidia.com/XFree86/Linux-x86_64/460.56/NVIDIA-Linux-x86_64-460.56.run

#makes the .run file executable
chmod +x NVIDIA-Linux-x86_64-460.56.run

#disables all GUI/display
init 3

#executes the now executable .run file
./NVIDIA-Linux-x86_64-460.56.run

If all steps above were performed correctly, it will NOT complain about nouveau being loaded, and you can just ignore ALL other questions and continue pressing <enter> until the NVIDIA driver installs. If it fails to install, it will clearly say that the NVIDIA Driver installation has failed. If this occurs, try running the installation file again, and provide us the LAST screen before the NVIDIA driver installation fails so we can further investigate.

If it successfully installs, you can run this command to check installed NVIDIA hardware.

#installed NVIDIA hardware
nvidia-smi

#installed NVLinks, if you have it (it can run this command even if you DON'T have them installed)
nvidia-smi nvlink -s

Step 9 - Install Teamviewer

#this is latest Linux Teamviewer install file from their website
wget https://download.teamviewer.com/download/linux/teamviewer_amd64.deb
apt install ./teamviewer_amd64.deb

#to run it, you can get to GUI, open terminal, and simply type in:
teamviewer

If you run into display issues on Step 8 or 9

I cannot stress enough that it is because the system has the onboard/offboard capability, and Ubuntu doesn't know what to do with it sometimes. It is more consistent with CentOS for it to work regardless what the primary display option in BIOS is, but Ubuntu has issues typically with onboard VGA. However, I haven't had issues with a Supermicro 4U with onboard with using the installation method listed above.