Grub

Arch Linux Türkiye Belgeleri sitesinden
Atla: kullan, ara


Internet.png Bu yazı ArchWiki üzerinde bulunan GRUB yazısının çevirisi temel alınarak hazırlanmıştır. Son güncelleme tarihi 08.07.2012
İngilizce olan ArchWiki sayfasında çeviri tarihinden sonra yapılan değişiklikler için bu bağlantıyı takip edin.

Sayfa özgün sayfaya göre güncelliğini yitirmişse, bu sayfayı düzenleyerek güncelleştirmeye yardım edin!

Tüm çeviri yazıları Özel:SayfayaBağlantılar/Şablon:çeviri_durumu sayfasında görüntüleyebilirsiniz.
Internet.png


Özet
Arch Linux'un öntanımlı önyükleyicisi, GRand Unified Bootloader (GRUB) hakkında ayrıntılı bilgi içerir.


Genel Bakış
Arch Linux' u başlatabilmek için GRUB, GRUB2, LILO veya Syslinux gibi bir Linux uyumlu önyükleyicinin sabit diskin MBR kaydına veya GUID Bölümlendirme Tablosuna kurulu olması gerekir. Bir önyükleyici, önyükleme süreci başlamadan önce çekirdeği ve birincil ram diski yüklemekten sorumludur.



GNU GRUB (Legacy), GNU Projesi tarafından geliştirilen bir çoklu önyükleyicidir. Erich Stefan Boleyn tarafından geliştirilmiş olan GRUB, GRand Unified Bootloader, üzerinden geliştirilmiştir.

Açıkça, bir önyükleyici bilgisayara başladığında ilk çalışan uygulamadır. Linux çekirdeğini yüklemek ve denetimi ona devretmek görevini yerine getirir. Çekirdek, sırayla işletim sisteminin kalan bileşenlerini sırasıyla çalıştırır.



Kalem.png
ÖNEMLİ:
GRUB Legacy bir çok Linux dağıtımında yerini GRUB2' ye bırakmıştır. Birden çok dağıtımın kurulu olduğu bir bilgisayarda GRUB2 veya Syslinux kullanılması önerilir.



Kalem.png
ÖNEMLİ:
grub paketi GPT disklerini, BTRFS dosya sistemini ve UEFI donanım yazılımlarını desteklememektedir.

Konu başlıkları

Kurulum

Arch Linux kurulumunda GRUB paketi kendiliğinden sisteme kurulur. Bu paketi kurmamayı seçmiş iseniz daha sonra Resmi Depolardan grub paketini kurabilirsiniz.

Ek olarak, GRUB bir sabit diskin veya sabit disk bölümünün ilk sektörüne kurulmalıdır. Bu konu #Önyükleyici kurulumu bölümünde anlatılmıştır.

Yapılandırma

Yapılandırma dosyası /boot/grub/menu.lst dosyasıdır. Gereksinimlerinize göre bu dosyayı düzenlemeniz gereklidir.

  • timeout # -- default (öntanımlı) işletim sisteminin kendiliğinden yüklenmesinden önce geçecek saniye cinsinden süre.
  • default # -- timeout (süre) geçtiğinde kendiliğinden yüklenecek öntanımlı girdi.

Örnek bir yapılandırma (/bootdizini ayrı bir disk bölümü olduğunda):


/boot/grub/menu.lst
# Config file for GRUB - The GNU GRand Unified Bootloader
# /boot/grub/menu.lst

# DEVICE NAME CONVERSIONS
#
#  Linux           GRUB
# -------------------------
#  /dev/fd0        (fd0)
#  /dev/sda        (hd0)
#  /dev/sdb2       (hd1,1)
#  /dev/sda3       (hd0,2)
#

#  FRAMEBUFFER RESOLUTION SETTINGS
#     +-------------------------------------------------+
#          | 640x480    800x600    1024x768   1280x1024
#      ----+--------------------------------------------
#      256 | 0x301=769  0x303=771  0x305=773   0x307=775
#      32K | 0x310=784  0x313=787  0x316=790   0x319=793
#      64K | 0x311=785  0x314=788  0x317=791   0x31A=794
#      16M | 0x312=786  0x315=789  0x318=792   0x31B=795
#     +-------------------------------------------------+
#  for more details and different resolutions see
#  https://wiki.archlinux.org/index.php/GRUB#Framebuffer_Resolution

# general configuration:
timeout   5
default   0
color light-blue/black light-cyan/blue

# boot sections follow
# each is implicitly numbered from 0 in the order of appearance below
#
# TIP: If you want a 1024x768 framebuffer, add "vga=773" to your kernel line.
#
#-*

# (0) Arch Linux
title  Arch Linux
root   (hd0,0)
kernel /vmlinuz-linux root=/dev/sda3 ro
initrd /initramfs-linux.img

# (1) Windows
#title Windows
#rootnoverify (hd0,0)
#makeactive
#chainloader +1

GRUB' un kök dizinini bulmak

