The Proxmox VE (Virtual Environment) provides an open-source server management platform for virtualisation, based on Debian Linux operating system. It has an integrated web-based user interface to manage Virtual Machines (VMs) and Linux Containers (LXC). The VE has low overhead (1-3% performance loss compared to using standalone server).
The intention is to run NAS software, media server and home control server all in one device in VMs and Docker containers.
Make Promox USB Boot Media
- Option 1. Make Proxmox USB boot disk
- Download latest Proxmox ISO image (link) 7.4
- Flash to USB drive with balenaEtcher
- On completion remove USB
- Option 2. Use Ventoy USB
- Copy latest Proxmox ISO image as above
Prepare Hardware
- For TITAN tower server
- Plug keyboard & mouse into USB slots on rear of server
- Boot server, hold DEL key for setup
- Check Intel Virtualisation / VT-d enabled in BIOS
- Plug Proxmox USB into top front RHS slot
- Boot server, press F11 for boot menu
- For HYPERION server
- Plug keyboard and USB drive into front USB slots
- Power on PC, press F10 to access BIOS
- Move to Security tab -> Secure Boot configuration
- Set Legacy Support = Enabled
- Set Secure Boot = Disabled
- Move to Security tab -> System Security
- Set Virtualization Technology (VTx) = Enabled
- Set Virtualization Technology Directed I/O (VTd) = Enabled
- Reboot the PC, press F9 to select boot device
- Select USB drive in UEFI list
-
- If using Venotoy USB, select Proxmox ISO from list
- Boot in normal mode
- If using Venotoy USB, select Proxmox ISO from list
-
- This will start booting Proxmox from the USB drive
Install Proxmox on Server
- Welcome to Proxmox screen: select Install Proxmox VE
- EULA screen: click on I Agree
- PVE screen: select Target Harddisk from dropdown (240GB SSD), click Next
- Have option here to use two drives and RAID1 (mirror)
- ADD DISK TO SINGLE TO MAKE A BOOTABLE MIRROR
- Initially only used one Samsung 850 EVO 120GB drive, formatted ZFS
- Added second SSD to server, then used following process:
- Goto node -> Disks, identify current drive (sdb), and new one (sda)
- Replicate partitioning of original disk to new disk
1
sgdisk /dev/sdb -R /dev/sda
- Randomise GUIDs in new disk to ensure unique
1
sgdisk --randomize-guids /dev/sda
- Make new disk bootable
1 2
pve-efiboot-tool format /dev/sda2 --force pve-efiboot-tool init /dev/sda2
- Get the disk IDs
1
ls -lsah /dev/disk/by-id/</strong>
Shows all disks by ID:
1 2
current = ata-Samsung_SSD_850_EVO_120GB_S21UNXAG403730J-part3 new = ata-SanDisk_SSD_PLUS_240GB_22190N449310-part3
Attach the new disk to the existing ZFS pool. The -f forces the action as the Sandisk had been used in the TrueNAS server and was already “part” of a ZFS pool and would not overwrite
1 2
zpool attach -f rpool <current_device_ID> <new_device_ID> zpool status
Should show the mirror created, and that resilvering to the new disk is in hand. Can also go to Proxmox GUI, node -> Disks -> ZFS. Double click on ‘rpool’ to get Status. Note that if the two SSD are different sizes and the mirrored pool is the size of the smallest SSD
- Location and Time Zone screen: select UK / Europe/London / UK, press Next
- Admin Password and Email Address screen:
- Set password [STRONGBOX] and email address, click Next
- Management Network Config screen:
- Note: need to set Static IP Reservation in router against Proxmox MAC address. Need to build server first to get MAC address from >_Shell in pve, and type ip a
- Proxmox TITAN : AC:1F:6B:6D:81:0A, 192.168.0.8
- Proxmox Hyperion: C4:34:6B:57:5C:4C, 192.168.0.20
- Set Hostname = titan.proxmox (TITAN) hyperion.proxmox (HYPERION), should be allocated DHCP from reserved list in router, click Next
- Note: need to set Static IP Reservation in router against Proxmox MAC address. Need to build server first to get MAC address from >_Shell in pve, and type ip a
- Summary screen: check entries ok, Auto reboot option checked, and click Install
- Wait until installation completes
- As server reboots, remove USB drive
- Once server reboots, screen will show URL to connect to, and the login prompt
Configure Proxmox remotely
- On main computer, go to
http://<IP_ADDRESS>:8006
, using IP address from above - At the Connection is not Private message, click Show Details, and Visit this Website, confirm and enter password (message is due to invalid SSL certificate)
- Login to Username = root, Password = [STRONGBOX], click Login
- Ignore the No valid subscription (NVS) message, keep it free!, click OK
Proxmox Post Install
This script provides options for managing Proxmox VE repositories, including disabling the Enterprise Repo, adding or correcting PVE7 sources, enabling the No-Subscription Repo, adding the test Repo, disabling the subscription nag, updating Proxmox VE, and rebooting the system. Run the command below in the Proxmox VE Shell, answer “y” to each option:
1
bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/post-pve-install.sh)"
Add CPU temperatures to summary panel
Followed this guide with modifications to fix errors, and place the information in a different location.
-
In Proxmox node shell type
apt-get install lm-sensors
- To check installed okay, type
sensors
, should get something like1 2 3 4 5
coretemp-isa-0000 Adapter: ISA adapter Package id 0: +33.0°C (high = +80.0°C, crit = +100.0°C) Core 0: +32.0°C (high = +80.0°C, crit = +100.0°C) Core 1: +35.0°C (high = +80.0°C, crit = +100.0°C)
- Alternatively type
sensors -j
to see output in JSON format
- To check installed okay, type
-
Edit perl module in Proxmox to run
sensors
, typenano /usr/share/perl5/PVE/API2/Nodes.pm
- Press F6, search for
my $dinfo
and press Enter - Before this section add:
1
$res->{thermalstate} = `sensors`;
- Press Ctrl-O, Enter and Ctrl-X to save
- Press F6, search for
-
Edit javascript file to add display info to summary panel, type
nano /usr/share/pve-manager/js/pvemanagerlib.js
- Press F6, search for second
loadavg
; press Enter, F6, Enter - In the
itemId: 'wait'
section above delete therowspan: 2
to allow the new CPU Temperatures line to sit below the IO delay line - Below the
loadavg
section add:1 2 3 4 5 6 7 8 9 10 11 12 13
{ itemId: 'thermal', printBar: false, iconCls: 'fa fa-fw fa-thermometer-half', title: gettext('CPU Core Temperature'), textField: 'thermalstate', renderer: function(value) { let objValue = JSON.parse(value); let core0 = objValue["coretemp-isa-0000"]["Core 0"]["temp2_input"]; let core1 = objValue["coretemp-isa-0000"]["Core 1"]["temp3_input"]; return `0: ${core0}°C | 1: ${core1}°C`; } },
-
Press Ctrl-O, Enter and Ctrl-X to save
-
Restart the Summary page, type
systemctl restart pveproxy
- Go to the Summary page. If the page locks up, refresh the browser tab
- Press F6, search for second
Update Proxmox (as required)
- Click on Proxmox server hostname under Datacenter, then Updates, then Refresh button at top
- Click [X] at top right to close dialog; page will reload with any updates
- Click Upgrade button, and in popup Y key and Enter
- After updating, close the terminal window
- Click Refresh button again to confirm all up to date, should get No updates available
Set boot disk order in BIOS (F11)
References
- Change the IP address of a Proxmox host (link)