Grub Rescue Hatası ve Çözümü

Merhaba arkadaşlar, Sürekli ve sürekli sorunlarla uğraşan bir insan olarak yeni bir sorun ve bunun çözümü ile tekrar bir blog yazısı yazıyorum.

Uzun bir süredir(yaklaşık 4 yıl) linux kullanıcısıyım.Ama ne olursa olsun Windows'tan vazgeçemediğim de bir doğrudur.Yeri geldiğinde tasarım için Photoshop gerekince, yeri geldiğinde de Android Studio'yu daha stabil kullanabilmek için Windows'u hep bir köşede saklıyorum.Bazen ayda bir kere bazen 2 ayda bir kere kullanmak durumunda da kalsam.Ama şiddetle Windows 8.1'e karşı bir insanım.Bu yüzden Windows 8'de her zaman Windows 8.1 update'lerini kapalı tutuyorum.Ne yazık ki bugün olduğu gibi yine gözümden kaçırdığım bir update yüzünden çok fazla direnmeme rağmen Windows 8 bir anda bilgisayarı kapatıp Windows 8.1'e güncelledi kendini(tam da projenin ortasında!).Bu güncelleme sonrasında oluşan Grub Rescue hatasının çözümü olarak yazıyorum bu yazıyı da.

Sık sık harddiskimde ki verilerimi kaybetmem(hatta yeri geldiğinde yedek harddiskimde ki verileri bile) ile arkadaş çevremde ünlü olunca bu tür Grub hataları gördüğüm anda bir tedirginlik basıyor, "yine mi kaybettim?" diyorum her seferinde.İlk başta verilerimi kaybedip kaybetmediğimi anlamak için uğraşıyorum her zaman.Windows'un Disk Yöneticisinden Linux'un kurulu olduğu diske baktım ve diskin tamamını boş gösteriyordu ama her zaman bir doğrulama yapmam gerektiğine inanarak Windows üzerinden herhangi bir linux dağıtımını bootable olarak USB'ye yazdırıp açtım.Diskler bölümün de bütün diskler görünüyor ama yine Linux'un olduğu disk görünmüyordu.Son umut artık bir Gparted açıp bakayım dedim ve /dev/sda7'de duruyor Linux ve 100gb boş alanı var.Ne kadar verilere ulaşamasam da içime bir rahatlık çöktü, dedim galiba bu sefer olacak kurtaracam herşeyi hem de işletim sistemiyle birlikte (: Çok şükür ki öyle de oldu ve kurtardım şu an bu yazıyı yazıyorum (: Size de adım adım anlatayım işlemleri;

Önce Grub Rescue ekranın dan "ls" komutu ile disklere bakıyoruz.Ve Linux'un bulunduğu diski doğrulamak için diskin içindekileri tekrar listeliyoruz.

grub rescue> ls
(hd0), (hd0,gptX), (hd0,gptY), (hd0,gpt7), (hd0,gptBlaBla)
grub rescue> ls (hd0,7)/
İlk ls komutundan sonra disklerinizi göreceksiniz, ben öncesinde farklı bir Linux dağıtımı üzerinden diske baktığım için /dev/sda7'de olduğunu biliyordum, o yüzden direk onu kullandım.Burada yaptığım ilk hata şuydu, disk (hd0,gpt7) olarak görünüyordu onu listelemeye çalıştım.Onu listeleyince sadece dosya sistemi hakkında bilgi veriyor, gpt kısmını unutun ikinci argümana direk 7 yazın (:

İkinci olarak diskin içindekileri listeleyince artık emin oldum verilerimin ve işletim sistemimin orada köşede durduğundan.Sadece Grub'ı yeniden yapılandırmam gerekiyordu çünkü Windows 8.1 güncellemesi yapılırken /dev/sda'da ki grub'ı bozmuştu.Buradan sonra artık kendi Linux dağıtımımın Grub'ını tanıtmam gerekiyordu.Onu da şu şekilde yaptım.

grub rescue> set prefix=(hd0,7)/boot/grub
grub rescue> set root=(hd0,7)
grub rescue> insmod normal
grub rescue> normal
Burada normal komutunu verdikten sonra otomatik olarak kendi Linux'unuzun Grub ekranına düşmeniz gerekiyor.Eğer grub ekranınız gelmediyse boot'u yeniden yapılandırmanız gerekecek, onu da şu şekilde yapıyoruz;
grub rescue> ls /boot
komutu ile boot'un altında ki "vmlinuz" dosyalarınıza bakabilirsiniz.Ben de 3.x ve 4.x kerneli için iki farklı "vmlinuz" vardı.Siz de en son hangi kernel'ı kullanıyorduysanız onu seçmeniz gerekecek.
grub rescue> linux /boot/vmlinuz-4.1-x86_64 root=/dev/sda7
grub rescue> initrd /boot/initramfs-4.1-x86_64.img
grub rescue> boot
En son bu komutları da verdikten sonra artık işlem tamamlanmış oluyor ve geri dönüyorsunuz rahatça verilerinizi kaybetmeden.

Son olarak Grub'ta ki bu değişikliklerden sonra kalıcılığı sağlamak için, açtığınız Linux dağıtımınız da root yetkileri ile;

# update-grub

grub-install /dev/sda

bu komutları çalıştırmanız yeterli olacaktır.

*Umarım faydalı olmuştur, kolay gelsin..


Tags: fix, grub, grub rescue, linux, solved