GRUB'a kendi dosyalarının sistemin neresinde konumlandığı tanıtılmalıdır çünkü birden fazla grub kurulumu yapılmış olabilir (çoklu işletim sistemlerinde mesela). GRUB dosyalara her zaman, ayrı bir disk bölümü de olabilen /boot dizini altında yer alır.



Kalem.png
ÖNEMLİ:
GRUB depolama aygıtlarını çekirdek adlandırmasından farklı biçimde tanımlar.
  • Sabit diskler (hdX) olarak tanınırlar; bu ayrıca her türlü USB depolama aygıtı için de geçerlidir.
  • Aygıt ve bölümlendirme sıralaması sıfır ile başlar. Örneğin BIOS ile algılanan ilk sabit disk (hd0) olarak tanımlanır. İkinci sabit disk (hd1) olur. Bu durum disk bölümleri için de geçerlidir. İlk sabit diskin ilk bölümü (hd0,1) olarak tanımlanır.

/boot dizininin konumunu bilemiyorsanız, GRUB dosyalarının yerini belirlemek için GRUB komut satırında find komutunu kullanın. GRUB komut satırına kök olarak şu komutla girebilirsiniz:

# grub

Şu örnek ayrı bir /boot disk bölümü olmadığı ve /boot konumunun / altında bir dizin olduğu durumları için geçerlidir:

grub> find /boot/grub/stage1

Şu örnek ise sabit diskte ayrı bir /boot disk bölümünün bulunduğu durumlar içindir:

grub> find /grub/stage1

GRUB dosyayı bulacak ve stage1 dosyasının konumunu verecektir. Mesela:

grub> find /grub/stage1
 (hd0,0)

Bu değer yapılandırma dosyasında root satırına girilmelidir. Komut satırını terk etmek için quit yazın.

Windows ile önyükleme

