Upgrade Proxmox 7 ke 9: Langkah 7.4 → 8.4 → 9.2 dan Solusi Kendalanya

Upgrade Proxmox 7 ke 9: langkah 7.4 ke 8.4 ke 9.2 tanpa instal ulang

Bayangkan Anda tinggal di lantai 1 sebuah gedung dan ingin pindah ke lantai 3. Anda tidak bisa melompat langsung, tetapi harus naik tangga satu lantai demi satu lantai. Di setiap bordes, Anda berhenti sebentar untuk memastikan semua barang masih terbawa. Begitulah cara kerja upgrade Proxmox dari versi 7 ke versi 9: wajib lewat versi 8, dan Anda perlu mengecek setiap tahap sebelum lanjut.

Pada tutorial ini kami membagikan proses nyata saat meng-upgrade server Proxmox kantor dari 7.4 ke 8.4 lalu ke 9.2.24 tanpa instal ulang. Selain langkah resminya, kami juga menceritakan enam kendala yang benar-benar muncul, mulai dari repo yang tidak terjangkau lewat Starlink sampai panel yang macet saat boot pertama. Semua perintah di artikel ini adalah perintah yang kami jalankan. Selain itu, kami mengambil screenshot dari server asli lalu menyensor data sensitifnya.

Diagram jalur upgrade Proxmox 7.4 ke 8.4 ke 9.2 beserta kendala di setiap tahap
Jalur upgrade yang kami tempuh, lengkap dengan kendala dan solusinya di setiap tahap.

Kenapa Upgrade Proxmox Harus Bertahap?

Setiap versi besar Proxmox VE memakai basis Debian yang berbeda. Oleh karena itu, upgrade Proxmox sebenarnya juga upgrade sistem operasi Debian di bawahnya. Debian sendiri hanya mendukung upgrade dari satu rilis ke rilis berikutnya, sehingga lompatan langsung dari Debian 11 ke 13 berada di luar dukungan dan rawan merusak paket.

Versi ProxmoxBasis DebianKernelPemeriksa upgrade
7.4Debian 11 (bullseye)5.15pve7to8
8.4Debian 12 (bookworm)6.8pve8to9
9.2Debian 13 (trixie)7.0–

Selain itu, Proxmox VE 7 sudah lama tidak mendapat update keamanan. Akibatnya, server yang masih di versi 7 rentan terhadap celah yang sudah lama tertutup di versi baru. Kabar baiknya, Proxmox menyediakan skrip pemeriksa resmi (pve7to8 dan pve8to9) yang mendeteksi masalah sebelum Anda melangkah ke tahap berikutnya.

Persiapan Sebelum Upgrade Proxmox

Pertama, backup semua VM dan container. Server kami saat itu masih kosong, tetapi jika server Anda sudah berisi, langkah ini wajib. Simpan hasil backup di storage lain, misalnya NAS atau disk terpisah.

# backup semua VM/LXC ke storage bernama "backup" (sesuaikan)
vzdump --all --mode snapshot --storage backup --compress zstd

# cek versi sekarang dan sisa ruang disk
pveversion
df -h / /boot

Kemudian pastikan Anda punya akses konsol langsung ke server, misalnya monitor dan keyboard, IPMI, atau iLO. Jika jaringan bermasalah setelah reboot, hanya akses inilah yang bisa menolong. Terakhir, sediakan waktu sekitar satu jam. Proses kami sendiri selesai dalam ±30 menit, tetapi koneksi internet yang lambat bisa membuatnya lebih lama.

Tahap 1: Perbarui Proxmox 7.4 ke Rilis Terakhir

Sebelum pindah ke versi 8, Anda harus memperbarui Proxmox 7.4 dulu ke rilis paling akhir. Setelah itu, jalankan pemeriksa pve7to8.

apt update
apt dist-upgrade -y
pveversion
pve7to8 --full

Jangan lanjut ke tahap 2 sebelum bagian SUMMARY dari pve7to8 menunjukkan FAILURES: 0. Sebaiknya Anda juga membereskan peringatan (WARNINGS). Di server kami, tahap yang terlihat sepele ini justru memunculkan tiga kendala.

