Pendahuluan
Ketika server Proxmox VE Anda dinyalakan, perjalanan panjang menuju sistem yang berfungsi penuh dimulai dari sebuah program kecil bernama GRUB (GRand Unified Bootloader). GRUB bertanggung jawab untuk memuat kernel Linux ke dalam memori dan menyerahkan kendali kepadanya. Meskipun jarang disentuh setelah instalasi, memahami GRUB menjadi sangat krusial saat terjadi masalah: gagal boot setelah pembaruan kernel, perlu mem-boot kernel lama, atau ingin mengubah parameter kernel untuk debugging.
Proxmox VE menggunakan GRUB 2 untuk sistem yang diinstal dengan sistem file selain ZFS (misalnya ext4 atau XFS). Untuk sistem yang menggunakan ZFS sebagai root filesystem, proses booting ditangani oleh kombinasi systemd-boot atau proxmox-boot-tool. Artikel ini akan fokus pada GRUB 2 yang merupakan konfigurasi paling umum, namun juga akan menyinggung perbedaan penting jika Anda menggunakan ZFS.
Memahami File Konfigurasi GRUB
Konfigurasi GRUB disimpan di dua tempat utama:
/etc/default/grub– File Konfigurasi Utama
Ini adalah file yang Anda edit untuk mengubah perilaku GRUB secara permanen. File ini berisi variabel-variabel yang mengontrol tampilan menu, timeout, dan parameter kernel yang akan diteruskan. Setelah mengeditnya, Anda harus menjalankanupdate-grubuntuk menghasilkan file konfigurasi GRUB yang sesungguhnya./boot/grub/grub.cfg– File Konfigurasi Hasil Generate
File ini dilarang diedit secara manual. File ini dihasilkan secara otomatis oleh skripupdate-grub(ataugrub-mkconfig) berdasarkan template di/etc/grub.d/dan variabel dari/etc/default/grub. Setiap kali kernel baru diinstal, file ini juga akan diperbarui secara otomatis.
Variabel Penting di /etc/default/grub:
GRUB_DEFAULT: Menentukan menu entry mana yang akan dipilih secara default. Biasanya bernilai0(entry pertama).GRUB_TIMEOUT: Berapa detik menu GRUB ditampilkan sebelum memilih entry default.GRUB_CMDLINE_LINUX_DEFAULT: Parameter kernel yang akan diteruskan saat booting normal. Di sinilah Anda bisa menambahkan opsi sepertiquiet,splash, ataunet.naming-scheme=v252.GRUB_CMDLINE_LINUX: Parameter kernel tambahan yang akan diteruskan baik untuk boot normal maupun recovery mode.
Contoh isi /etc/default/grub:
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"
GRUB_CMDLINE_LINUX=""
Cara Memilih Kernel yang Akan Di-boot
Salah satu alasan utama berinteraksi dengan GRUB adalah untuk memilih kernel yang akan dijalankan. Proxmox VE seringkali memiliki beberapa kernel yang terinstal secara bersamaan (misalnya kernel lama dan kernel baru setelah pembaruan). Jika kernel baru bermasalah, Anda bisa kembali ke kernel lama melalui menu GRUB.
Mengakses Menu GRUB Saat Booting:
- Saat server dinyalakan, setelah layar POST (Power-On Self-Test), Anda akan melihat sekilas menu GRUB (jika
GRUB_TIMEOUT> 0). - Tekan tombol panah atas/bawah untuk menghentikan hitungan mundur.
- Pilih entry yang diinginkan:
- Proxmox VE GNU/Linux, with Linux X.X.X-X-pve: Kernel utama Proxmox.
- Advanced options for Proxmox VE GNU/Linux: Submenu yang berisi daftar semua kernel yang terinstal, termasuk versi lama dan mode recovery.
Mengatur Kernel Default Secara Permanen:
Anda bisa mengubah GRUB_DEFAULT agar otomatis memilih kernel tertentu tanpa perlu intervensi manual setiap booting.
- Menggunakan Index: Misal
GRUB_DEFAULT="1>2"artinya menu utama entry ke-1, lalu submenu entry ke-2. Ini rumit karena index bisa berubah saat kernel baru diinstal. - Menggunakan Nama Entry: Cara yang lebih aman adalah dengan nama spesifik entry, misalnya
GRUB_DEFAULT="Advanced options for Proxmox VE GNU/Linux>Proxmox VE GNU/Linux, with Linux 5.15.30-1-pve". Nama persisnya bisa Anda lihat di/boot/grub/grub.cfg. - Menggunakan
saved: Jika Anda ingin GRUB mengingat pilihan terakhir Anda, setelGRUB_DEFAULT=saveddanGRUB_SAVEDEFAULT=true. Setelah itu, jalankanupdate-grub.
Mengganti Parameter Kernel (Kernel Command Line)
Parameter kernel adalah opsi yang diberikan kepada kernel Linux saat booting. Ini digunakan untuk mengaktifkan fitur tertentu, menonaktifkan driver bermasalah, atau menerapkan konfigurasi spesifik.
Menambahkan Parameter Secara Permanen:
- Edit
/etc/default/grub. - Tambahkan parameter yang diinginkan di dalam tanda kutip pada variabel
GRUB_CMDLINE_LINUX_DEFAULT. Misalnya, untuk mengaktifkan IOMMU Intel:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"
- Simpan dan jalankan:
update-grub
- Reboot agar perubahan diterapkan.
Contoh Parameter Berguna untuk Proxmox VE:
intel_iommu=on/amd_iommu=on: Mengaktifkan IOMMU untuk PCI Passthrough.mitigations=off: Menonaktifkan semua mitigasi keamanan CPU (berbahaya, hanya untuk pengujian performa ekstrem).net.naming-scheme=v252: Mengunci versi skema penamaan antarmuka jaringan (dibahas di Artikel 6).nomodeset: Menonaktifkan driver grafis kernel, berguna untuk troubleshooting.
Perbedaan untuk Sistem dengan ZFS Root
Jika Anda menginstal Proxmox VE dengan ZFS sebagai root filesystem, GRUB mungkin tidak digunakan sebagai boot loader utama karena keterbatasan dukungan ZFS pada GRUB.
- systemd-boot: Proxmox menggunakan
systemd-bootsebagai boot loader EFI untuk sistem ZFS. Konfigurasinya ada di direktori/boot/efi/loader/. Kernel dan initramfs disimpan di partisi EFI System Partition (ESP). - Proxmox Boot Tool: Alat
proxmox-boot-tooldigunakan untuk mengelola kernel di sistem ZFS. Perintah sepertiproxmox-boot-tool kernel listdanproxmox-boot-tool kernel pinmenggantikan fungsi GRUB. - Konfigurasi Kernel Command Line: Untuk sistem systemd-boot, parameter kernel dikonfigurasi di file
/etc/kernel/cmdline.
Cara Mengecek Boot Loader yang Digunakan:
lsblk -o NAME,PARTTYPE,MOUNTPOINT /dev/sda
efibootmgr -v
Jika Anda melihat partisi bertipe EFI System dan output efibootmgr menampilkan entry Linux Boot Manager, maka Anda menggunakan systemd-boot. Jika tidak, dan Anda memiliki file /boot/grub/grub.cfg, maka Anda menggunakan GRUB.
Visual: Alur Proses Booting Proxmox VE
Diagram ini menjelaskan langkah demi langkah dari saat server dinyalakan hingga sistem operasi siap.
🚀 Proses Booting Proxmox VE
Firmware motherboard menjalankan POST, mendeteksi hardware, dan mencari boot loader di disk yang ditentukan.
Menampilkan menu (jika timeout > 0), memuat kernel dan initramfs ke memori. Mengoper parameter kernel.
Menginisialisasi driver, mendeteksi perangkat keras, memasang root filesystem (ext4/XFS/ZFS).
Menjalankan semua layanan sistem (networking, pve-cluster, pvedaemon, pveproxy, cron, dll.).
Antarmuka web tersedia di port 8006. Semua VM/CT yang dikonfigurasi auto-start mulai dijalankan.
Anda dapat menginterupsi proses ini di Langkah 2 dengan menekan tombol panah untuk memilih kernel yang berbeda atau mengedit parameter kernel.
Kesimpulan
GRUB adalah gerbang pertama menuju sistem Anda. Memahami cara kerjanya memberi Anda kendali penuh ketika terjadi masalah booting. Ingatlah untuk selalu berhati-hati saat mengedit /etc/default/grub dan jangan lupa menjalankan update-grub setelahnya. Untuk pengguna ZFS, kenali alat proxmox-boot-tool sebagai penggantinya.