GNU/Linux Boot Yönetimi
GNU/Linux Boot Yönetimi
Bir işletim sisteminin en önemli fonksiyonlarından birisi boot (ön yükleme) işlemidir. Boot işlemi, işletim sisteminin kendi boot (açılış) kodunu bulması ve sistem programlarını yüklemesi anlamına gelir.
BIOS (Basic Input/Output System – BIOS)
Bilgisayar sistemlerinin boot (açılış) sürecinde belli adımlar vardır. Bir x86 bilgisayar boot ettiğinde önce Basic Input/Output System ya da BIOS programını çalıştırır. BIOS programı boot işleminin ilk adımıdır.
SL: BIOS programı ayrıca çevre birimleride kontrol edilir.
BIOS, sistemi test ettikten sonra belirtilen boot yerine göre (disket sürücü ya da CD-ROM gibi) işletim sisteminin “boot” programını çalıştırır. Bu program sabit diskin birinci sektöründe bulunan Master Boot Record ya da MBR olarak adlandırılan bölümde yer alır.
NOT: Bazı durumlarda yine buradan başlayarak ikinci bir boot sistemi devreye girer.
SL: MBR, 512 bayt kapasiteli bir bölümdür ve “boot loader” komutlarını ve diskin partition tablosunu içerir.
SL: BIOS programı “boot loader” programını belleğe yükler ve kontrolü ona devreder.
NOT: BIOS programı x86 sisteminin bir parçasıdır. Itanium-tabanlı bilgisayarlar ise Extensible Firmware Interface (EFI) Shell olarak bilinen sistemi kullanır.
SL: PC Boot ve Linux boot işlemi:
BIOS: Basic Input/Output System bilgisayar ile çevre birimleri arasındaki en alt düzey iletişim kurulur.
BIOS belleği kontrol eder. Disk ya da disket üzerindeki Master Boor Record (MBR) komutlarını okur.
MBR, boot loader’ı bulur (GRUB ya da LILO: Linux boot loader).
Boot loader işletim sistemine hangi kernel’i çalıştıracağını belirtir.
Kernel ilk olarak “init” programını çalıştırır.
Init işlemi /etc/rc.d/rc.sysinit‘i çalıştırır.
Çalıştırılacak scriptler “run-level”a göre değişir.
Boot Loader
“Boot loader” işletim sistemlerinin boot sürecindeki konfigürasyonunu belirleyen programlardır. Linux işletim sisteminde “GRUB” ve “LILO” olmak üzere iki boot loader programı vardır. Linux dağıtımları bazen her ikisini bazen de birini boot loader olarak desteklerler. Bu düzenleme genellikle kurulum sırasında yapılır.
SL: GRUB (GRand Unified Bootloader)
LILO (LInux LOader)
GRUB (GRand Unified Bootloader) güçlü bir boot loader programıdır. GRUB farklı işletim sistemlerinin de yüklenmesini destekler. Bu anlamda yaygın olarak kullanılmaktadır. LILO (LInux LOader) da yaygın kullanılan bir Linux boot loader’ıdır. Daha eski olduğu söylenebilir. Boot loader ardından init” programını çalıştırır. Init işlemi /etc/rc.d/rc.sysinit‘i çalıştırır. Çalıştırılacak scriptler “run-level”a göre değişir.
LILO (Linux Loader)
LILO, BIOS’un çağırmasıyla Linux kernel’ini belirtilen (Disket, CD-ROM ya da diğer bir yerden) yükler. Dosya sistemi ve yolu /etc/lilo.conf dosyasında yer alır. Bu bilgiler kurulum sürecinde düzenlenir.
Lilo.conf dosyası örnekleri:
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=30
message=/boot/message
default=Linux
image=/boot/vmlinuz-2.4.0
label=linux
root=/dev/hda2
read-only
other=/dev/hda1
label=win
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
message=/boot/message
default=linux
image=/boot/vmlinuz-2.4.0
label=linux
root=/dev/hda2
read-only
other=/dev/hda1
label=dos
Örnek LILO dosyasının içeriği:
boot=/dev/hda: LILO’ya kendisini IDE kontroller üzerindeki ilk diskten başlatacağını belirtir.
map=/boot/map: LILO’ya map doyasının yerini belirtir.
install=/boot/boot.b: LILO’ya yeni boot sektör olarak kullacağı dosyayı belirtir.
prompt: LILO’nun işletim sisteminin seçilmesi için beklemesini sağlar.
timeout=xx: LILO’ya kaç saniye bekleyeceğini belirtir.
message=/boot/message: İşletim sistemi seçerken gösterilecek mesaj satırı.
default=Linux: Varsayım işletim sistemini belirtir.
image=/boot/vmlinuz-x.y.z: Linux kernel’ın adı.
label=linux: Boot sırasında kullanılacak isim.
root=/dev/hda2: Root (/) dosya sisteminin yeri.
read-only: Dosya sisteminin yalnızca okunur olarak mount edilmesini gösterir.
other=/dev/hda1: Aynı sistem üzerinde boot edecek diğer işletim sistemini belirtir.
label=win: Diğer işletim sistemini belirtir.
GRUB (GRand Unified Bootloader)
GRand Unified Bootloader ya da diğer adıyla GRUB daha yeni bir “boot loader” olarak geliştirilmiştir. GRUB işletim sistemi bağımlı değildir. Linux ve diğer işletim sistemlerini de destekler.
SL: GRUB’un bazı özellikleri:
Dinamik konfigürasyon: Kullanıcılar ayarları ve parametreleri boot sırasında değiştirebilir.
Çok sayıda formatı ve disk dosya sistemini destekler.
GRUB Konfigürasyonu:
Örnek: /boot/grub/grub.conf (ya da menu.lst) dosyası:
default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
password –md5 <şifreli parola>
title Linux
root (hd0,0)
kernel /vmlinuz-2.4.0 ro root=LABEL=/
initrd /initrd-2.4.0.img
title Windows 8.1
rootnoverify (hd0,1)
chainloader +1
default: Varsayım olanı belirtir. Her bir tanımın bir title, root ve kernel tanımı olması gerekir.
Timeout: Bekleme süresi. Saniye olarak.
Hiddenmenu: Gösterilmeyen menü.
Title: Tanım için görüntülenecek metin.
Root: Kernel’in bulunduğu yerin belirtir.
Kernel: hangi kernel ile boot edileceğini belirtir. Ro işlemin yalnızca okuma olacağını (read only), quiet hata ekranı gösterilmeyeceğini ve splash ile de boot sırasında splash ekranı gösterileceğini belirtir.
initrd: Kernel yüklendikten sonra çalıştırılacak şeyi belirtir.
GRUB Editörleri
Boot loader dosyalarını standart editörler aracılığıyla oluşturmak ya da değiştirmek mümkündür. Ayrıca bu işlem için araçlar da vardır. GRUB Legacy ve QGRUBEditor bu işlem için kullanılır.