Chapter-7 : Menguasai Boot Loader GRUB di Proxmox VE – Konfigurasi, Pemilihan Kernel, dan Troubleshooting

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:

  1. /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 menjalankan update-grub untuk menghasilkan file konfigurasi GRUB yang sesungguhnya.
  2. /boot/grub/grub.cfg – File Konfigurasi Hasil Generate
    File ini dilarang diedit secara manual. File ini dihasilkan secara otomatis oleh skrip update-grub (atau grub-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 bernilai 0 (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 seperti quietsplash, atau net.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:

  1. Saat server dinyalakan, setelah layar POST (Power-On Self-Test), Anda akan melihat sekilas menu GRUB (jika GRUB_TIMEOUT > 0).
  2. Tekan tombol panah atas/bawah untuk menghentikan hitungan mundur.
  3. 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, setel GRUB_DEFAULT=saved dan GRUB_SAVEDEFAULT=true. Setelah itu, jalankan update-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-boot sebagai 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-tool digunakan untuk mengelola kernel di sistem ZFS. Perintah seperti proxmox-boot-tool kernel list dan proxmox-boot-tool kernel pin menggantikan 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

1
UEFI / BIOS
Firmware motherboard menjalankan POST, mendeteksi hardware, dan mencari boot loader di disk yang ditentukan.
⬇️
2
Boot Loader (GRUB / systemd-boot)
Menampilkan menu (jika timeout > 0), memuat kernel dan initramfs ke memori. Mengoper parameter kernel.
⬇️
3
Kernel Linux
Menginisialisasi driver, mendeteksi perangkat keras, memasang root filesystem (ext4/XFS/ZFS).
⬇️
4
systemd (init)
Menjalankan semua layanan sistem (networking, pve-cluster, pvedaemon, pveproxy, cron, dll.).
⬇️
5
Proxmox VE Siap!
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.

Leave a Reply

Your email address will not be published. Required fields are marked *