Kendala 1: Repo Proxmox Tidak Terjangkau

Perintah apt update pertama langsung gagal. Server kami tersambung ke internet lewat Starlink, dan saat itu DNS mengarahkan download.proxmox.com ke node CDN sg3 di Singapura. Ternyata rute dari Starlink ke node tersebut tidak sampai. Selain itu, apt juga mencoba alamat IPv6, padahal jaringan kantor tidak punya rute IPv6.

Output apt-get update gagal mengambil repo Proxmox dan hasil uji node CDN Proxmox
Tangkapan asli saat upgrade: node sg3 timeout, sedangkan node sg.cdn menjawab dalam 0,12 detik.

Untuk mencari node yang terjangkau, kami menguji beberapa node CDN resmi Proxmox satu per satu dengan perintah berikut.

for h in sg3.cdn.proxmox.com sg.cdn.proxmox.com au.cdn.proxmox.com us.cdn.proxmox.com de.cdn.proxmox.com; do
  ip=$(getent ahostsv4 $h | head -1 | cut -d" " -f1)
  curl -s -o /dev/null -m 15 -w "%{http_code} %{time_total}s $h ($ip)\n" \
    --resolve download.proxmox.com:80:$ip http://download.proxmox.com/debian/pve/dists/trixie/Release \
    || echo "GAGAL $h ($ip)"
done

Opsi --resolve memaksa curl memakai IP node tertentu tanpa mengubah nama domainnya. Dengan demikian, Anda bisa melihat node mana yang menjawab 200 paling cepat. Di jaringan kami, pemenangnya adalah sg.cdn.proxmox.com.

Arahkan apt ke Node yang Terjangkau

Diagram penyebab apt Proxmox gagal lewat Starlink dan solusi memakai node CDN sg.cdn
Penyebab dan solusi masalah repo: paksa IPv4, lalu arahkan repo ke node yang terjangkau.
echo 'Acquire::ForceIPv4 "true";' > /etc/apt/apt.conf.d/99force-ipv4
echo "deb http://sg.cdn.proxmox.com/debian/pve bullseye pve-no-subscription" \
  > /etc/apt/sources.list.d/pve-no-subscription.list
apt update

Baris pertama membuat apt hanya memakai IPv4, sehingga tidak lagi membuang waktu mencoba IPv6. Kemudian baris kedua menulis ulang repo no-subscription agar langsung menuju node sg.cdn. Perlu Anda ingat, langkah ini hanya perlu jika repo bawaan memang tidak terjangkau. Dua hari kemudian, node sg3 ternyata sudah terjangkau lagi dari jaringan yang sama, jadi masalahnya bersifat rute sementara.

Kendala 2 dan 3: Repo Security 404 dan Peringatan GRUB

Setelah repo Proxmox beres, apt gagal lagi dengan pesan 404 Not Found dari security.debian.org untuk paket xsltproc. Penyebabnya, Debian 11 sudah melewati masa dukungannya, sehingga sebagian paket di repo security bullseye sudah tidak tersedia. Karena kita akan segera pindah ke Debian 12, kita cukup menonaktifkan repo tersebut sementara.

cp /etc/apt/sources.list /root/sources.list.pve7
sed -i "s|^deb http://security.debian.org bullseye-security|#&|" /etc/apt/sources.list
apt update && apt dist-upgrade -y

pve7to8 --full
# WARN: System booted in uefi mode but grub-efi-amd64 meta-package not installed ...
apt install -y grub-efi-amd64
pve7to8 --full

Perintah sed menambahkan tanda # di depan baris security, sedangkan perintah cp menyimpan salinan aslinya di /root. Selanjutnya, pve7to8 memberi satu peringatan: server boot dengan UEFI, tetapi paket grub-efi-amd64 belum terpasang. Tanpa paket itu, apt tidak ikut memperbarui bootloader di partisi EFI. Setelah kami memasang paket itu, pemeriksa menunjukkan 0 peringatan dan 0 kegagalan.

Tahap 2: Upgrade Proxmox 7 ke 8

Ganti Repo ke Debian 12 (bookworm)

