GRUB atau Grand Unified Bootloader merupakan suatu paket bootloader yang menyediakan pilihan sistem operasi atau konfigurasi kernel (versi) yang terinstall di dalam partisi suatu disk dan hendak dijalankan (boot) oleh seorang user. Berikut contoh tampilan grub.
Pada dokumentasi artikel ini akan disampaikan tahapan proses recovery grub yang error, hilang, rusak dikarenakan kondisi tertentu, mulai dari urutan partisi, bootloader, atau lainnya. Sebelum merujuk kepada tahapan dan prosesnya. Perlu dicatat, pastikan dapat mengakses data disk yang tentu menyimpan informasi konfigurasi boot di dalam partisinya, yaitu dengan menggunaakn beberapa altrenatif, pertama bisa menggunakan rescure mode centos, livemode CD/DVD installer centos atau liveusb untuk kemudian selanjutnya login ke dalam sistem disk yang mengalami error grub tersebut menggunaakan chroot /mnt/sysimage.
Urutan Disk dalam Grub
Setiap perangkat disk baik itu IDE, SATA ataupun SCSI, Hardisk Drive, SSD, SAS Disk akan terdeteksi penamaan serta urutan yang sama, yaitu hd atau sd. Contoh penaamaan serta urutannya adalah sebagai berikut.
(hd0) = Urutan disk pertama = /dev/sda
(hd1) = Urutan disk kedua = /dev/sdb
(hd0,0) = Urutan disk pertama partisi pertama = /dev/sda1
(hd1,1) = Urutan disk kedua partisi kedua = /dev/sdb2
Dan urutan disk serta urutan partisi seterusnya menyesuaikan dengan banyaknya hardisk serta kondisi partisi di masing masing komputer atau server.
Kondisi Disk dan Partisi
Diasumsikan bahwa kondisi sebelum proses reinstall grub, user sudah berada pada kondisi login terhadap server via chroot /mnt/sysimage baik melalui rescue mode atau liveusb centos atau live CD/DVD dan diasumsikan (sebagai contoh) bahwa server hanya memiliki satu disk (hdd) beserta dengan partisi /boot didalamnya. Berikut kondisi partisi hardisk server beserta dengan informasi penggunaan disk file sistemnya.
# fdisk -l
Disk /dev/sda: 500.1 GB, 500107862016 bytes 224 heads, 56 sectors/track, 77867 cylinders Units = cylinders of 12544 * 512 = 6422528 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000390a6 Device Boot Start End Blocks Id System /dev/sda1 * 1 50 313572 83 Linux /dev/sda2 51 1723 10493056 83 Linux /dev/sda3 1724 10083 52433920 83 Linux /dev/sda4 10084 77867 425141248 5 Extended /dev/sda5 10084 18443 52433892 83 Linux /dev/sda6 18444 20116 10493028 83 Linux /dev/sda7 20117 21454 8391908 82 Linux swap / Solaris /dev/sda8 21455 46533 157295460 83 Linux /dev/sda9 46534 77867 196526820 83 Linux
df -h
Filesystem Size Used Avail Use% Mounted on /dev/sda2 9.8G 1.4G 7.9G 16% / tmpfs 3.9G 0 3.9G 0% /dev/shm /dev/sda9 185G 60M 175G 1% /backup /dev/sda1 289M 69M 205M 26% /boot /dev/sda8 148G 779M 140G 1% /home /dev/sda6 9.8G 24M 9.3G 1% /tmp /dev/sda5 50G 4.9G 42G 11% /usr /dev/sda3 50G 566M 47G 2% /var
Selanjutnya ketik perintah grub untuk masuk terhadap mode grub sebelum proses reinstall grub.
grub
Kemudian setelahnya akan dihadapkan pada tampilan mode grub berikut.
Probing devices to guess BIOS drives. This may take a long time. GNU GRUB version 0.97 (640K lower / 3072K upper memory) [ Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename.] grub>
Reinstall Grub
Setelah masuk kedalam mode grub, selanjutnya lakukan proses pencarian lokasi partisi /boot/grub yang hendak diproses reinstall grub.
grub> find /grub/stage1
Hasilnya sebagai berikut.
find /grub/stage1 (hd0,0)
Dapat diketahui bahwa file konfigurasi grub berada di bawah /boot yang berada di dalam partisi (hd0,0) atau /dev/sda1 sesuai dengan kondisi satu hardisk drive server beserta dengan partisinya. Kondisi dari hasil pencarian menyesuaikan dengan lokasi /boot atas urutan hardisknya. Selanjutnya kondisikan partisi grub manakah yang hendak di reinstall menggunakan perintah berikut.
grub> root (hd0,0)
Hasilnya adalah sebagai berikut.
Filesystem type is ext2fs, partition type 0x83
Selanjutnya lakukan reinstall grub menggunakan perintah setup pada lokasi hardisk pertama mengingat bahwa lokasi partisi /boot/grub tersebut berada di urutan disk pertama atau (hd0).
grub> setup (hd0)
Jika kondisi reinstall berhasil maka akan tertampil sukses sebagai berikut.
Checking if "/boot/grub/stage1" exists... no Checking if "/grub/stage1" exists... yes Checking if "/grub/stage2" exists... yes Checking if "/grub/e2fs_stage1_5" exists... yes Running "embed /grub/e2fs_stage1_5 (hd0)"... 27 sectors are embedded. succeeded Running "install /grub/stage1 (hd0) (hd0)1+27 p (hd0,0)/grub/stage2 /grub/grub.conf"... succeeded Done.
Apabila telah berhasil, maka sudah dapat keluar dari mode grub.
grub> quit
Tahapan dan proses resintall grub pada lokasi hardisk pertama (hd0) atau /dev/sda dimana lokasi /boot berada di partisi pertamanya atau (hd0,0) atau /dev/sda1 telah berhasil. Selanjutnya pengecekan file konfigurasi grub untuk memastikan bahwa pada saat prompt grub tampil makan dapat membaca opsi kernel image sistem operasi.
more /boot/grub/grub.conf
# grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. This means that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/sdb2 # initrd /initrd-[generic-]version.img default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.32-431.el6.x86_64) root (hd0,0) title CentOS (2.6.32-431.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=UUID=c43cbe3e-809a-4fc8-971f-56b0350d4eeb nomodeset rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us LANG=en_US.UTF -8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_NO_LVM rd_NO_DM rhgb quiet initrd /initramfs-2.6.32-431.el6.x86_64.img
Karena kondisi server adalah hanya memiliki satu hardisk beserta dengan kernel image yang telah terinstall dan tersimpan di dalam /boot partisi /dev/sda1 maka pastikan file konfigurasi membaca partisi /boot atau /dev/sda1 atau (hd0,0) sesuai dengan urutan partisi grub.
Kondisi /boot tersebut hanya terinstall dan memiliki satu konfigurasi kernel image sistem operasi yang dapat dipilih atau dijalankan pada saat startup server yaitu kernel versi 2.6.32-431.el6.x86_64 saja.
Selanjutnya simpan (save) file konfigurasi grub tersebut dan silahkan dilakukan test reboot server.
Terkait dengan detail file konfigurasi grub dapat merujuk pada artikel wiki centos https://wiki.centos.org/HowTos/GrubInstallation tersebut.
bro thaufan… bagus ini buat emergency turoial. lanjutkan bang thaufan.