Aşağıda yazılanları /boot/grub/menu.lst dosyasının en altına ekleyin (Windows' un ilk sabit diskin ilk disk bölümünde kurulu olduğu varsayılmıştır):

/boot/grub/menu.lst
 title Windows
 rootnoverify (hd0,0)
 makeactive
 chainloader +1



Kalem.png
ÖNEMLİ:
Windows 7 kullanıyorsanız makeactive satırını devre dışı bırakmalısınız.



Kalem.png
ÖNEMLİ:
Windows 2000 ve sonraki sürümlerinin önyüklenebilmesi için (yaygın inanışın aksine) sabit diskin ilk bölümünde yer almasına gerek yoktur. Bir disk bölümü değişirse (mesela Windows' un kurulu olduğu disk bölümünden önce yeni bir disk bölümü oluşturursanız) Windows' un boot.ini dosyasını buna uygun değiştirmeniz gerekir.(İngilizce olan bir yazıda bu konu hakkında ayrıntılı bilgi bulabilirsiniz).

Windows bir başka sabit disk üzerindeyse map komutu kullanılmalıdır. Böylece Windows kurulumu kendisinin ilk diskte olduğunu sanacaktır. Varsayalım ki Windows kurulu disk bölümü ikinci sabit diskin ilk disk bölümü:

/boot/grub/menu.lst
 title Windows
 map (hd0) (hd1)
 map (hd1) (hd0)
 rootnoverify (hd1,0)
 makeactive
 chainloader +1

GNU/Linux ile ikili önyükleme

Bu aynı Arch Linux kurulumu açıklamasındaki gibi yapılır. Örneğin:

/boot/grub/menu.lst
 title Other Linux
 root (hd0,2)
 kernel /path/to/kernel root=/dev/sda3 ro
 initrd /path/to/initrd



Kalem.png
ÖNEMLİ:
Gerekli olabilecek başka seçenekler de olabilir ve bir birincil RAM disk kullanılmayabilir. Önyükleme seçeneklerinin uyuşması için diğer dağıtımların /boot/grub/menu.lst dosyalarını inceleyin veya #chainloader ve configfile bölümüne bakın (önerilir).

chainloader ve configfile

Sistem bakımını sürdürülebilmesi için, otomatik GRUB yapılandırması üreten (Debian, Ubuntu, openSUSE v.b.) dağıtımların yüklenebilmesini sağlamak amacıyla chainloader veya configfile komutu kullanılmalıdır. Bu sayede dağıtım kendi menu.lst dosyasını ve önyükleme seçeneklerini yönetebilecektir.

  • chainloader komutu bir çekirdek imajından ziyade diğer bir önyükleyiciyi yükler. Bu, diğer önyükleyicinin bir disk bölümünün önyükleme sektörüne kurulu olması halinde yararlıdır. Böylece bir "ana" GRUB önyükleyicisinin disk açılış sektörüne (MBR) kurulabilmesi ve dağıtıma özgü diğer GRUB önyükleyicilerinin her disk bölümünün açılış kaydına (PBR) kurulmasına olanak sağlanır.
  • {dosyaadı|configfile}} komutu çalışmakta olan GRUB önyükleyicisine belirtilen yapılandırma dosyasını yüklemesi yönergesini verir. Bu komut, var olandan ayrı bir GRUB kurulumuna gerek olmasızın diğer dağıtımların kendi menu.lst dosyalarını yükleyebilmesini sağlar. Bu yaklaşımın olumsuz yönü diğer dağıtımın menu.lst dosyası ile kurulu olan GRUB' un uyumlu olmaması nedeniyle önyüklemenin yapılamamasıdır. Çünkü bazı dağıtımlar kendi GRUB paketlerinde yoğun olarak Arch paketlerinde kullanılmayan yamaları kullanmaktadırlar.

Örneğin, GRUB' un MBR üzerine kurulacağını ve bir başka önyükleyicinin (GRUB veya LILO) ise önceden (hd0,2) disk bölümünün açılış sektörüne kurulu olduğunu varsayalım;

---------------------------------------------
|   |           |           |   %           |
| M |           |           | B %           |
| B |  (hd0,0)  |  (hd0,1)  | L %  (hd0,2)  |
| R |           |           |   %           |
|   |           |           |   %           |
---------------------------------------------
  |                           ^
  |       chainloading        |
  -----------------------------

menu.lst dosyasının diğer dağıtımın yüklenebilmesi için gerekli kısmı şu şekilde olmalıdır:

title Diger Linux
root (hd0,2)
chainloader +1

veya (hd0,2) üzerindeki önyükleyici GRUB ise:

title Other Linux
root (hd0,2)
configfile /boot/grub/menu.lst

chainloader komutu ayrıca ikinci bir sabit diskteki MBR kaydının yüklenmesi için kullanılabilir:

title Other drive
rootnoverify (hd1)
chainloader +1

GRUB2 kullanan GNU/Linux ile ikili önyükleme

Sabit diskte kurulu bulunan diğer dağıtım GRUB2 kullanıyorsa (örneğin Ubuntu 9.10+) ve o dağıtımını önyükleyicisini kendi kök dizininin bulunduğu sabit disk bölümüne kurmuşsanız kendi /boot/grub/menu.lst dosyanıza şuna benzer bir girdi eklemelisiniz:

/boot/grub/menu.lst
 # GRUB2 kullanan diğer Linux dağıtımı
 title Ubuntu
 root (hd0,2)
 kernel /boot/grub/core.img

Açılışta bu seçeneği seçmeniz halinde diğer dağıtımın /dev/sda3 üzerinde kurulu bulunduğu varsayımıyla o dağıtımın GRUB2 menüsünü yükleyecektir.

Önyükleyici Kurulumu

GRUB kütüphanelerinin elle kurtarılması

*stage* dosyalarının /boot/grub dizini altında yer alması gerekir. Yer almıyorsa muhtemelen sistem kurulumu sırasında önyükleyici kurulmamış veya disk bölümü/dosya sistemi zarar görmüş, kazara silinmiş v.b. olabilir.

GRUB kütüphanelerini şu şekilde elle kopyalayın:

# cp -a /usr/lib/grub/i386-pc/* /boot/grub



Kalem.png
ÖNEMLİ:
Sisteminizin /boot dizini ayrı bir disk bölümündeyse bu disk bölümünü bağlamayı unutmayın! Yukarıdaki açıklama önyükleme dizininin kök dizinin bulunduğu disk bölümünde olduğunu veya bağlı olduğunu varsaymaktadır.

Önyükleyici kurulumu ile ilgili genel bilgiler

GRUB ayrı bir ortamdan (mesela ÇalışanCD) veya doğrudan çalışmakta olan bir Arch kurulumundan kurulabilir. GRUB önyükleyicisi çok nadir olarak yeniden kurulum gerektirir ve kurulum şu durumlarda zorunlu değildir:

  • Yapılandırma dosyası güncellenmişse.
  • grub paketi güncellenmişse.

Kurulum şu durumlarda zorunludur:

  • Bir önyükleyici kurulu değilse.
  • Bir başka işletim sistemi Linux önyükleyicisi üzerine yazmışsa.
  • Önyükleyici bilinmeyen nedenle başarısız olmuşsa.

Devam etmeden önce aşağıdaki bilgileri okuyun:

  • Devam etmeden önce (/boot/grub/menu.lst) dosyasını inceleyerek doğru yapılandırıldığından emin olun. Aygıtlarınızın doğru tanımlanıp tanımlanmadığını belirlemek için #GRUB' un kök dizinini bulmak kısmını okuyun.
  • GRUB, sabit diskin ilk sektörüne yani MBR' ye veya BIOS tarafından algılanabilecek ilk depolama aygıtının ilk disk bölümüne kurulmalıdır. Farklı dağıtımların kendi GRUB menülerini yönetebilmesi için birden fazla GRUB kullanılabilir. Bkz:#chainloader ve configfile.
  • GRUB önyükleyicisinin kulumu bir chroot ortamından yapılabilir.RAID yapılandırmaları veya GRUB kurulumunu unutmuş veya bozmuş iseniz bu yöntem işinize yarayabilir. Bunu yapmak için bir ÇalışanCD veya kurulu başka bir Linux sistemden kök değişimi yapmalısınız.

Önce GRUB komut satırına girin:

# grub

find komutu çıktısı (bkz: #GRUB' un kök dizinini bulmak) ile root komutunu kullanarak GRUB'a hangi disk bölümünün stage1 dosyasını (ve böylece /boot dizininin yerini) gösterin:

grub> root (hd1,0)



Lamba.png
İpucu:
GRUB komut satırı TAB ile tamamlamayı desteklemektedir.Örneğin root (hd yazıp üstüste iki kez Tab tuşuna basarsanız tüm erişilebilir aygıtları görebilirsiniz. Bu aynı zamanda disk bölümleri için de geçerlidir. Tab ile tamamlama ayrıca GRUB önyükleme menüsünde de çalışmaktadır. Yapılandırma dosyanızda bir hata varsa onu önyükleme menüsünde düzenleyebilir ve tab ile tamamlama işlevini kullanabilirsiniz. Bkz: #Önyükleme menüsünde GRUB girdilerini değiştirme.


MBR üzerine kurmak

Aşağıdaki örnek GRUB' ı ilk sabit diskin MBR kaydına kuracaktır:

grub> setup (hd0)

Bir disk bölümüne kurmak

Aşağıdaki örnek GRUB' ı ilk sabit diskin ilk disk bölümüne kuracaktır:

grub> setup (hd0,0)

setup komutunu çalıştırdıktan sonra kabuğu terk etmek için quit yazarak ENTER tuşuna basın. Bir chroot ortamında iseniz chroot ortamından çıkın ve disk bölümlerini ayırın. Denemek için bilgisayarı yeniden başlatın.

Diğer yöntem (grub-install)

Lamba.png
İpucu:
Bu işlem daha az güvenilir olup GRUB komut satırından kurulum yapılması önerilir.

grub-install komutuyla beraber önyükleyiciyi kuracağınız konumu belirtin. Örneğin, GRUB ilk sabit diskin MBR kaydına kurulacaksa:

# grub-install /dev/sda

GRUB başarıyla kurulduğunda bunu ekranda size bildirecektir. Kurulum başarısız olduysa bir önceki bölümde anlatılan GRUB komut satırı yöntemini kullanın.


Tango-dialog-warning.png
Uyarı:
Herhangi bir biçimde GRUB kurulumu başarısız olduysa bilgisayarınızı SAKIN yeniden başlatmayın. Mutlaka GRUB kurulumunu yeniden deneyin. Aksi halde bilgisayarınız başlamayabilir.

İpuçları ve Hileler

Ek yapılandırma bilgileri.

Grafiksel Önyükleme

Süslü bir görünüm arzulayanlar grub-gfx paketini deneyebilirler. Ayrıca GRUB2 de gelişmiş grafiksel giriş imkanı sunmaktadır.

Çerçeve belleği çözünürlüğü

menu.lst dosyası içerisindeki çözünürlükler kullanılabileceği gibi LCD geniş ekran monitörünüzü tam doğal çözünürlüğünde kullanmayı da isteyebilirsiniz. Bunu yapmak için:

Wikipedia üzerinde genişletilmiş çerçeve belleği çözünürlükleri listesi (örneğin VBE standartların ötesi) bulunabilir. Fakat 1440x900 çözünürlük için girilen (vga=867) değeri çalışmamaktadır. Bunun nedeni ekran kartı üreticilerinin kendi istedikleri sayıyı girebilmeleri ve bunun ise VBE3 standardına uymamasıdır. Bu sebeple belirtilen çözünürlük/renk derinliği kodları bir ekran kartında çalışırken başka marka bir kartta çalışmayabilir.

O zaman, yukarıda zikredilen çizelgeyi kullanmak yerine aşağıda anlatılan araçları kullanarak doğru ve size uygun kodları bulabilirsiniz:

GRUB tarafından algılanan değer

Bu, sadece GRUB tarafından kullanılan çözünürlük kodunu bulmanın kolay yoludur. Çekirdek satırında, çekirdeğin hangi kipi kullanacağını size sormasını sağlayabilirsiniz.

kernel /vmlinuz-linux root=/dev/sda1 ro vga=ask

Şimdi bilgisayarınızı yeniden başlatın. GRUB kullanabileceğiniz uyumlu kodların bir listesini görüntüleyecek ve daha fazlası için tarama yapabilmeniz için seçenek sunacaktır.

Kullanmak istediğiniz kodu edinin (bunu unutmayın, bir sonraki adımda ihtiyacınız olacak) ve bu kodu kullanarak bilgisayarınızı başlatın.

Çekirdek komut satırındaki ask ibaresini edinmiş olduğunuz kod ile değiştirin.

örneğin [369] 1680x1050x32 için çekirdek komut satırı şu biçimde olmalıdır:

kernel /vmlinuz-linux root=/dev/sda1 ro vga=0x369

hwinfo

  1. [community] deposundan hwinfo paketini kurun.
  2. Kök olarak hwinfo --framebuffer komutunu çalıştırın.
  3. Uygun çözünürlüklerden birini edinin.
  4. menu.lst dosyasında yer alan vga= çekirdek seçeneğinde 0x ön takısıyla 6 haneli kodu kullanın veya kodu 0x ön takısını kullanmaktan kaçınmak için onluk düzende yazın.

Örnek hwinfo çıktısı:

Mode 0x0364: 1440x900 (+1440), 8 bits
Mode 0x0365: 1440x900 (+5760), 24 bits

ve çekirdek satırı:

kernel /vmlinuz-linux root=/dev/sda1 ro vga=0x0365



Kalem.png
ÖNEMLİ:
vbetest size VESA kipini verir ki bunu çekirdek satırında kullanabilmek için 512 değerini üzerine eklemelisiniz. Oysa hwinfo çekirdek tarafından kullanılabilecek değeri doğrudan verir.

vbetest

  1. AUR üzerinden vbetest aracını barındıran lrmi paketini kurun. (x86_64 kullanıcıları yukarıda anlatılan #hwinfo aracını kullanmalıdır.).
  2. Kök olarak vbetest komutunu çalıştırın
  3. Daha sonra köşeli parantezler ( [ ] ) içindeki arzu ettiğiniz çözünürlüğü bir kenara yazın.
  4. vbetest etkileşimli komutundan çıkmak için q tuşuna basın.
    1. Bir seçenek olarak; kök kullanıcı olarak komut satırında seçtiğiniz çözünürlük kipini vbetest -m <çözünürlük kodu> komutu ile deneyebilir ve buradaki gibi bir görüntü elde edebilirsiniz.
  5. Bir önceki adımda anlatıldığı gibi edindiğiniz çözünürlük değerine 512 ekleyin ve elde ettiğiniz değeri menu.lst dosyasındaki çekirdek seçeneklerinde vga=değer şeklinde kullanın .
  6. Bilgisayarınızı yeniden başlatın.

Bir bilgisayardaki vbetest örneği:

[356] 1440x900 (256 color palette)
[357] 1440x900 (8:8:8)

Burada, edineceğiniz değer 357 olacaktır. Daha sonra, 357 + 512 = 869, böylece çekirdek seçeneklerinde vga=869 değerini kullanacaksınız:

kernel /vmlinuz-linux root=/dev/sda1 ro vga=869



Kalem.png
ÖNEMLİ:
  • (8:8:8) 24-bit renk içindir(24bit aslında 32bit değeridir)
  • (5:6:5) 16-bit renk içindir
  • (5:5:5) 15-bit renk içindir

Disk bölümlerini isimlendirme

Etiketle İsimlendirme

Disk bölüm boyutlarını zaman zaman değiştiriyorsanız, sabit diskinizin bölümlerini etiketle isimlendirmeyi düşünmelisiniz.

ext2, ext3, ext4 disk bölümlerini şu şekilde etiketlendirebilirsiniz:
e2label </dev/drive|partition> label

Etiket ismi en fazla 16 harf/karakter değerinde olmalı ve GRUB' un çalışabilmesi için boşluk içermemelidir. Daha sonra bunu menu.lst içinde tanımlayın:

kernel /boot/vmlinuz-linux root=/dev/disk/by-label/Arch_Linux ro

UUID ile isimlendirme

Bir sabit disk bölümünün UUID (Universally Unique IDentifier - Evrensel Benzersiz Tanımlayıcı) değeri blkid veya ls -l /dev/disk/by-uuid ile bulunabilir. menu.lst dosyasında ya:

kernel /boot/vmlinuz-linux root=/dev/disk/by-uuid/<uuid number>

veya

kernel /boot/vmlinuz-linux root=UUID=<uuid number>

biçiminde tanımlanır.

Kök olarak önyükleme yapma (tek-kullanıcı kipi)

Önyükleyici ekranında, bir girdi seçin ve e tuşuna basarak düzenleme kipine geçin. Aşağıdaki değeri çekirdek seçeneklerinin sonuna ekleyin:

[...] single init=/bin/bash

Bu sayede tek-kullanıcı kipi (init 1) ile sistem başlayacaktır. Mesela, parola sorulmadan kök kullanıcı olarak komut satırına düşersiniz. Bu işlem, kök parolasını sıfırlamak gibi sistem kurtarma için yararlı olabilir. Ancak, grub için parola koruması ayarlamadıysanız bu çok önemli bir güvenlik açığı anlamına gelir.

Parola koruması

Parola ile korunmasını istediğiniz işletim sistemleri için GRUB yapılandırmasında bir parola koruması belirleyebilirsiniz. BIOS ayarlarınızda parola koruması yoksa ve/veya ek güvenlik önlemleri istiyorsanız önyükleyici parola koruması size uygun olabilir.

Öncelikle, kolaylıkla hatırlayabileceğiniz bir parola belirleyin ve bu parolayı şifreleyin:

# grub-md5-crypt
Password:
Retype password:
$1$ZOGor$GABXUQ/hnzns/d5JYqqjw

Daha sonra /boot/grub/menu.lst dosyasında bu şifrelenmiş parolayı en üste ekleyin:

# genel yapılandırma
timeout   5
default   0
color light-blue/black light-cyan/blue

password --md5 $1$ZOGor$GABXUQ/hnzns/d5JYqqjw



Kalem.png
ÖNEMLİ:
Grub' un girdi için standart QWERTY (Amerikan Q klavye) klavye düzeni kullandığını unutmayın.

Son olarak, korunmasını istediğiniz her işletim sistemi ile ilgili /boot/grub/menu.lst bölümünde lock komutunu kullanın:

# (0) Arch Linux
title  Arch Linux
lock
root   (hd0,1)
kernel /boot/vmlinuz-linux root=/dev/disk/by-label/Arch_Linux ro
initrd /boot/initramfs-linux.img


Tango-dialog-warning.png
Uyarı:
BIOS ayarlarında diğer önyükleme aygıtlarını (mesela CD-ROM) devre dışı bıraktıysanız ve tüm işletim sistemi girdilerini parola korumasına aldıysanız parolayı unutmanız halinde bu işletim sistemlerini başlatmak oldukça zor olabilir.

Belirli bir önyükleme seçeneği ile yeniden başlatma

Genellikle öntanımlı olmayan diğer bir işletim sistemini kullanmanız gerekiyorsa, bilgisayarı yeniden başlattığınız her seferde GRUB menüsünden ilgili işletim sistemini seçmek zorunda kalmak sıkıcı olabilir. GRUB bunun için, işletim sistemi seçiminizi kaydetmek ve bilgisayarı yeniden başlattığınızda menü görüntülemek yerine seçtiğiniz işletim sistemini geçici olarak öntanımlı seçenek olarak belirleyerek (seçenek kullanıldığında sonraki bilgisayar başlangıcında yeniden öntanımlı değerlere dönülür) doğrudan o işletim sistemini başlatma yolunu sunar.

Varsayalım ki basit bir menu.lst dosyası şu şekilde olsun:


/boot/grub/menu.lst
# general configuration:
timeout 10
default 0
color light-blue/black light-cyan/blue

# (0) Arch
title  Arch Linux
root (hd0,1)
kernel /boot/vmlinuz-linux root=/dev/disk/by-label/ARCH ro
initrd /boot/initramfs-linux.img

# (1) Windows
title Windows XP
rootnoverify (hd0,0)
makeactive
chainloader +1

Arch öntanımlı işletim sistemidir (0). Bilgisayarı yeniden başlattığımızda Windows açılsın istiyoruz. Bunun için default 0 değerini default saved olarak değiştirin. -- bu işlem veya savedefault komutu kullanıldığında geçerli öntanımlı değer GRUB dizininde bir default dosyasına yazılır.

Şimdi, Windows girdisiniz sonuna savedefault 0 satırını yazın. Windows açıldığında bu değer yine Arch olan öntanımlı değere dönecek ve yapılan işlem geçici bir işlem olacaktır.

Bu işlemi elle daha kolay bir şekilde yapabilmek grub-set-default komutunu kullanarak mümkündür. Windows' u bir sonraki önyüklemede doğrudan açmak için kök olarak şu komutu kullanmanız yeterlidir:

# grub-set-default 1 && shutdown -r now

Kolay kullanım için "Kullanıcının bilgisayarı kapatabilmesine izin verme yazısındaki çözümleri" /sbin/grub-set-default komutu için de uygulamak isteyebilirsiniz.

LILO ve GRUB etkileşimi

Sisteminizde LILO paketi kurulu ise aşağıdaki komutla kaldırın:

# pacman -R lilo

Bazı görevler (meselamake all kullanılarak çekirdek derleme) LILO' yu çağırırlar ve LILO da GRUB üzerine kurulur. Kurulum ortamı sürümünüz ve kurulumda paket seçimi aşamasında seçtiğiniz/seçimi kaldırdığınız paketlere göre LILO temel sistem kurulumunuzda bulunabilir.



Kalem.png
ÖNEMLİ:
pacman -R lilo komutu LILO, MBR üzerine kuruluysa oradan silmeyecektir. Sadece lilo paketini sistemden kaldıracaktır. GRUB veya başka bir önyükleyici kurulumu yapıldığında MBR üzerindeki LILO kurulumunun üzerine yazılır.

GRUB önyükleme diski

Öncelikle bir disketi biçimlendirin:

 fdformat /dev/fd0
 mke2fs /dev/fd0

Şimdi disketi sisteme bağlayın:

 mount -t ext2 /dev/fd0 /mnt/fl

GRUB'u diskete kurun:

 grub-install --root-directory=/mnt/fl '(fd0)'

menu.lst dosyanızı diskete kopyalayın:

 cp /boot/grub/menu.lst /mnt/fl/boot/grub/menu.lst

Şimdi disketi sistemden ayırın:

 umount /mnt/fl

Artık bilgisayarı disket takılıyken yeniden başlatabilir ve GRUB ile önyükleme yapabilirsiniz. Tabii ki, BIOS ayarlarında önyüklemenin ilk olarak disketten yapılmasının ayarlı olduğundan emin olun.

Ayrıca BKZ: Super GRUB Disk

GRUB menüsünü gizlemek

Öntanımlı olarak menüyü gizlemek isterseniz hiddenmenu seçeneğini kullanmalısınız. Bu sayede bir menü görüntülenmeyecek ve menulist dosyasında belirlediğiniz süre geçtiğinde kendiliğinden öntanımlı işletim sistemi açılacaktır. Yine de Esc tuşuna basarak menüyü görüntüleyebilirsiniz.

Sorun giderme

GRUB Error 17

Kalem.png
ÖNEMLİ:
Aşağıda anlatıan çözüm yolu ayrıca GRUB Error 15 hatalarında da işe yaramaktadır.

Yapılacak ilk iş sisteme bağlı olan tüm harici sabit diskleri sistemden ayırmaktır.

Sabit disk bölümlendirme tablosu bozulmuş ise bilgisayarı yeniden başlattığınızda sizi sevimsiz bir "GRUB error 17" karşılayacaktır. Disk bölümlendirme tablosunun bozulmasına bir kaç şey neden olur. Genellikle GParted uygulaması ile sabit disk bölümlerini (özellikle mantıksal bölümleri) değiştiren kullanıcılar disk bölümlerinin sıralamasını değiştirebilirler. Örneğin /dev/sda6 disk bölümünü sildiğinizde ve /dev/sda7 disk bölümünü yeniden boyutlandırdığınızda ve son olarak eskiden /dev/sda6 olan yerde yeni bir disk bölümü oluşturduğunuzda, mesela /dev/sda9 bu son oluşturulan disk bölümü listenin sonunda yer alır. Her ne kadar disk bölümlerinin/mantıksal bölümlerin fiziki sıralaması değişmemiş olsa da bunların algılanış sırası değişmiş olur ve GRUB error 17 hatası ile karşılaşırsınız.

Disk bölümlendirme tablosunu düzeltmek kolaydır. Bir Linux ÇalışanCD ile bilgisayarı başlatın; kök olarak oturum açın ve komut satırında aşağıdaki komut ile disk bölümlendirme tablosunu düzeltin:

# fdisk /dev/sda

Disk içinde iken ek/uzman (e[x]tra/expert) kipine girin, bölümlendirme tablosunu düzeltin ([f]ix) sonra da bölümlendirme tablosunu kaydedin ([w]rite) ve çıkın.

Disk bölümlendirme tablosunun düzeltilip düzeltilmediğini fdisk -l komutu ile doğrulayabilirsiniz. Şimdi yapmanız gereken GRUB' u düzeltmek olacaktır. Bunun için daha önce anlatılan #Önyükleyici Kurulumu bölümünü okuyun.

Temelde, GRUB' a/boot dizininin bulunduğu disk bölümünü göstermeli ve GRUB' u yeniden sabit diskin MBR kaydına yüklemelisiniz. Örneğin:

# grub
grub> root (hd0,6)
grub> setup (hd0)
grub> quit

Daha ayrıntılı bilgi için İngilizce olan şu sayfaya bakın.

/boot/grub/stage1 not read correctly (/boot/grub/stage1 doğru okunamadı)

GRUB kurulumu yaparken bu hatayı alıyorsanız ve yeni bir bölümlendirme tablosu kullanmıyorsanız bölümlendirme tablosunu denetlemenizde yarar vardır.

# fdisk -l /dev/sda

Bu size /dev/sda sabit diskinin bölümlendirme tablosunu görüntüleyecektir. Buradan disk bölümlerinizin "Id" (kimlik) değerlerinin doğru olup olmadığını denetleyin. "System" sütunu "Id" değerlerinin açıklamalarını gösterecektir.

Önyükleme bölümü mesela "HPFS/NTFS" olarak işaretlenmiş ise bunu "Linux" olarak değiştirmelisiniz. Bunu yapabilmek için fdisk aracını kullanın:

# fdisk /dev/sda

disk bölümünün sistem kimliğini (id) [t] kullanarak değiştirin. Disk bölümü numaranızı seçin ve yeni sistem kimliğini (id) girin (Linux = 83). Bir sistem kimliği yerine erişilebilir kimlikleri "L" ile görüntüleyebilirsinz.

Bir disk bölümünün sistem kimliğini değiştirmiş iseniz [v] tuşlayarak disk bölümlendirme tablosunu doğrulamalı ve daha sonra bunu [w] tuşlayarak diske yazmalısınız.

Şimdi GRUB' u yeniden kurmaya/yapılandırmaya çalışın.

Kazara bir Windows disk bölümüne GRUB kurulmuş olması

GRUB' u kazara bir Windows disk bölümüne kurarsanız, GRUB disk bölümünün önyükleme kaydına bazı bilgileri yazar ve Windows önyükleyicisine ait yönlendirmeleri siler. (WindowsXP ve daha eski sürümlerinde NTLDR hatasına yol açar. Daha yeni Windows sürümleri için denenmemiştir).

Bunu düzeltebilmek için kullandığınız Windows sürümünün kurulum CD/DVD sini kullanarak Windows Kurtarma Konsolu (Windows Recovery Console) giriş yapmalısınız. Günümüzde bir çok bilgisayar üreticisinin Windows kurulum CD/DVD yerine bir kurtarma sabit disk bölümü sunması nedeniyle bu tip bilgisayarlarda bu araç bulunmaz ve bu nedenle Microsoft bu aracı internetten indirilmek üzere sunmaktadır. WindowsXP kullanıyorsanız bu sayfayı ziyaret ederek sunulan disket imajlarını bir Kurtarmla CDsi haline getirebilirsiniz. Bu Kurtarma CDsi (veya varsa kurulum CDsini) kullanarak bilgisayarınızı başlatın. Windows Kurtarma Kipine girdğinizde sabit disk bölümünün önüykeleme sektörünü tamir etmek için fixboot komutunu çalıştırın. Bundan sonra GRUB' u sabit diskin MBR kaydına --Windows disk bölümüne değil-- kurarak Linux kullanmaya başlayabilirsiniz.

Windows7 veya Windows Vista için gerekli komut ve yönergeleri Microsoft destek sitesinde bulabilirsiniz. Ayrıca konu ile ilgili olarak Grub'u silip Windows önyükleyicisini kurmak makalesini okuyabilirsiniz.

Önyükleme menüsünde GRUB girdilerini değiştirme

Önyükleme menüsünde bir girdiyi seçtiğinizde klavyenizdeki e harfine (F klavyede: ğ) basarak düzenleme kipine girebilirsiniz. Aygıtları öğrenmek için tab ile tamamlamayı kullanabilirsiniz. Çıkmak için Esc düğmesine basın. Daha sonra b harfine (F klavyede ç) basarak değiştirmiş olduğunuz girdi ile sistemi başlatabilirsiniz.


Kalem.png
ÖNEMLİ:
Bu şekilde yapacağınız ayarlar tek bir seferliktir ve kaydedilmezler.

device.map hatası

Bilgisayar açılışında veya kurulumda /boot/grub/device.map ile ilgili bir hata alırsanız şu komutu çalıştırın:

# grub-install --recheck /dev/sda

Bu sayede GRUB mevcut olsa bile aygıt haritasını (device map) yeniden denetlemeye ve oluşturmaya zorlanır. Bu işlemin disk bölümleri yeniden boyutlandırıldığı veya bilgisayara yeni sabit diskler takıldığı taktirde yapılması gerekebilir.

KDE yeniden başlatma açılır menüsü başarısız oluyor

GRUB içinde yapılandırılmış tüm işletim sistemlerini gösteren listeyi görüntüleyen bir alt menü açtıysanız, birini seçip bilgisayarı başlattı ve hala öntanımlı işletim sistemi ile bilgisayar açılıyorsa şu satırın /boot/grub/menu.lst dosyasında yer alıp almadığını denetleyin:

default saved

Yoksa #Belirli bir önyükleme seçeneği ile yeniden başlatma kısmında anlatıldığı gibi ekleyin.

GRUB herhangi bir virtio /dev/vd* veya diğer BIOS-dışı aygıtlara kurulumda/bulmada sorun yaşıyor

Bir kullanıcı sanal bir KVM makinede, sabit disk olarak bir virtio aygıtı kullanarak Arch Linux kurulu sırasında GRUB kurulumunda sorun yaşadığını; ancak GRUB' u kurmak için şu adımları uygulayarak başarılı olduğunu bildirmiştir:

1- Bir sanal konsola girmek için Ctrl+Alt+F2 tuşlarına veya serbest sanal konsola giriş yapabilmek için herhangi bir F-tuşuna basın.


Kalem.png
ÖNEMLİ:
Bu işlem kök dosya sisteminin /mnt dizini altında ve önyükleme dizininin /mnt/boot altında bağlı olduğunu varsaymaktadır.

2- Şu komutu çalıştırarak /mnt/boot dizini altında tüm gerekli GRUB dosyalarının mevcut olduğunu denetleyin:

# ls /mnt/boot/grub

3- /mnt/boot/grub dizininde gerekli tüm dosyalar mevcutsa 4. adıma geçin aksi halde şu komutları ( /mnt, çekirdek ve initrd konumlarını sizin yapılandırmanızdaki konumlarla değiştirin) çalıştırın. Ayrıca bu dizinde menu.lst dosyası da bulunmalıdır:

# mkdir -p /mnt/boot/grub                # dizin mevcut değilse oluşturmak için
# cp -r /boot/grub/stage1 /boot/grub/stage2 /mnt/boot/grub
# cp -r your_kernel your_initrd /mnt/boot

4- Şu komut ile GRUB kabuğunu başlatın:

# grub --device-map=/dev/null

5- Kendi yapılandırmanızdaki doğru aygıt ve disk bölümleri ile /dev/vda ve (hd0,0) ibarelerini değiştirerek şu komutları uygulayın:

device (hd0) /dev/vda
root (hd0,0)
setup (hd0)
quit

6- GRUB her hangi bir hata iletisi görüntülemezse her şey yolunda gitmiş demektir. Ayrıca uygun modülleri ramdiske eklemeniz de gereklidir. Daha fazla bilgi için Preparing an (Arch) Linux guest KVM Rehberi yazısına bakın.

Ayrıca Bakınız

Bu kaynakların tamamı İngilizcedir:

Kişisel araçlar
GOOGLE
Diğer dillerde