Terkadang gagal booting OS Linux Centos 7 banyak penyebabnya, berikut salah satu penyebab umum yang terjadi :
- tidak sengaja partisi /boot terhapus total
- terdapat file yang hilang didalam folder /boot/grub2/
- kernel yang tidak support
- dan masi banyak hal lainnya.
Apa yang harus kamu lakukan untuk memperbaiki booting issue ?
- Tentukan apakah OS Linux kamu menggunakan BIOS (partisi MBR / DOS) atau UEFI (partisi GPT)
[root@wow ~]# blkid /dev/sda/dev/sda: PTTYPE="dos"[root@wow ~]# blkid /dev/sdb/dev/sdb: PTTYPE="gpt" - Masuk kedalam rescue mode pada liveCD OS Linux Centos, tutorial dapat dilihat di sini https://www.natanetwork.com/portal/knowledgebase/246/mengambil-data-penting-pada-server-dengan-mode-rescue-mode-dan-chroot.html
OS Linux Centos 7 dengan mode BIOS :
- Masuk kedalam rescue mode pada liveCD Centos 7
- jalankan perintah :
chroot /mnt/sysimage - cek apakah file ini ada atau tidak (dalam kasus ini grub.cfg file nya hilang)
/boot/grub2/grub.cfg - cek apakah isi partisi /boot ada yang hilang atau tidak (dalam kasus ini isi partisi /boot adalah kosong)
[root@server1 ~]# ls -lthr /boot/total 0 - cek dimana partisi /boot berada, apakah di sda, sdb, sdc atau lainnya dengan cara sbb:
[root@server ~]# df -hFilesystem Size Used Avail Use% Mounted ondevtmpfs 16G 0 16G 0% /devtmpfs 16G 4,0K 16G 1% /dev/shmtmpfs 16G 162M 16G 2% /runtmpfs 16G 0 16G 0% /sys/fs/cgroup/dev/md125 466G 287G 155G 66% /none 16G 6,5M 16G 1% /var/lve/dbgovernor-shm/dev/md127 453M 191M 235M 45% /boot/dev/loop0 3,9G 17M 3,6G 1% /tmptmpfs 3,2G 0 3,2G 0% /run/user/1035tmpfs 3,2G 0 3,2G 0% /run/user/0[root@server ~]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 477G 0 disk├─sda1 8:1 0 3,7G 0 part│ └─md126 9:126 0 3,7G 0 raid1 [SWAP]├─sda2 8:2 0 477M 0 part│ └─md127 9:127 0 476M 0 raid1 /boot├─sda3 8:3 0 3M 0 part│ └─md0 9:0 0 2M 0 raid1├─sda4 8:4 0 1K 0 part└─sda5 8:5 0 472,8G 0 part└─md125 9:125 0 472,6G 0 raid1 /sdb 8:16 0 477G 0 disk├─sdb1 8:17 0 3,7G 0 part├─sdb2 8:18 0 477M 0 part├─sdb3 8:19 0 3M 0 part│ └─md0 9:0 0 2M 0 raid1├─sdb4 8:20 0 1K 0 part└─sdb5 8:21 0 472,8G 0 partsdc 8:32 0 477G 0 disk├─sdc1 8:33 0 3,7G 0 part│ └─md126 9:126 0 3,7G 0 raid1 [SWAP]├─sdc2 8:34 0 477M 0 part│ └─md127 9:127 0 476M 0 raid1 /boot├─sdc3 8:35 0 3M 0 part│ └─md0 9:0 0 2M 0 raid1├─sdc4 8:36 0 1K 0 part└─sdc5 8:37 0 472,8G 0 part└─md125 9:125 0 472,6G 0 raid1 /loop0 7:0 0 4G 0 loop /var/tmp - install ulang grub untuk memperbaiki boot loader
sudo grub2-install /dev/sdasudo grub2-install /dev/sdc - install ulang kernel, keluar dari chroot terlebih dahulu
exitcd /mnt/install/repo/Packagesrpm -ivh --root=/mnt/sysimage kernel-core-3.10.0-1016.el7.x86_64 - masuk kedalam chroot dan reconfigure grub loader
chroot /mnt/sysimagegrub2-mkconfig -o /boot/grub2/grub.cfg
pastikan file /boot/grub2/grub.cfg ada setelah di mkconfig. - cek juga apakah kernel yang sudah di reinstall tadi sudah ada atau belum dengan cara
ls -lrt /boot/vmlinuz-*-rwxr-xr-x. 1 root root 5392080 Nov 22 2018 /boot/vmlinuz-3.10.0-1016.el7.x86_64-rwxr-xr-x. 1 root root 5392080 Oct 1 12:44 /boot/vmlinuz-0-rescue-4bd23218ddab41e587bdd39ae2cfc09a - exit dari chroot dan silahkan reboot server dan booting kembali secara normal.
OS Linux Centos 7 dengan mode UEFI :
- jika kamu menggunakan mode UEFI, cara kerja nya sama dengan mode BIOS, yang berbeda hanya dari syntax nya saja.
- Masuk kedalam rescue mode liveCD Centos7
- chroot kedalam sistem OS Centos7
chroot /mnt/sysimage - biasanya didalam rescue mode, kamu tidak memiliki koneksi internet, sehingga untuk melakukan reinstall kernel kamu perlu menggunakan local repo dari LiveCD atau USB centos7 ISO.
mount local repo sesuaikan dengan drive liveCD yang ada, contoh: mount /dev/cdrom /mnt atau mount /dev/sr0 /mnt (tergantung dimana letak liveCD storage kamu berada)
buatlah media.repo didalam folder /etc/yum.repos.d/
- reinstall beberapa package untuk membenarkan grub rescue
yum reinstall grub2-efi kernel shim -y - reconfigure grub2
grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg - untuk menyelesaikan rescue mode, silahkan exit dari chroot dan reboot server, maka kamu akan kembali ke normal booting.
Kesimpulan
Menjadi sysadmin sudah sewajibnya memiliki pengetahuan tentang boot issue, bagaimana cara reinstall grub2 dan mengatasi jika partisi /boot yang hilang. Selain cara reinstall grub, terdapat cara lain yang mungkin juga bisa menjadi salah satu solusi alternatif yaitu mengkoreksi lokasi dimana root dan boot berada dengan catatan partisi tersebut tidak hilang total. (tanpa menggunakan rescue mode)