cat > /etc/apt/sources.list <<EOF
deb http://deb.debian.org/debian bookworm main contrib
deb http://deb.debian.org/debian bookworm-updates main contrib
deb http://security.debian.org/debian-security bookworm-security main contrib
EOF

echo "deb http://sg.cdn.proxmox.com/debian/pve bookworm pve-no-subscription" \
  > /etc/apt/sources.list.d/pve-no-subscription.list
sed -i "s/bullseye/bookworm/" /etc/apt/sources.list.d/pve-enterprise.list
apt update

Perintah di atas mengubah semua repo dari bullseye ke bookworm, termasuk repo enterprise. Jika Anda tidak punya kendala repo seperti kami, cukup gunakan download.proxmox.com pada baris kedua. Kami tetap mengganti nama rilis di repo enterprise agar tidak tertinggal di versi lama, walaupun tanpa langganan Anda tidak bisa memakai repo ini.

Jalankan Upgrade di Latar Belakang

Upgrade besar bisa memakan waktu belasan menit. Jika koneksi SSH terputus di tengah jalan, proses dpkg bisa ikut berhenti dan meninggalkan sistem setengah ter-upgrade. Oleh karena itu, kami menjalankannya sebagai unit systemd sementara, sehingga proses tetap berjalan walaupun SSH putus.

systemd-run --unit=pve-upg8 \
  --setenv=DEBIAN_FRONTEND=noninteractive --setenv=APT_LISTCHANGES_FRONTEND=none \
  bash -c "apt-get -y -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold dist-upgrade > /root/upg-8.log 2>&1; echo SELESAI exit=\$? >> /root/upg-8.log"

# pantau dari sesi mana pun
tail -f /root/upg-8.log

Opsi --force-confdef dan --force-confold membuat dpkg mempertahankan file konfigurasi lama yang sudah Anda ubah, tanpa bertanya. Hasilnya, upgrade tidak tertahan oleh pertanyaan interaktif. Setelah log menampilkan SELESAI exit=0, periksa sisa error dengan grep -E "^(E|W):" /root/upg-8.log dan dpkg --audit.

Kendala 4: Kunci Nama Kartu Jaringan Sebelum Reboot

Ini pelajaran dari kejadian sebelumnya. Saat kami baru menginstal Proxmox, konfigurasi bridge vmbr0 menunjuk ke enp8s0, yaitu kartu jaringan tambahan yang kemudian kami lepas. Kartu yang tersisa bernama enp5s0. Akibatnya, bridge tidak punya port fisik, statusnya DOWN, dan server hilang dari jaringan. Kami harus memperbaikinya langsung dari monitor server.

Nama seperti enp5s0 berasal dari posisi slot PCI, sehingga bisa berubah ketika kernel atau perangkat berganti. Karena upgrade ini mengganti kernel dari 5.15 ke 6.8, kami mengunci nama kartu berdasarkan MAC address sebelum reboot.

MAC=$(cat /sys/class/net/enp5s0/address)
mkdir -p /etc/systemd/network
cat > /etc/systemd/network/10-nic0.link <<EOF
[Match]
MACAddress=$MAC
Type=ether

[Link]
Name=nic0
EOF

cp /etc/network/interfaces /root/interfaces.pre-nic0
sed -i "s/enp5s0/nic0/g" /etc/network/interfaces
update-initramfs -u -k all

File .link memberi tahu systemd agar kartu dengan MAC tersebut selalu bernama nic0. Setelah itu, sed mengganti semua enp5s0 di konfigurasi jaringan. Terakhir, update-initramfs memastikan aturan nama ini sudah berlaku sejak tahap awal boot. Ganti enp5s0 dengan nama kartu di server Anda, yang bisa Anda lihat dengan ip -br link.

Konfigurasi 10-nic0.link dan bridge vmbr0 Proxmox memakai nama NIC nic0 yang dikunci MAC address
Tangkapan asli dari server kami (MAC address dan IP LAN kami sensor): bridge vmbr0 kini memakai nic0.

Reboot dan Cek Proxmox 8

systemctl reboot

# setelah server kembali
pveversion
# pve-manager/8.4.21/2606ac850d46da29 (running kernel: 6.8.12-43-pve)
ip -br link
pve8to9 --full

