Proxmox VE 9 USB Installation
Index
Proxmox VE 9 USB Installation
Proxmox VE 9 ISO Download
Download link: https://www.proxmox.com/en/downloads/proxmox-virtual-environment/iso/proxmox-ve-9-0-iso-installer
USB ISO Writing
Steps to create a Proxmox VE (PVE) installation USB using the dd command, applicable for Linux, macOS, or WSL (Windows Subsystem for Linux) environments:
✅ Preparation
-
Download PVE ISO Image
Obtain the latest ISO file from the official website:
https://www.proxmox.com/en/downloads -
Insert USB Drive (≥8GB)
Ensure the USB drive contains no important data, as it will be completely erased.
✅ Create Bootable USB with dd (Linux/macOS)
-
Identify USB Device Name
Open a terminal and run:lsblkOr on macOS:
diskutil listLocate your USB drive, e.g.,
/dev/sdX(Linux) or/dev/disk2(macOS). Be cautious not to select the wrong device, as it may erase your system disk! -
Unmount USB Drive (Important)
Linux:sudo umount /dev/sdX*macOS:
diskutil unmountDisk /dev/diskX -
Write ISO to USB
sudo dd if=./proxmox-ve_9.x-x.iso of=/dev/sdX bs=4M status=progressFor macOS, use:
sudo dd if=./proxmox-ve_9.x-x.iso of=/dev/rdiskX bs=1mif=specifies the ISO file pathof=specifies the USB device pathbs=4Mspeeds up the writing process- After completion, run:
sync
✅ Start Installation
- Insert the prepared USB into the target machine.
- Boot and press F12 / ESC / DEL to enter BIOS or boot menu.
- Select the USB drive to boot.
- Enter the Install Proxmox VE interface and follow the prompts to complete the installation.
⚠️ Notes
- Verify Device Path: The
ddcommand executes without confirmation; selecting the wrong device will result in data loss. - Use Entire Device: Use
/dev/sdX(not/dev/sdX1) for the USB device. - Windows users can use Rufus in DD mode.
Alternatively, you can use GUI tools like Balena Etcher or Rufus (Windows) to achieve the same result as dd.
Replace Debian Source
Since Proxmox VE is based on Debian, you can switch to Aliyun's mirror for faster downloads. Edit /etc/apt/sources.list and add the following:
deb http://mirrors.aliyun.com/debian/ trixie main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ trixie main non-free contrib
deb http://mirrors.aliyun.com/debian-security/ trixie-security main
deb-src http://mirrors.aliyun.com/debian-security/ trixie-security main
deb http://mirrors.aliyun.com/debian/ trixie-updates main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ trixie-updates main non-free contrib
deb http://mirrors.aliyun.com/debian/ trixie-backports main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ trixie-backports main non-free contrib
Then run:
apt-get update
Enable IPv6
Edit /etc/sysctl.conf and add the following:
net.ipv6.conf.all.accept_ra=2
net.ipv6.conf.default.accept_ra=2
net.ipv6.conf.vmbr0.accept_ra=2
net.ipv6.conf.all.autoconf=2
net.ipv6.conf.default.autoconf=2
net.ipv6.conf.vmbr0.autoconf=2
Then execute:
sysctl -p; systemctl restart networking
Verify IPv6 configuration with:
ip a
Example output:
10: vmbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:f0:d2:d0:9a:b3 brd ff:ff:ff:ff:ff:ff
inet 192.168.3.2/24 scope global vmbr0
valid_lft forever preferred_lft forever
inet6 240e:389:eb1:92e0:2f0:d2ff:fed0:9ab3/64 scope global dynamic mngtmpaddr proto kernel_ra
valid_lft 237976sec preferred_lft 151576sec
inet6 fe80::2f1:d2ff:fed0:9ab3/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
If the inet6 address starts with 240e, a public IPv6 address has been successfully obtained.