Grub (Boot Loader)

Debianla birlikte kurulabilen Sistem başlatıcı yazılımlardan GRUB hakkında notlar.

Debianı Grafik Arayüzü Dışında Başlatmak (Boot etmek)

Diyelimli debian kurdunuz fakat ekran kartından dolayı debian açılmıyor ve ekranınız simsiyah kalıyor. Bu durumda windowsdaki gibi F8 kullanmak ve güvenli kipte başlatmak isteyebilirsiniz Debianı. İşte bunun için Grub komutlarını biraz bilmelisiniz.

GRUB (GRand Unified Bootloader) standart olarak yüklenen Debian Linux  (sarge) başlatıcısıdır. Boot Loader, bilgisayar başlatılırken çalışmaya başlayan bir programdır; Yüklenen işletim sistemini ve işletim sistemine ait parametreleri düzenler.

Debian GRUB  GNU projesiyle dağıtılıyor ve çok başarılı, birazda karışık. Linuxla sistemi başlatırken başlangıç parametrelerini kontrol etmelisiniz. GRUB basit bir menü ile ekrana çıkacaktır. Ok tuşları yardımı ile işletim sistemi seçeneklerinde gezinebilirsiniz veya standart ayarlı işletim sistemi ile sistem başlayacaktır.

Adım adım GRUB

    * Bilgisayarı açın.
    * GRUB ekrana işletim sistemlerini listeleyecektir. "e" tuşuna basarak seçili işletim sistemine ait parametreleri görebilirsiniz.
    * GRUB tan çıkmak için ESC tuşarını kullanabilirsiniz.
    * "c"  tuşu ile GRUB komut sistemine geçmiş olursunuz.

GRUB komut sistemine geçtiğinizde;

  grub> 

 

ekran bu şekilde olacaktır.

Debian Linux ile başlamak isterseniz birkaç parametre hakkında bilgi sahibi olmanız gerekir.

  1. İşletim sistemine ait image dosyasının nerde olduğunu belirten komut :  root.
  2. Çekirdek image için komut : kernel.
  3. Komutla RAM diski oluşturmak için : initrd.
  4. Komutların çalışması için boot.

 

 

 

Aşağıdaki komut  ile diskin hangi bölüm (partition) den başlıcağını belirtiyoruz. hd1, 1. disk bölümler ise 0 dan başlıyor.

  grub> root (hd0,2)
  Filesystem type is ext2fs, partition type 0x83

 

Yüklenecek çekirdek hakkında parametreleri giriyoruz.


  grub> kernel /boot/vmlinuz-2.6.26-1-amd64 root=/dev/sda3 ro single vga=normal

 initrd komutu ile bir RAM Disk oluşturuyoruz

  grub> initrd /boot/initrd.img-2.6.26-1-amd64
  [Linux-initrd @ 0x37bd1000, 0x41e000 bytes]

 

Tüm parametreleri verdikten sonra sistemi boot yazarak başlatıyoruz.

  grub> boot

Normal olarak "c" ile komut sistemine geçmeden işletim sistemi listesi üzerinde "e" tuşuna basarak bu yazdığımız parametrelerin GRUB tarafından her seferinde otomatik verildiğini görebiliriz.

Ekranda hiç bir cursor işağreti olmaya bilir, Enter tuşuna bastığımızda aşağıdaki ekran görüntüsü oluşacaktır...

 

Give root password for maintenance 
(or type Control-D to continue): *********
mycomputer:~# 
Böylece root olarak grafik arayüzünü kullanmadan Debianı başlatmış olduk. Aslında kernel ile verdiğimiz single ve vga komutları grafik arayüzün çıkmasına engel oldular. Aşağıdaki ekran görüntüsündeki GRUB ayarlarında bu parametrelerin olmadığını (Normal açılışta olmamalı zaten çünkü herkes grafik arayüzü ile başlamak ister) görüyoruz.

 Grub (Boot Loader)


Grub Menüsüne Şifre Koymak

Bildiğiniz üzere, Linux açılış yöneticisi olarak genel olarak grub veya lilo kullanıyoruz. Bu makalede, izniniz dışında bilgisayarın kullanımını önlemek için, grub menüsüne şifre özelliği ekleyeceğiz.

Bu konu neden önemli?

Dikkatli gözler, Grub menüsünde “Recovery Mode” seçeneğini farkedeceklerdir.Recovery Mode, hiç bir şifre gerektirmeden, tamamen root haklarıyla terminale ulaşmamıza izin veren bir seçenektir.Bilgisayara fiziksel olarak erişim sağlayan birisi, hiçbir şifre bilmese dahi, recovery mode içerisine girerek, root şifresini dahi sıfırlayabilir.Bu sebeple, hiç olmazsa recovery mode için menü şifresi koymamız yararımıza olur.

Peki Nasıl Yaparız?

İki aşamada tüm işlemlerimizi tamamlayabiliriz.Şifre belirlemek, şifreyi eklemek..

Önce şifremizi hazırlamalıyız.Şifreyi yine grub yardımıyla hazırlıyoruz.Bir terminal açalım ve komutumuzu verelim:

    grub