Di server kami, reboot berjalan mulus. Jaringan langsung naik dengan nama nic0, dan tunnel WireGuard ke VPS tersambung lagi secara otomatis. Kemudian kami langsung menjalankan pve8to9 untuk menyiapkan tahap terakhir.

Kendala 5: Peringatan EFI dan Microcode

pve8to9 memberikan dua peringatan. Pertama, GRUB belum terpasang di jalur EFI “removable”, padahal sebagian motherboard membutuhkan jalur ini agar tetap bisa boot. Kedua, paket microcode CPU belum terpasang, padahal paket ini memuat perbaikan bug dan celah keamanan prosesor.

echo "grub-efi-amd64 grub2/force_efi_extra_removable boolean true" | debconf-set-selections -u
sed -i "s/main contrib$/main contrib non-free-firmware/" /etc/apt/sources.list
apt update
apt install -y --reinstall grub-efi-amd64
apt install -y intel-microcode      # untuk CPU AMD: amd64-microcode
pve8to9 --full

Baris pertama mengaktifkan opsi EFI removable, kemudian perintah reinstall memasang ulang GRUB agar opsi itu berlaku. Selanjutnya sed menambahkan komponen non-free-firmware ke repo, karena paket microcode berada di sana. Setelah itu, pve8to9 kembali bersih.

Tahap 3: Upgrade Proxmox 8 ke 9

Ganti Repo ke Debian 13 (trixie) dan Upgrade

cp /etc/apt/sources.list /root/sources.list.pve8
sed -i "s/bookworm/trixie/g" /etc/apt/sources.list
echo "deb http://sg.cdn.proxmox.com/debian/pve trixie pve-no-subscription" \
  > /etc/apt/sources.list.d/pve-no-subscription.list
sed -i "s/bookworm/trixie/" /etc/apt/sources.list.d/pve-enterprise.list
apt update

systemd-run --unit=pve-upg9 \
  --setenv=DEBIAN_FRONTEND=noninteractive --setenv=APT_LISTCHANGES_FRONTEND=none \
  bash -c "apt-get -y -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold dist-upgrade > /root/upg-9.log 2>&1; echo SELESAI exit=\$? >> /root/upg-9.log"

Polanya sama dengan tahap 2. Bedanya, tahap ini lebih lama karena apt mengganti lebih banyak paket. Log upgrade kami mencapai 4.435 baris. Di bagian akhir log sempat muncul pesan gagal me-restart postfix. Namun, pesan ini tidak berbahaya karena postfix berjalan normal kembali setelah reboot.

Bereskan Peringatan Sebelum Reboot

Sebelum reboot, pve8to9 masih memberi dua peringatan. Kernel 7.0 sudah terpasang tetapi belum aktif, jadi peringatan ini hilang sendiri setelah reboot. Sementara itu, server belum punya layanan sinkronisasi waktu (NTP). Selain itu, upgrade membuat file repo enterprise baru berformat .sources, sehingga repo enterprise jadi ganda dengan file .list lama.

apt install -y chrony
rm -f /etc/apt/sources.list.d/pve-enterprise.list
grep -q "^Enabled:" /etc/apt/sources.list.d/pve-enterprise.sources \
  || echo "Enabled: no" >> /etc/apt/sources.list.d/pve-enterprise.sources
apt update && apt autoremove -y
systemctl reboot

Paket chrony menjaga jam server tetap akurat. Kemudian rm menghapus file .list lama, lalu baris Enabled: no mematikan repo enterprise di file baru, karena tanpa langganan repo ini hanya menghasilkan error 401 saat apt update.

Kendala 6: Panel Proxmox Macet Saat Boot Pertama

Setelah reboot, server menyala dengan kernel 7.0 dan jaringan normal. Namun, pve8to9 menunjukkan pveproxy masih berstatus activating dan pvescheduler tidak jalan. Setelah kami telusuri, ternyata pada boot pertama pveproxy menjalankan pveupdate untuk mengambil daftar paket dan template. Program ini menghubungi download.proxmox.com, yaitu node sg3 yang tidak terjangkau tadi, lalu menunggu tanpa batas.

