Reinstalare GRUB2 in modul recovery

Dupa actualizarea grub2 pe un server CentOS, incarcarea sistemului se blocheaza imedat dupa POST fara sa afiseze vreun mesaj de eroare. Concluzia a fost ca o data cu actualizarea grub2 a fost deteriorat fie sectorul de boot (MBR), fie fisierul de configurarea /boot/grub2/grub.conf.

Pentru remedierea situatiei au fost urmati pasii urmatori:

  1. Se porneste sistemul folosind DVD-ul de instalare CentOS (7.5), iar la pornire se va alege optiunea Troubleshooting, apoi Rescue a CentOS Linux system.
  2. Dupa pornirea interfetei de recovery se va alege optiunea 1 (Continue) pentru identificarea instalarii actuale a sistemului de operare si montarea lui sub /mnt/sysimage
  3. chroot /mnt/sysimage
  4. Montarea DVD-ului de instalare CentOS:
    mkdit /test
    blkid (pentru a vedea calea spre DVD-ul de instalare, ar trebui sa fie /dev/sr0)
    mount /dev/sr0 /test/
  5. Pentru ca in modul recovery implicit nu exista conxiune la internet, pornirea interfetei de retea si configurarea acesteia se va face manual:
    ip link (listarea interfetelor de retea existente)
    ip link set dev em1 up
    ip addr add 192.168.1.2/24 dev em1 (stabilirea adresei ip a interfetei de retea)
    ip route add default via 192.168.1.1
  6. Dupa ce interfata de retea este activa mai trebuie configurata adresa serverului de DNS:
    vi /etc/resolv.conf
    nameserver 192.168.1.1
  7. Reinstalarea kernel3.10:
    cd test/
    cd Packages/
    yum reinstall kernel-3.10.0-957.el7.x86_64.rpm
  8. Pentru reconfigurarea grub2 este necesara prezenta pachetului grub2-efi-modules. Se va incerca reinstalarea pachetelor: grub2-efi, grub2-efi-modules si shim
    yum reinstall grub2-efi grub2-efi-modules shim
  9. Rescrierea MBR:
    grub2-install /dev/sda
    grub2-install /dev/sdb (in cazul in care hdd-urile sunt in RAID)
  10. Regenerarea fisierului grub.conf:
    grub2-mkconfig -o /boot/grub2/grub.conf
  11. Demontarea unitatii optice:
    umount /test/
  12. Iesirea din interfata de recovery si repornirea sistemului:
    exit
    exit