Proxmox¶
Network¶
A good setup in my opinion has a dedicated interface for managing the Proxmox system. None of the guests are bridged onto this interface. The dedicated interface is defined as a bridge by Proxmox during setup; I would undo that to prevent selecting the wrong bridge when creating a VM.
Furthermore, autoconf should be disabled on the production bridge so that neither a router nor an address gets configured there. If you want to be extra safe, disable IPv6 entirely on the bridge to exclude the possibility of guests establishing unauthorized contact with the Proxmox system via the link-local address.
/etc/network/interfaces
auto lo
iface lo inet loopback
auto enp10s0
iface enp10s0 inet static
address 10.10.100.100/26
gateway 10.10.129.1
iface enp10s0 inet6 static
address 2001:aff3:fee:7300::17/64
gateway 2001:aff3:fee:7300::1
iface enp15s0 inet manual
auto vmbr0
iface vmbr0 inet manual
bridge-ports enp15s0
bridge-stp off
bridge-fd 0
bridge-vlan-aware yes
bridge-vids 2-4094
iface vmbr0 inet6 manual
autoconf 0
accept_ra 0
Enlarge a Guest's Partition on a ZFS Volume¶
In this case it's not the boot partition that gets enlarged, but an additional volume. This probably works live too, but I opted for offline expansion to be safe.
- Check if there is still free space on the ZFS volume that you want to assign to the disk
- Shut down the guest
- Select hard disk -> Disk Action -> Resize
- Specify how many GB the disk should be enlarged by, here +500G
- Start the guest again
- Check with lsblk which disk/partition it is, here sdb5
- Alpine guest uses an ext4 partition on MBR
- Unmount the partition, here umount /dev/sdb5'
- apk add cfdisk
-cfdisk /dev/sdb- Select partition and resize
-resize2fs /dev/sdb5`
These tools are also practical for these steps: parted, fdisk, gdisk, parted
Community Edition Repo¶
mv /etc/apt/sources.list.d/pve-enterprise.list ~
echo "deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription" > /etc/apt/sources.list.d/pve-community.list
PCIe GPU Passthrough¶
using the example with - Asrock X470 Taichi Ultimate - AMD Ryzen 3700x - Nvidia GTX 1060 with help from: - https://blog.quindorian.org/2018/03/building-a-2u-amd-ryzen-server-proxmox-gpu-passthrough.html/ - https://forum.proxmox.com/threads/gpu-passthrough-radeon-6800xt-and-beyond.86932/ - https://pve.proxmox.com/wiki/PCI(e)_Passthrough
Procedure¶
- Enable IOMMU in BIOS. Many boards don't support this at all -> consult the manual
- Check if IOMMU is active with
- Set the following line in /etc/default/grub then
- Blacklist drivers (I'm also blacklisting radeon here because I plan to switch to radeon):
- Load modules
- Update initramfs
- Identify GPU and note the PCI id, here: 0e:00
- Note the secondary IDs, here 10de:1c03 and 10de:10f1:
- Use these IDs and then reboot
Hackintosh Proxmox¶
- with macOS 12 Monterey
- Obtain Monterey 12 iso
- BTRFS as basis for Proxmox guest
- GPU Passthrough
- Dedicated SATA SSD for Proxmox
- Dedicated NVMe SSD with BTRFS for macOS guest
Procedure¶
- Enable EFI IOMMU (motherboards without IOMMU cannot do GPU passthrough)
- Install Proxmox 7.2 (not BIOS but EFI)
- Enable Proxmox community repo
- Install basic tools (vim git mc etc.)
- Perform system update
- Configure networking (here a simple bridge, Proxmox and macOS in the same network)
- Create and mount btrfs NVMe in /mainbtrfs
- Put opencore iso to proxmox
- Put monterey iso to proxmox
- create VM
- ISO Opencore
- OS: other
- machine: q35
- bios: UEFI
- untick: preenroll keys
- choose uefi disk
- disk: virtio block
- cpu type: penryn if you have AMD Ryzen
- NIC type vmware After creating, add additional CDROM
- choose monterey Now edit pve conf
- for AMD add args: -device isa-applesmc,osk=\"ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc\" -smbios type=2 -device usb-kbd,bus=ehci.0,port=2 -cpu Penryn,kvm=on,vendor=GenuineIntel,+kvm_pv_unhalt,+kvm_pv_eoi,+hypervisor,+invtsc,+pcid,+ssse3,+sse4.2,+popcnt,+avx,+avx2,+aes,+fma,+fma4,+bmi1,+bmi2,+xsave,+xsaveopt,check change media=cdrom to cache=unsafe Change boot order to ide2 first and then ide0 tbc