Install Proxmox VE 7 on Debian 11 (Bullseye) Rumi, December 16, 2021 In this guide, we will cover a step-by-step installation of Proxmox VE 7 virtualization software on Debian 11 (Bullseye) Linux system. It’s recommended to deploy Proxmox VE server from a Bare-metal_ISO_Installer, but it’s sometimes inevitable to deploy it on a running instance of Debian 11 (Bullseye) server. Setup Pre-requisites For the installation of Proxmox VE 7 on Debian 11 (Bullseye), you need the following requirements to be met; A running instance of Debian Bullseye A 64-bit processor with support for the Intel 64 or AMD64 CPU extensions. Access to Debian server terminal as root or standard user with sudo Server needs internet access Enough hardware resources to be used in Virtualizing other operating systems Install Debian 11 Bullseye: With all the requirements satisfied, proceed with the installation of Proxmox VE 7 on Debian 11 (Bullseye) with the steps discussed in the next sections. Step 1: Update Debian OS Ensure your Debian 11 (Bullseye) operating system is upgraded. sudo apt -y update && sudo apt -y upgrade Once the upgrade process is complete, reboot the server sudo systemctl reboot Step 2: Set Proxmox Server hostname Let’s set a hostname on the server sudo hostnamectl set-hostname proxmox7node01.example.com --static Replaceproxmox7node01.example.com with correct hostname you’re setting on your system. Get the IP address of the primary interface: $ ip ad 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 52:54:00:ef:22:c5 brd ff:ff:ff:ff:ff:ff inet 192.168.200.50/24 brd 192.168.200.255 scope global dynamic noprefixroute enp1s0 valid_lft 1982sec preferred_lft 1982sec inet6 fe80::5054:ff:feef:22c5/64 scope link noprefixroute valid_lft forever preferred_lft forever Update the record on /etc/hosts file with hostname and matching IP address for local resolution without DNS server. $ sudo vim /etc/hosts 192.168.200.50 proxmox7node01.example.com proxmox7node01 Logout and back in to use new hostname $ logout Test if configured hostname is is ok using the hostname command: $ hostname --ip-address 192.168.200.50 Step 3: Add the Proxmox VE repository The Proxmox server packages are distributed in an APT repository. Add the repository to your Debian 11 system by running the commands below: echo "deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription" | sudo tee /etc/apt/sources.list.d/pve-install-repo.list Then import GPG packages signing key: wget http://download.proxmox.com/debian/proxmox-release-bullseye.gpg sudo mv proxmox-release-bullseye.gpg /etc/apt/trusted.gpg.d/proxmox-release-bullseye.gpg chmod +r /etc/apt/trusted.gpg.d/proxmox-release-bullseye.gpg Update your APT sources list $ sudo apt update Hit:1 http://deb.debian.org/debian bullseye InRelease Hit:2 http://deb.debian.org/debian bullseye-updates InRelease Hit:3 http://security.debian.org/debian-security bullseye-security InRelease Get:4 http://download.proxmox.com/debian/pve bullseye InRelease [3053 B] Hit:5 http://deb.debian.org/debian bullseye-backports InRelease Get:6 http://download.proxmox.com/debian/pve bullseye/pve-no-subscription amd64 Packages [186 kB] Fetched 189 kB in 0s (435 kB/s) Reading package lists... Done Building dependency tree... Done Reading state information... Done 1 package can be upgraded. Run 'apt list --upgradable' to see it. You can see we have an upgrade available after adding the repo. Let’s run the system upgrade command: $ sudo apt full-upgrade Reading package lists... Done Building dependency tree... Done Reading state information... Done Calculating upgrade... Done The following packages will be upgraded: ifupdown 1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Need to get 82.0 kB of archives. After this operation, 2048 B disk space will be freed. Do you want to continue? [Y/n] y Get:1 http://download.proxmox.com/debian/pve bullseye/pve-no-subscription amd64 ifupdown amd64 0.8.36+pve1 [82.0 kB] Fetched 82.0 kB in 0s (2558 kB/s) Reading changelogs... Done perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LC_CTYPE = "UTF-8", LC_TERMINAL = "iTerm2", LANG = "en_US.UTF-8" are supported and installed on your system. perl: warning: Falling back to a fallback locale ("en_US.UTF-8"). locale: Cannot set LC_CTYPE to default locale: No such file or directory locale: Cannot set LC_ALL to default locale: No such file or directory (Reading database ... 137105 files and directories currently installed.) Preparing to unpack .../ifupdown_0.8.36+pve1_amd64.deb ... Unpacking ifupdown (0.8.36+pve1) over (0.8.36) ... Setting up ifupdown (0.8.36+pve1) ... Processing triggers for man-db (2.9.4-2) ... Adding Proxmox VE Ceph Repository: This is Proxmox VE’s main Ceph repository and holds the Ceph packages for production use. You can also use this repository to update only the Ceph client. echo "deb http://download.proxmox.com/debian/ceph-pacific bullseye main" | sudo tee /etc/apt/sources.list.d/ceph.list Step 4: Install Proxmox VE 7 packages With the repository added, we can now install Proxmox VE packages on Debian 11 (Bullseye) system: sudo apt update sudo apt install proxmox-ve postfix open-iscsi The installation time will depend on other variables such as internet connectivity and hard disk write speed: .... The following packages will be REMOVED: firmware-linux-free ifupdown The following NEW packages will be installed: attr bridge-utils ceph-common ceph-fuse cifs-utils corosync criu cstream curl dmeventd dtach ebtables faketime fonts-font-awesome fonts-glyphicons-halflings genisoimage glusterfs-client glusterfs-common gnutls-bin hdparm ibverbs-providers idn ifupdown2 ipset keyutils libaio1 libanyevent-http-perl libanyevent-perl libappconfig-perl libapt-pkg-perl libasync-interrupt-perl libauthen-pam-perl libbabeltrace1 libboost-context1.74.0 libboost-coroutine1.74.0 libboost-program-options1.74.0 libbytes-random-secure-perl libcephfs2 libcfg7 libcmap4 libcommon-sense-perl libconvert-asn1-perl libcorosync-common4 libcpg4 libcrypt-openssl-bignum-perl libcrypt-openssl-random-perl libcrypt-openssl-rsa-perl libcrypt-random-seed-perl libcrypt-ssleay-perl libdbi1 libdevel-cycle-perl libdevmapper-event1.02.1 libdigest-bubblebabble-perl libdigest-hmac-perl libev-perl libfaketime libfdt1 libfile-chdir-perl libfile-readbackwards-perl libfilesys-df-perl libgfapi0 libgfchangelog0 libgfrpc0 libgfxdr0 libglusterd0 libglusterfs0 libgnutls-dane0 libgnutlsxx28 libgoogle-perftools4 libgssapi-perl libguard-perl libibverbs1 libinih1 libio-multiplex-perl libipset13 libiscsi7 libisns0 libjemalloc2 libjs-bootstrap libjs-extjs libjs-jquery libjs-qrcodejs libjson-perl libjson-xs-perl libknet1 libleveldb1d liblinux-inotify2-perl liblvm2cmd2.03 libmath-random-isaac-perl libmath-random-isaac-xs-perl libmime-base32-perl libnet-dns-perl libnet-dns-sec-perl libnet-ip-perl libnet-ldap-perl libnet-libidn-perl libnet1 libnetaddr-ip-perl libnetfilter-log1 libnfsidmap2 libnozzle1 libnvpair3linux liboath0 libopeniscsiusr libopts25 libposix-strptime-perl libproxmox-acme-perl libproxmox-acme-plugins libproxmox-backup-qemu0 libpve-access-control libpve-apiclient-perl libpve-cluster-api-perl libpve-cluster-perl libpve-common-perl libpve-guest-common-perl libpve-http-server-perl libpve-rs-perl libpve-storage-perl libpve-u2f-server-perl libqb100 libqrencode4 libquorum5 librados2 librados2-perl libradosstriper1 librbd1 librdmacm1 librrd8 librrds-perl libsdl1.2debian libsocket6-perl libspice-server1 libstatgrab10 libstring-shellquote-perl libtcmalloc-minimal4 libtemplate-perl libterm-readline-gnu-perl libtpms0 libtypes-serialiser-perl libu2f-server0 libunbound8 liburcu6 libusbredirparser1 libuuid-perl libuutil3linux libvotequorum8 libxml-libxml-perl libxml-namespacesupport-perl libxml-sax-base-perl libxml-sax-expat-perl libxml-sax-perl libyaml-libyaml-perl libzfs4linux libzpool5linux lvm2 lxc-pve lxcfs lzop nfs-common novnc-pve numactl open-iscsi postfix powermgmt-base proxmox-archive-keyring proxmox-backup-client proxmox-backup-file-restore proxmox-backup-restore-image proxmox-mini-journalreader proxmox-ve proxmox-widget-toolkit pve-cluster pve-container pve-docs pve-edk2-firmware pve-firewall pve-firmware pve-ha-manager pve-i18n pve-kernel-5.13 pve-kernel-5.13.19-2-pve pve-kernel-helper pve-lxc-syscalld pve-manager pve-qemu-kvm pve-xtermjs python3-ceph-argparse python3-cephfs python3-cffi-backend python3-cryptography python3-gpg python3-jwt python3-prettytable python3-protobuf python3-rados python3-rbd python3-samba python3-tdb qemu-server qrencode rpcbind rrdcached rsync samba-common samba-common-bin samba-dsdb-modules smartmontools smbclient socat spiceterm sqlite3 ssl-cert swtpm swtpm-libs swtpm-tools thin-provisioning-tools uidmap vncterm xfsprogs xsltproc zfs-zed zfsutils-linux zstd 0 upgraded, 223 newly installed, 2 to remove and 0 not upgraded. Need to get 302 MB of archives. After this operation, 1780 MB of additional disk space will be used. Do you want to continue? [Y/n] y If you have a mail server in your network, you should configure postfix as a satellite system, and your existing mail server will be the ‘relay host’ which will route the emails send by the proxmox server to the end recipient. If you don’t know what to enter here, choose local only. Confirm system mail name / update accordingly. Confirm the installation completes without any errors: ...... Created symlink /etc/systemd/system/multi-user.target.wants/pvedaemon.service → /lib/systemd/system/pvedaemon.service. Created symlink /etc/systemd/system/multi-user.target.wants/pveproxy.service → /lib/systemd/system/pveproxy.service. Created symlink /etc/systemd/system/multi-user.target.wants/spiceproxy.service → /lib/systemd/system/spiceproxy.service. Created symlink /etc/systemd/system/multi-user.target.wants/pvestatd.service → /lib/systemd/system/pvestatd.service. Created symlink /etc/systemd/system/getty.target.wants/pvebanner.service → /lib/systemd/system/pvebanner.service. Created symlink /etc/systemd/system/multi-user.target.wants/pvescheduler.service → /lib/systemd/system/pvescheduler.service. Created symlink /etc/systemd/system/timers.target.wants/pve-daily-update.timer → /lib/systemd/system/pve-daily-update.timer. Created symlink /etc/systemd/system/sysinit.target.wants/pvenetcommit.service → /lib/systemd/system/pvenetcommit.service. Created symlink /etc/systemd/system/pve-manager.service → /lib/systemd/system/pve-guests.service. Created symlink /etc/systemd/system/multi-user.target.wants/pve-guests.service → /lib/systemd/system/pve-guests.service. Backing up lvm.conf before setting pve-manager specific settings.. '/etc/lvm/lvm.conf' -> '/etc/lvm/lvm.conf.bak' Setting 'global_filter' in /etc/lvm/lvm.conf to prevent zvols from being scanned: global_filter=["a|.*|"] => global_filter=["r|/dev/zd.*|"] Setting up proxmox-ve (7.1-1) ... Processing triggers for mailcap (3.69) ... Processing triggers for fontconfig (2.13.1-4.2) ... Processing triggers for desktop-file-utils (0.26-1) ... Processing triggers for initramfs-tools (0.140) ... update-initramfs: Generating /boot/initrd.img-5.13.19-2-pve Running hook script 'zz-proxmox-boot'.. Re-executing '/etc/kernel/postinst.d/zz-proxmox-boot' in new private mount namespace.. No /etc/kernel/proxmox-boot-uuids found, skipping ESP sync. Processing triggers for hicolor-icon-theme (0.17-2) ... Processing triggers for gnome-menus (3.36.0-1) ... Processing triggers for libc-bin (2.31-13+deb11u2) ... Processing triggers for rsyslog (8.2102.0-2) ... Processing triggers for man-db (2.9.4-2) ... Processing triggers for proxmox-backup-file-restore (2.1.2-1) ... Updating file-restore initramfs... 11292 blocks Processing triggers for pve-ha-manager (3.3-1) ... root@proxmox7node01:~$ Reboot your Debian system after installation to boot with Proxmox VE kernel. sudo systemctl reboot Check if Port 8006 is bound to Proxmox VE Proxy service $ ss -tunelp | grep 8006 tcp LISTEN 0 4096 *:8006 *:* uid:33 ino:25414 sk:18 cgroup:/system.slice/pveproxy.service v6only:0 <-> Step 5: Access Proxmox VE web interface From your Workstation, connect to the Proxmox VE admin web console on (https://youripaddress:8006). Select “PAM Authentication” and authenticate with server’s root user password to access Proxmox VE dashboard which has a look like below: Once logged in, create a Linux Bridge called vmbr0, Add the first network interface to be used by the bridge being created. Src: https://computingforgeeks.com/how-to-install-proxmox-ve-on-debian-bullseye/ Administrations Configurations (Linux) DebianDebian 11ProxmoxProxmox 7