Grub içerisine girdiğimizde ise, md5crypt ile şifremizi hazırlıyoruz:

    [ 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> md5crypt

    Password: ********
    Encrypted: $f0KMk$rFUnJV/ZS3flTSR7QTv3m0

    grub>

Şifremizin md5 halini elde etmiş bulunuyoruz.Artık ikinci aşamaya geçebiliriz.

Bu aşamada, grub menu ayar dosyamızı açarak, içerisine kullanmak istediğimiz şifreyi ekliyoruz.Menu ayar dosyamızı açmak için:

    sudo gedit /boot/grub/menu.lst

Dosya içerisinde “recovery mode” sekmesini buluyoruz:

    title Ubuntu, kernel 2.6.24.16-2-386 (recovery mode)
    root (hd1,2)
    kernel /boot/vmlinuz-2.6.24.16-2-386 root=/dev/hdb3 ro single
    initrd /boot/initrd.img-2.6.24.16-2-386

Bu kısmı aşağıdaki duruma getiriyoruz:

    title Ubuntu, kernel 2.6.24.16-2-386 (recovery mode)
    root (hd1,2)
    kernel /boot/vmlinuz-2.6.24.16-2-386 root=/dev/hdb3 ro single
    initrd /boot/initrd.img-2.6.24.16-2-386
    password --md5 $f0KMk$rJV/ZS3SR7QTv3m0

Dosyamızı kaydedip kapatıyoruz.Artık grub menüsünde, recovery mode, belirlediğimiz şifre girilmediği sürece kullanılamayacaktır.Aynı şekilde, dilediğimiz tüm sekmelere bunu ekleyebiliriz.Mesela windows sekmesine =)
 

Grub Listesini Güncellemek

1. Öncelikle sistemdeki mevcut kernelin ne olduğunu öğreniyoruz.

uname -r

Bu komut sonucunda aşağıdaki gibi bir ekran çıkacaktır.

 Grub (Boot Loader)

2. Sistemdeki yüklü Kernel Image dosylarını listeliyoruz.

cd /boot


ls vmlinuz*

Bu komutlar sonucunda aşağıdaki gibi bir ekran çıkacaktır.

 Grub (Boot Loader)

 3. Kullanmayacağımız Kernelleri sistemden kaldırabiliriz. Ancak bu konu riskli odluğundan dikkatli olmak gerekir.

Aşağıdaki komutla gereksiz Kernelleri sistemden kaldırıyoruz.

 apt-get remove linux-image-2.6.26-1-amd64 linux-image-2.6.26-2-amd64

 Grub (Boot Loader)

 4. Grub için güncelleme komutumuzu veriyoruz:

update-grub

Grub (Boot Loader)

Her Zaman Aynı İşletim Sistemi ile Sistemi Başlatmak İçin

update-grub komutu ile sistemde bulunan işletim sistemlerini listeliyoruz.

Grub (Boot Loader)

sudo gedit /etc/default/grub komutu ile grub ayar dosyasını açıyoruz.

GRUB_SAVEDEFAULT=true *bu satırı ekliyoruz

GRUB_DEFAULT="Windows NT/2000/XP (loader) (on /dev/sda1)" *bu satırı değiştiriyoruz

Grub (Boot Loader)

DEFAULTa eşitlenen kısmı update-grup ile aldığıma dikkat edin.

ve son olarak tektar update-grup yapıyoruz.

 

EFI Sistemlerde grub Sorunu

http://www.rodsbooks.com/refind/getting.html,  adresinden işletim sistemini başlatacak kurtarıcı yazılım rEFInd'i indiriyoruz. CD yada Flash bellek üzerinden boot ediyoruz.

Check that the computer booted in computer in EFI mode:

[ -d /sys/firmware/efi ] && echo "EFI boot on HDD" || echo "Legacy boot on HDD"
should return "EFI boot on HDD".
 

After starting a root shell ( if you boot from a live media, you should start a chroot shell instead, as explained in https://help.ubuntu.com/community/Grub2/Installing#via_ChRoot ) check that your EFI system partition (most probably /dev/sda1) is mounted on /boot/efi

mount /dev/sda1 /boot/efi
 

Reinstall the grub-efi package

apt-get install --reinstall grub-efi
 

Put the debian bootloader in /boot/efi and create an appropriate entry in the computer NVRAM

grub-install /dev/sda
 

Re create a grub config file based on your disk partitioning schema 

update-grub
 

You should check afterwards that: 1. the bootloader is existing in /boot/efi/EFI/debian/grubx64.efi and

file /boot/efi/EFI/debian/grubx64.efi

/boot/efi/EFI/debian/grubx64.efi: PE32+ executable (EFI application) x86-64 (stripped to external PDB)for MS Windows
 

 1. the nvram entry was properly created. 

efibootmgr --verbose | grep debian
 

You can now reboot, and Grub should greet you.

Kaynaklar

 
 
Yorumunuzu Ekleyin


Yükleniyor...
Yükleniyor...