pveproxy Proxmox 9 tertahan di status activating karena pveupdate menunggu repo
Tangkapan asli boot pertama Proxmox VE 9: pveproxy tertahan karena pveupdate menunggu repo.
echo "51.79.228.122 download.proxmox.com" >> /etc/hosts
pkill -f /usr/bin/pveupdate
pveupdate
pveam update
systemctl is-active pveproxy pvescheduler

Baris pertama mengarahkan download.proxmox.com ke node sg.cdn yang terjangkau. Akibatnya, pveupdate dan pveam (pengunduh template LXC) ikut memakai node tersebut. Setelah kami menghentikan proses yang macet dan menjalankannya ulang, semua layanan aktif dalam hitungan detik. Jika suatu saat node bawaan sudah normal kembali, sebaiknya Anda menghapus baris di /etc/hosts ini.

Hasil Akhir Upgrade Proxmox

Server kini menjalankan Proxmox VE 9.2.24 di atas Debian 13 dengan kernel 7.0. Riwayat apt menunjukkan seluruh proses, dari update 7.4 sampai boot pertama Proxmox 9, selesai dalam waktu sekitar 30 menit.

Hasil akhir upgrade Proxmox ke 9.2.24 dengan riwayat apt dan ringkasan pve8to9 tanpa kegagalan
Tangkapan asli dari server kami dua hari setelah upgrade. Satu peringatan tersisa hanya update paket xxd/vim.
Jam (WIB)KegiatanKendala yang muncul
18:00Update ke 7.4 terakhirRepo sg3 timeout, security 404, GRUB EFI
18:06Upgrade ke Proxmox 8Risiko nama NIC berubah
18:13Persiapan ke Proxmox 9EFI removable, microcode
18:22Upgrade ke Proxmox 9NTP belum ada, repo enterprise ganda
18:28Boot pertama Proxmox 9pveproxy macet karena pveupdate

Kesalahan Umum Saat Upgrade Proxmox

  • Melompat langsung dari 7 ke 9. Debian tidak mendukung lompatan dua rilis. Selalu lewati versi 8 lebih dulu.
  • Mengabaikan peringatan pemeriksa. Membiarkan peringatan GRUB EFI bisa membuat server gagal boot setelah update kernel berikutnya.
  • Menjalankan dist-upgrade langsung di sesi SSH. Jika koneksi putus, upgrade berhenti di tengah. Gunakan systemd-run, tmux, atau screen.
  • Reboot tanpa mengecek nama kartu jaringan. Jika nama NIC berubah, bridge kehilangan port dan Anda hanya bisa memperbaikinya dari konsol fisik.
  • Menganggap repo pasti terjangkau. Uji dulu dengan apt update dan perhatikan baris W: atau E: sebelum memulai.
  • Lupa repo enterprise. Tanpa langganan, repo ini hanya menghasilkan error 401. Matikan setelah upgrade.
  • Tidak membuat backup. Upgrade jarang gagal, tetapi tanpa backup satu kegagalan bisa menghapus semua VM dan container.

Kesimpulan

Anda bisa melakukan upgrade Proxmox dari 7 ke 9 tanpa instal ulang, asalkan bertahap: perbarui 7.4 sampai terakhir, naik ke 8, lalu naik ke 9. Kuncinya ada pada pemeriksa resmi pve7to8 dan pve8to9. Jalankan sebelum dan sesudah setiap tahap, lalu bereskan semua peringatannya sebelum lanjut.

Selain itu, kendala terbesar justru sering datang dari lingkungan, bukan dari Proxmox. Di kasus kami, rute Starlink ke satu node CDN membuat apt gagal sekaligus membuat panel macet saat boot. Dengan demikian, siapkan akses konsol, backup, dan cara mengecek repo, maka upgrade Proxmox bisa selesai dalam waktu sekitar setengah jam.

Baca Juga

Referensi: Proxmox Wiki: Upgrade from 7 to 8, Proxmox Wiki: Upgrade from 8 to 9, Proxmox VE Package Repositories, systemd.link(5).

Ali Akbar

Software Developer yang fokus mengembangkan aplikasi berbasis Web dan Desktop. Senang mempelajari teknologi baru terutama di bidang web design dan web development.

View all posts by Ali Akbar →

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *