Penanganan VPS Gagal Boot Setelah Upgrade HDD pada Ubuntu
Pengantar
Artikel ini dibuat sebagai catatan internal untuk penanganan VPS Ubuntu yang mengalami gagal boot setelah proses upgrade atau resize HDD pada Virtualizor. Kasus yang ditemukan adalah VPS mengalami stuck pada tampilan “Booting from Hard Disk...” setelah upgrade disk dari 30GB menjadi 40GB. VPS tersebut menggunakan GPT partition dengan SeaBIOS (legacy BIOS), dan masalah terjadi karena GRUB gagal melakukan boot setelah proses resize disk.
Gejala
- Tampilan console/VNC:
SeaBIOS Booting from Hard Disk...Output:

- Ping VPS:
Destination host unreachable
Tahap Recovery
Untuk melakukan proses recovery atau maintenance VPS, kita dapat menggunakan ISO bootable seperti SystemRescue.
- Download ISO SystemRescue
Gunakan file ISO berikut:

Fungsi:
- Digunakan untuk recovery filesystem
- Memperbaiki boot loader
- Melakukan mount disk secara manual
- Troubleshooting kernel atau partition
- Mount ISO
Masuk ke panel VPS kemudian buka menu:
Settings → ISOKemudian mount file ISO SystemRescue ke VPS.
Keterangan:
Mount ISO memungkinkan VPS boot menggunakan media rescue sementara tanpa masuk ke sistem utama. - Atur Boot Order
Set urutan boot sebagai berikut:
CDROM2 DISK1Penjelasan:
- CDROM2
Digunakan agar VPS boot terlebih dahulu dari ISO rescue. - DISK1
Digunakan sebagai boot disk utama setelah recovery selesai.
Keterangan:
Jika boot order tidak diubah, VPS kemungkinan tetap boot ke disk utama dan tidak masuk ke mode rescue ISO. - CDROM2
Boot ke SystemRescue
Setelah ISO SystemRescue berhasil di-mount dan boot order diatur, langkah berikutnya adalah masuk ke console VPS untuk memulai proses boot rescue.
- Masuk ke VNC atau Console VPS
Buka akses console melalui panel VPS menggunakan:
VNC / ConsoleFungsi:
- Digunakan untuk melihat proses boot VPS
- Digunakan untuk interaksi langsung dengan sistem rescue
- Memungkinkan troubleshooting saat VPS gagal boot normal
- Boot SystemRescue
Saat menu boot SystemRescue muncul, pilih:
Boot SystemRescue using default optionsOutput :

Kemudian tekan:
EnterFungsi:
- Menjalankan SystemRescue dengan konfigurasi default
- Memuat kernel rescue dan tools recovery
- Masuk ke environment Linux live untuk proses troubleshooting
Keterangan:
Mode default SystemRescue sudah cukup untuk sebagian besar kebutuhan recovery seperti repair filesystem, reinstall GRUB, dan mount disk VPS.
Cek Disk dan Filesystem
Setelah berhasil masuk ke SystemRescue, langkah berikutnya adalah melakukan pengecekan disk dan filesystem VPS.
- Cek Block Device
Gunakan perintah berikut:
lsblkFungsi:
- Menampilkan seluruh disk dan partition
- Memastikan disk VPS berhasil terbaca
- Mengetahui nama device dan ukuran partition
Contoh hasil:
sda 40G └─sda1 40GPenjelasan:
- sda merupakan disk utama VPS
- sda1 merupakan partition utama yang digunakan sistem
- 40G menunjukkan ukuran disk setelah resize
- Cek Filesystem
Gunakan perintah berikut:
fsck -fy /dev/sda1Fungsi:
- Melakukan pengecekan dan repair filesystem
- Memperbaiki filesystem corruption secara otomatis
- Memastikan partition dapat di-mount dengan normal
Penjelasan parameter:
- -f = memaksa pengecekan filesystem
- -y = otomatis menjawab yes saat repair
Filesystem berhasil terbaca normal.
Keterangan:
Jika fsck selesai tanpa error besar, berarti filesystem masih dalam kondisi baik dan dapat digunakan kembali.
Mount Root Filesystem
Setelah filesystem berhasil diperiksa, langkah berikutnya adalah melakukan mount partition agar isi filesystem dapat diakses.
- Membuat Directory Mount Point
Gunakan perintah berikut:
mkdir -p /mnt/rootFungsi:
- Membuat directory temporary untuk mount filesystem
- Digunakan sebagai lokasi akses root filesystem VPS
- Parameter -p akan otomatis membuat parent directory jika belum ada
- Mount Filesystem
Gunakan perintah berikut:
mount /dev/sda1 /mnt/rootFungsi:
- Melakukan mount partition VPS ke directory temporary
- Membuat isi filesystem dapat diakses dari environment rescue
- Digunakan untuk proses recovery dan troubleshooting
Keterangan:
Jika proses mount berhasil tanpa error, berarti filesystem dapat dibaca dengan normal. - Cek Isi Filesystem
Gunakan perintah berikut:
ls /mnt/rootFungsi:
- Menampilkan isi root filesystem VPS
- Memastikan filesystem berhasil di-mount
- Memastikan data sistem masih tersedia
Biasanya akan muncul directory seperti:
bin boot dev etc home root usr varKeterangan:
Jika directory sistem berhasil muncul, berarti root filesystem VPS masih utuh dan dapat diakses.
Verifikasi Boot dan GRUB
Setelah filesystem berhasil di-mount, langkah berikutnya adalah melakukan pengecekan kernel dan konfigurasi GRUB.
- Cek Isi Directory Boot
Gunakan perintah berikut:
ls /mnt/root/bootFungsi:
- Menampilkan file kernel Linux
- Memastikan initramfs dan file boot tersedia
- Digunakan untuk verifikasi sistem boot VPS
Biasanya akan muncul file seperti:
vmlinuz initramfs grubKeterangan:
Jika file kernel tersedia, berarti sistem operasi masih memiliki file boot utama. - Cek Konfigurasi GRUB
Gunakan perintah berikut:
ls /mnt/root/boot/grub*Fungsi:
- Memastikan folder GRUB tersedia
- Memastikan file konfigurasi boot loader masih ada
- Digunakan untuk troubleshooting gagal boot
Hasil pengecekan:
Kernel tersedia grub.cfg tersedia Folder GRUB tersediaKeterangan:
Jika kernel dan grub.cfg masih tersedia, maka kemungkinan besar boot failure bukan disebabkan hilangnya file kernel atau konfigurasi GRUB.
Bind Mount dan Chroot
Setelah filesystem berhasil di-mount, langkah berikutnya adalah melakukan bind mount system directory sebelum masuk ke environment chroot.
- Bind Mount Directory System
Gunakan perintah berikut:
mount --bind /dev /mnt/root/dev mount --bind /proc /mnt/root/proc mount --bind /sys /mnt/root/sysFungsi:
- /dev
Digunakan agar device system tetap dapat diakses dari chroot environment. - /proc
Digunakan agar informasi process dan kernel tetap tersedia. - /sys
Digunakan agar informasi hardware dan kernel interface tetap dapat diakses.
Keterangan:
Bind mount diperlukan agar environment chroot dapat bekerja seperti sistem Linux normal. - /dev
- Masuk ke Chroot Environment
Gunakan perintah berikut:
chroot /mnt/rootFungsi:
- Masuk ke root filesystem VPS yang sedang direcovery
- Menjalankan shell langsung dari sistem VPS
- Memungkinkan perbaikan GRUB, kernel, dan konfigurasi sistem
Setelah berhasil masuk chroot, shell biasanya berubah menjadi:
root@hostname:/#Keterangan:
Chroot memungkinkan kita melakukan recovery seolah-olah sedang login langsung ke sistem VPS utama.
Reinstall GRUB
Saat melakukan reinstall GRUB pada sistem dengan partition GPT dan mode boot BIOS (SeaBIOS), terkadang muncul error terkait BIOS Boot Partition.
- Install Ulang GRUB
Gunakan perintah berikut:
grub-install /dev/sdaFungsi:
- Menginstall ulang bootloader GRUB ke disk utama
- Memperbaiki bootloader yang rusak atau hilang
- Digunakan untuk recovery VPS gagal boot
- Error yang Muncul
Saat menjalankan perintah di atas muncul error:
GPT partition label contains no BIOS Boot PartitionAnalisa:
- Sistem menggunakan partition table GPT
- Mode boot VPS menggunakan SeaBIOS atau Legacy BIOS
- GRUB membutuhkan BIOS Boot Partition kecil bertipe bios_grub
- Partition tersebut belum tersedia pada disk
Penjelasan:
- Pada sistem GPT + UEFI, GRUB biasanya menggunakan EFI System Partition (ESP)
- Pada sistem GPT + BIOS/SeaBIOS, GRUB membutuhkan BIOS Boot Partition khusus
- BIOS Boot Partition biasanya berukuran kecil sekitar 1MB hingga 2MB
- Partition ini digunakan GRUB untuk menyimpan core image bootloader
Keterangan:
Tanpa BIOS Boot Partition, GRUB tidak dapat diinstall dengan normal pada sistem GPT yang menggunakan mode boot BIOS.
Cek Free Space GPT
Setelah proses analisa GRUB selesai, langkah berikutnya adalah keluar dari chroot dan memeriksa layout partition disk.
- Keluar dari Chroot
Gunakan perintah berikut:
exitFungsi:
- Keluar dari environment chroot
- Kembali ke shell SystemRescue
- Digunakan sebelum melakukan modifikasi partition disk
Keterangan:
Perubahan partition sebaiknya dilakukan di luar chroot agar device disk dapat dikelola dengan normal. - Cek Layout Disk
Gunakan perintah berikut:
parted /dev/sda print freeFungsi:
- Menampilkan struktur partition disk
- Menampilkan free space yang belum digunakan
- Digunakan untuk analisa kebutuhan BIOS Boot Partition
Hasil pengecekan ditemukan free space kecil di awal disk:
17.4kB → 2097kBAnalisa:
- Tersedia ruang kosong sekitar 2MB di awal disk
- Ukuran tersebut cukup untuk membuat BIOS Boot Partition
- Free space berada sebelum partition utama
- Dapat digunakan untuk kebutuhan GRUB pada GPT + BIOS mode
Keterangan:
BIOS Boot Partition umumnya hanya membutuhkan ruang kecil sekitar 1MB hingga 2MB sehingga free space ini dapat dimanfaatkan tanpa mengubah partition utama.
Membuat BIOS Boot Partition
Setelah ditemukan free space pada awal disk, langkah berikutnya adalah membuat BIOS Boot Partition untuk kebutuhan GRUB pada GPT + BIOS mode.
- Masuk ke Parted
Gunakan perintah berikut:
parted /dev/sdaFungsi:
- Membuka utility partition management
- Digunakan untuk membuat dan mengelola partition disk
- Mendukung partition GPT dan MBR
- Membuat BIOS Boot Partition
Gunakan perintah berikut:
mkpart primary 1MiB 2MiBFungsi:
- Membuat partition kecil sekitar 1MB
- Digunakan khusus untuk BIOS Boot Partition
- Memanfaatkan free space di awal disk
Penjelasan:
- 1MiB = awal partition
- 2MiB = akhir partition
- Ukuran sekitar 1MB sudah cukup untuk GRUB core image
- Aktifkan Flag BIOS GRUB
Gunakan perintah berikut:
set 2 bios_grub onFungsi:
- Menandai partition sebagai BIOS Boot Partition
- Digunakan oleh GRUB pada mode BIOS + GPT
- Membuat GRUB dapat diinstall dengan normal
Keterangan:
Nomor partition dapat berbeda tergantung layout disk. Pada contoh ini BIOS Boot Partition berada pada partition nomor 2. - Verifikasi Partition
Gunakan perintah berikut:
printHasil:
2 1049kB 2097kB bios_grubPenjelasan:
- Partition berhasil dibuat
- Flag bios_grub berhasil aktif
- GRUB sekarang memiliki area khusus untuk boot loader
- Keluar dari Parted
Gunakan perintah berikut:
quitFungsi:
- Keluar dari utility parted
- Menyimpan perubahan partition table
Keterangan:
Setelah BIOS Boot Partition dibuat, proses install ulang GRUB dapat dilakukan kembali tanpa error GPT BIOS Boot Partition.
Reinstall GRUB
Setelah BIOS Boot Partition berhasil dibuat, langkah berikutnya adalah melakukan reinstall GRUB kembali.
- Bind Mount Ulang Directory System
Gunakan perintah berikut:
mount --bind /dev /mnt/root/dev mount --bind /proc /mnt/root/proc mount --bind /sys /mnt/root/sysFungsi:
- Menghubungkan kembali directory system ke environment chroot
- Memastikan device dan informasi kernel dapat diakses
- Dibutuhkan untuk proses install GRUB
- Masuk ke Chroot
Gunakan perintah berikut:
chroot /mnt/rootFungsi:
- Masuk ke environment sistem VPS utama
- Menjalankan recovery langsung dari root filesystem VPS
- Digunakan untuk reinstall bootloader
- Install Ulang GRUB
Gunakan perintah berikut:
grub-install /dev/sdaFungsi:
- Menginstall ulang bootloader GRUB ke disk utama
- Memperbaiki boot loader yang sebelumnya gagal terinstall
- Menggunakan BIOS Boot Partition yang baru dibuat
Hasil:
Installation finished. No error reported.Analisa:
- GRUB berhasil terinstall dengan normal
- BIOS Boot Partition berhasil digunakan
- Error GPT BIOS Boot Partition sudah teratasi
Keterangan:
Pesan “No error reported” menandakan bootloader berhasil dipasang tanpa masalah. - Generate Ulang Konfigurasi GRUB
Gunakan perintah berikut:
update-grubFungsi:
- Membuat ulang file konfigurasi GRUB
- Mendeteksi kernel yang tersedia
- Memastikan menu boot sesuai dengan sistem saat ini
Biasanya akan muncul proses seperti:
Found linux image Found initrd image doneKeterangan:
update-grub penting dilakukan agar GRUB dapat mendeteksi kernel dan filesystem secara benar saat boot VPS.
Finalisasi
Setelah proses reinstall GRUB selesai dan konfigurasi berhasil dibuat, langkah terakhir adalah keluar dari environment rescue dan reboot VPS.
- Keluar dari Chroot
Gunakan perintah berikut:
exitFungsi:
- Keluar dari environment chroot
- Kembali ke shell SystemRescue
- Mengakhiri proses recovery sistem
- Reboot VPS
Gunakan perintah berikut:
rebootFungsi:
- Melakukan restart VPS
- Menguji apakah bootloader GRUB sudah berjalan normal
- Memastikan sistem dapat boot kembali dari disk utama
Keterangan:
Pastikan proses reboot dilakukan setelah GRUB berhasil diinstall dan update-grub selesai tanpa error. - Lepas ISO Rescue
Setelah VPS mati atau reboot, lepaskan ISO SystemRescue dari panel VPS.
Kemudian kembalikan boot order menjadi:
DISK1Fungsi:
- Memastikan VPS boot dari disk utama
- Mencegah VPS kembali masuk ke mode rescue
- Mengembalikan proses boot normal sistem operasi
Keterangan:
Jika ISO tidak dilepas atau boot order masih mengarah ke CDROM, VPS akan kembali masuk ke SystemRescue saat reboot.
Catatan Penting
Penyebab utama:
- VPS menggunakan GPT partition table
- Boot mode masih legacy BIOS (SeaBIOS)
- Tidak tersedia BIOS Boot Partition setelah resize disk
- GRUB gagal melakukan embedding bootloader ke disk GPT
Kesimpulan
Permasalahan VPS gagal boot setelah upgrade HDD pada Ubuntu disebabkan oleh ketidaksesuaian antara penggunaan GPT partition table dengan mode boot legacy BIOS (SeaBIOS) tanpa adanya BIOS Boot Partition (bios grub). Meskipun filesystem dan data VPS masih dalam kondisi normal, GRUB tidak dapat melakukan proses booting dengan benar setelah resize disk dilakukan. Recovery berhasil dilakukan menggunakan SystemRescue dengan metode pengecekan filesystem (fsck), pembuatan BIOS Boot Partition kecil pada disk GPT, dan reinstall GRUB hingga VPS dapat kembali boot normal tanpa kehilangan data.


