UEFI ve BIOS hakkında detaylı bilgiler

Ubuntu Türkiye Wiki sitesinden
20.33, 6 Ekim 2016 tarihinde Hatas (mesaj | katkılar) tarafından oluşturulmuş 22170 numaralı sürüm (Forum'da "ThomasK1907" kullanıcısının başlattığı konu eklendi)
(fark) ← Önceki sürüm | Güncel sürüm (fark) | Sonraki sürüm → (fark)
Gezinti kısmına atla Arama kısmına atla

Sleep, Hibernate, Hybrid Sleep

- sleep (ya da Stand By ya da Suspend ya da Suspend to RAM ya da uyku) ile işletim sistemi tüm uygulamaları durdurur (pause) ve sistmein az enerji harcamasını sağlar. sistem kapanmaz. bu sebeple saniyeler içerisinde devam edebilir.

- Hibernate (ya da Suspend to Disk ya da hazırda beklet), sleep ile aynı mantıktadır. fakat sistemi tamamiyle kapatabilmek için RAM'deki bilgileri harddiskte saklar. açılması zaman almaktadır.

- Hybrid Sleep (ya da Suspend to both) modunda kullanıcı logout edilir. sadece işletim sistemi ve servisleri Hibernate edilir. windows, 8 ve sonrası sürümlerde "shut down" işlemi ile "Hybrid Sleep" uygulamaktadır. gerçek bir sistem kapanması için "restart" işlemi yapılmalıdır. Windows ayalarında "fast startup" (ya da Fast Boot) isimli bu özellik devre dışı bırakılabilir. Bazı işletim sistemlerinde "hybrit Sleep" aynı işlevi yapmamaktadır. Bazı sistemlerde şu yapılıyor: Sistemdeki tüm uygulamalar pause ediliyor (sleep'te olduğu gibi). RAMdeki veriler hibernate'deki gibi hdd'ye saklanıyor. RAM'deki veriler silinmiyor. aynen bırakılıyor. Yani sleep moduna ekstradan RAM'deki veriler HDD'de de saklanmış oluyor. Bu şekilde; makina aksi bir durumda kapanır ise en kötüsü hibernate tarzı bir açılış yapıyor. Eğer sistem kapatılmamış ise, sleep gibi hılı açılıyor.

- Connected Standby (ya da InstantGo) mobil cihazlarda görülen bir yöntemdir. masaüstlerine çok sonradan gelmiştir. sleep ile aynı mantıktadır. tek farkı, ek olarak; isteyen uygulamalar internet ağını kullanacak kod bloklarını sürekli arkaplanda çalıştırabilmeleridir.

Özet boot süreci

bios (eski süreç) bios ----(hdd)----> mbr ----> bootloader ----> os

uefi sonrası yeni süreç: UEFI ----(hdd)----> bootloader ----> os

uefi sonrası, BIOS uyumlu kurulmuş bir disk üzerinde işletim sistemini başlatma: UEFI ----(hdd)----> mbr ----> bootloader ----> os

Uyku ve diğer kapanma metodları sonrası boot süreçleri nasıl değişiyor?

Uyku'ya alınan cihazın açılması firmware'den itibaren olmuyor. Sistem hiç kapanmamış olduğu için direk olarak işletim sistemi devam ediyor. Hibernate işleminde işletim sistemi normal kapanma metodunu uyguuyor. Açılıştada normal açılma süreci işleniyor. İşletim sistemleri otomatik olarak son durumunu algılayıp, hibernate edilmiş ise dosyadan RAM'e aktarım yapıp devam ediyor. Eğer hibernat edilmemiş ise; normal olarak açılıyor. Boot sürecinde bir dğeişiklik söz konusu değil.

MacOS boot işlemi

Apple makinalarda UEFI benzeri bir sistem bulunuyor. Fakat UEFI ya da EFI implementasyonu değildir. Tamamen kendilerine özgü yazılmış bir sistemdir.

CSM (Compatibility Support Module)

UEFI'nin 'BIOS compatibility mode'una verilen özel isim. UEFI devre dışı bırakılamaz. UEFI MBR-tarzı bölümlü HDD'lerden işletim sistemi açabilir. BU da UEFI'nin geriye uyumlu çalıştığı anlamına gelir. Fakat CSM, her UEFIde olmak zorunda değildir.

BIOS

- Bir firmware'dir.

- Bios anakartin üstündedir.

- Makina baslatildiginda hangi aygıttan (cd, dvd, hdd, usb gibi) boot edileceğini belirler.

- HDD ile baslatilirsa; HDD'nin ilk sektörünü okur. Burada okuduğu kismi execute eder. Execute edilen bu bölge MBR (Master boot record) olarak adlandirilir.

MBR

İki kisimdan olusur:

1- Master Boot Code --> execute edilebilir olan kisim.

2- Master Partition Table --> hdd için bölümlerin haritasi. en çok 4 bölüm tutabilir. bu sebeple 4 bölümden (birincil bölüm veya primary partition) fazlaya ayirmak gerekirse, hardiskki "genisletilmis bölüm (extensable partititon)" özelliğinden yararlanılır. genisletilmis bölüm en fazla 1 adet olabilir. fakat altinda sinirsiz bölüm barindirabilir. altinda olan her bölüme "mantiksal bölüm (logical partititon)" denir.

Bootloader

- mbr tarafindan execute edilebilen bir sistemdir. bu sistem ile isletim sistemleri baslatilir.

- her isletim sisteminin bootloader dosyalarını bir yerde saklaması gereklidirki MBR o dizini okusun ve execute etsin.

- bu dizin ubuntuda varsayılan olarak /boot/grub'tur. bu dizinin ubuntu'da, baslatilacak islemim sistemi ile ayni bölümde olma sarti yoktur. örnegin /boot/grub, /dev/sda9'da iken, ubuntunun tüm dosyalari /dev/sda5'te olabilir. eger bölümleri ayirirsak, ubuntu'yu sildigimizde grub sistemi de silinmeyecegi için HDD'de kurulu diğer işletim sistemleri hala basslatilabilir olacaktir. fakat grub, ubuntu ile aynı disk bölümünde olursa, ubuntu bölümünü silindiginde (ya da formatlandığında), grup baslamayacagi için HDD'de kurulu diğer işletim sistemleri de baslamayacaktir.

- Windows'un bootloader'ı "Windows Boot Manager (BOOTMGR)" olarak isimlendirilmektedir. Dosyaları; "System Reserved" isimli disk bölümünde durmaktadır.

- herhangi bir işletim sistemi HDD'ye kuruldugunda, mbr dizini üzerinde degisiklik yapar. bu degisiklikler:

1- mbr içine hangi bölümün master boot (active) oldugu yazilir. yani; hangi bölümdeki bootloader'in baslatilacaginin adresidir. (her partititon altinda bootloader olabilir, ama sadece 1 tanesi baslayacaktir). işletim sistemi kurulumunda yeni bir bootloader kurulmayacak ise bu işlemin yapılmasına gerek yoktur.

2- grub normal koşullarda mbr alanına kurulur. fakat mbr alanı çok küçük olduğundan, grub kendini 2 parçaya böler. bir kısmı mbr içinde, 2inci kısmı farklı bir (boot flag'inin olduğu) partition'a saklanır. 2-stage bootloader kavramı burada ortaya çıkmıştır. normal koşullarda mbr'nin içindeki executor, ext4 dizinini okuyamaz. ubuntuda grub dosyaları ext bölümünde dururur. mbr'nin grubu çalıştırması için ext dosys sistemini tanıması lazım. işte bu ext-tanıma kısmı modülü 1inci stage bootloader kısmı ile çözülmüş oluyor.

- windows, her kurulumdan sonra sürekli mbr'yi kendi bootloader'ına yönlendirir. windows'un bootloader'ı diğer işletim sistemlerini zaten tanımaz. bu sebeple her windows kurulumu sonrası, liux ve diğer işletim sistemler ile grub'u tekrar kurmak gerekmektedir.

fixmbr

windowsun komut satırı uygulaması. bu komut ile mbr tamamen sıfırdan değiştirilmektedir. fixmbr komutu sonrası windows kendi bootloader'ına yönlendirme yapacak şekilde mbr'yi yeniden yazmaktadır.

ntldr

Windows NT için bootloader'dır. günümüzde tamamen yeniden tasarlandığı için artık kullanılmamaktadır. Yeni tasarım Windows Boot Manager (BOOTMGR) üzerinedir. BOOTMGR başladığında eski bir windows sürümü seçilirse, BOOTMGR, ntldr'yi başlatmaktadır.

GRUB vs GRUB2

Grub (ya da GRand Unified Bootloader) yazılımı 2inci sürümünde neredeyse sıfırdan tasarlandı. Bu yüzden çoğu yerde farklı yazılımmış gibi algılanmaktadır. Oysa Grub2, Grub'un güncel sürümüdür. Grub'un eski sürümüne "GRUB Legacy" adı da verilir. "Grub legacy" sadece bios-uyumlu bölümlendirmeleri destekler.

SYSLINUX

ntfs veya fat32 dosya sistemlerine kurulu linux başlatmak için gerekli bir bootloader çeşididir.

LILO (LInux LOader)

Bir BIOS uyumlu bootloader çeşididir. Daha sonra UEFI'ler için ELILO isminde bir türevi çıkarılmıştır.

OS-Loader

bootloader, ismi gereği, genel bir terimdir. mbr'nin içindeki sistemde, mbr'nin başlattığı sistemede aslında bootloader denilebilir. çünkü sistemi boot/load ediyorlar. bu sebeple bazı insanlar, günümüzdeki sistemelere "2 stage bootloader" olarak varsayıyor. 1'inci stage: MBR bootloader'ının execution'u. 2'inci stage ise: GRUB, BOOTMGR gibi yazılımların execution'udur. dolayısı ile bir makalede; mbr'ye bootloader yazınca, 2inci aşamaya OS-Loader diyen kaynaklar olabiliyor.

UEFI (EFI)

UEFI (Unified Extensible Firmware Interface) ya da eski adıyla EFI, yeni gelen bir sistemdir. BIOS'a alternatif bir firmwaredir. UEFI her konuda çok daha gelişmiştir diyebiliriz. Sadece süreç olarak bakıldığında; MBR gereksinimi ortadan kalkmıştır. Bakınız: "özet boot süreci". Bazı UEFI Arayüzlerinde "BIOS" kelimesi görülebilmektedir. Bunun sebebi BIOS tabanlı sistemler üzerinde ekstra modül olarak UEFI kullanılmasıdır.

UEFI boot manager

Bağlı olan tüm diskler içindeki tüm başlatılabilir sistemlerin (işletim sistemi, bootloader, mbr) listesini tutar ve bunlara ekleme/çıkarma/değişiklik yapılmasını sağlar. kısmen Grub'un görevini görmektedir diyebiliriz. listenin veritabanı anakartın içindedir. Bu listedeki öncelik sırasına göre, anakartı üzerinde olan UEFI ilgili sistemi başlatacaktır. Bu liste dışardan editlenebilmektedir. Örneğin Linux'ta "efibootmgr" uygulaması bunu yapıyor. Her işletim sistemi, kurulumunda bu listeye ekler ya da siler ya da editler. Aynı şekilde anakarttaki UEFI yazılımı GUI'si ile son kullanıcı manuel de ekleme/silme/değiştirme yapabilir. Listenin içinde BIOS-uyumlu bölümlerde olabilir. Çünkü UEFI, geriye uyumlu; yani; BIOS uyumludur.

örnek bir efibootmgr komut satırı çıktısı (her satırın açıklaması aşağıdasında yazıyor):

BootCurrent: 0002 Timeout: 3 seconds BootOrder: 0003,0002,0000,0004

//boot deneme sırasını temsil eder

Boot0000* CD/DVD Drive BIOS(3,0,00)

//BIOS kelimesi, eski bios uyumlu açılışı temsil eder.

Boot0001* Hard Drive HD(2,0,00)

//hdd'yi aç diyor. özellikle partititon belirtmemiş. bu durumda UEFI native mod'da HDD yi açar. GPT bölümlü olan bu HDD içerisinde, UEFI partititonunu bulur. "Fallback path mode (ya da fallback mode)" denir buna. yani; native uefi mode (bios değil) fakat hdd karar veriyor hangi partititonun açılacağına. detaylar için ESP ile ilgili başlıklarına bakınız.

Boot0002* Fedora HD(1,800,61800,6d98f360-cb3e-4727-8fed-5ce0c040365d)File(\EFI\fedora\grubx64.efi)

//uefi native mode partititon belirtilmiş. ".efi" uzantısı UEFI firmware'nin execute edilebilir bootloader dosyası uzantısıdır.

Boot0003* opensuse HD(1,800,61800,6d98f360-cb3e-4727-8fed-5ce0c040365d)File(\EFI\opensuse\grubx64.efi)

Boot0004* Hard Drive BIOS(2,0,00)P0: ST1500DM003-9YN16G

//hdd yi aç der. özlelikle partititon belirtmemiş. fakat BIOS uyumlu olsun demiş. bu durumda HDD içerisinden MBR yi okur eskisi gibi. Yukarıdaki Boot0001'da, UEFI geri uyumlu modda olmadığı için GPT'yi okumuştu. Burada ise MBR okunacak.

Secure boot

  • UEFI ile gelen bir özellik. manuel olarak devre disi birakilabilmektedir. açılacak olan işletim sisteminin bootloader'ının anahtarının, UEFI içerisindeki anahtarlarla uyuşması gerekiyor.
  • Bu sistemle rastgele bir kullanıcının USB'den istediği gibi işletim sistemini çalıştırması engellenmiş oluyor.
  • Makine ile kurulu gelen işletim sistemlerinin anahtarı UEFI içerisine kaydedilmiş oluyor.
  • Microsoft, Windows'un anahtarını bazı farklı işletim sistemleri firmalarına da veriyor (örneğin Fedora). Bu şekilde o makinada, güncel fedora ISO'su ile direk işletim sistemi başlatılabiliyor oluyor.

UEFI based botloaders

UEFI firmware, direk olrak bootloader'ı çalıştırır. BIOS tabanlı sistemlerde ise, MBR bootloader'ı çalıştırırdı. UEFI çok daha gelişmiş oluğundan execute ettiği bootloaderda daha gelişmiştir. Farklı executable dosyası çalıştırırlar. Bu sebeple bootloader'larda kendilerini güncellemişlerdir. Eğer HDD içerisinde sadece UEFI'nin execute edebileceği bootloader var ise; aynı HDD BIOS'lu anakartlarda işletilemeyecektir.

Volume Boot Record (VBR ya da partition boot sector)

VBR; "volume boot sector", "partition boot record" ya da "partition boot sector" tanımlarıyla ifade edilebilir.

mbr çok ufak oldugundan, tüm detaylari üzerinde tutmak mümkün değildir. bu sebeple her mantiksal ve birincil bölümün basinda VBR olur. vbr'ler de mbr'ler gibidir. bölüm bilgilerini daha detayli sekilde tutarlar.

GUID Partition Table (GPT)

- UEFI'nin tanıdığı, mbr'ye göre çok daha gelismis bir bölüm tutma semasidir.

- eski bios-mbr uyumlu bölümlendirmelere "msdos partition table" adı verilir.

- GPT bilgileri diskin en başındadır. GPT olan bir HDD'de MBR'de vardır. MBR bölümü her zaman bırakılır. Bu şekilde geriye uyumluluk sağlanmış olur.

- GPT olarak tasarlanmış bir diski makineye taktığınızda BIOS anakartlar ile buradaki işletim sistemlerini başlatamazsınız. Fakat burada yanlış anlaşılma olmasın: Sadece işletim sistemi boot edemezsiniz. Onun dışında, bir işletim sistemi yürütülür durumdayken, GPT bölünlenmiş HDD'yi mount edip, hem windows hemde diğer tüm işletim sistemleri ile okuyup yazabilirsiniz (default olarak işletim sistemi okuyamasa bile üçüncü parti uygulamalarla yapılabilir). Çünkü HDD'yi okuyan bir yazılımdır. BIOS değil. Yani işletim sistemi boot etmekle, HDD'yi sadece data olarak kullanmak tamamen ayrı kavramlardır.

Windows recovery partititon

- Bu bölüm windows yüklemesi sırasında otomatik oluşturuluyor.

- Bölüm winRE dosyalarını içeriyor. WinRE windows kurtarma işlemlerini yapan bir yazılım.

ESP (EFI System Partition ya da EFISYS)

-Diskte varolan işletim sistemlerinin EFI dosyaları (bootloader'ları) + Bootloader için gerekli sistem sürücüleri (driver) dosyaları bu bölümdedir.

- FAT32 olmak zorundadır. FAT16 olması UEFI implemementasonunda yazmaktadır. Fakat Windows işletim sistemi fat16 olması durumunda sorun çıkardığı için, artık her yerde FAT32 kullanılmaktadır.

- boyutu değişkendir. Örnek boyut: Ortalama 40 mb sadece windows-10 ve ubuntu yüklü bir makine için yeterlidir. Fakat İlerde yapılabilecek ek işletim sistemi kurulumlarının EFI dosyaları için bu bölümün boyutunu yüksek tutmakta yarar var.

- \EFI dizini altında her işletim sisteminin kendi bootloader'ı ayrı dizinlerde mevcuttur. \EFI\BOOT dizini HDD "fallback mode" ile yürütüldüğünde devreye girer. Yani; UEFI, hiçbir partition belirtmeden HDD'yi boot ettiğinde, UEFI, ESP bölümünü bulur. Daha sonra içerisinde \EFI\BOOT\BOOTx64.EFI (ya da standrat önceden belirlenmiş farklı bootloader path'leri) dosyasını execute eder. Yani işletim sistemlerinin bootloader'ları dışında genel bir UEFI arayüzü (bootloader'ı) mevcuttur. Bu bootloader "default bootloader" olarak da adlandırılmaktadır. Bazı UEFI firmware'leri bu bootloader'ı bulamadığı zaman windowsun default bootloader'ını da açmayı denemektedir: EFI/Microsoft/BOOT/bootmgfw.efi.

- \EFI dizini altında sürücüler ve işletim sistemi çekirdekleri de mevcuttur. EFI dosyası executable'ı olarak linux çekirdeği çalıştırılabiliyor. Linux güncel sürümleri bunu desteklemektedir. BU özellik; EFI Boot Stub (ya da EFI Stub) olarak isimlendiriliyor.

- \EFI altında aynı zamanda sürücü (driver) dosyaları bulunmaktadır. Sürücüler: dosya dizinlerine erişim sürücüleri (ext, ntfs gibi), network cardlar'ın daha geniş özelliklerle kullanılabilmesini, bootloader sırasında takılan exernal usb cihazların tanınması gibi işler için gerekli olabilmektedirler.


MSR ("Microsoft System Reserved Partition" ya da "Sistem ayrıldı" bölümü)

- sadece GPT disklerde oluşan bir bölümdür.

- ESP'den sonra ve windows kurulu bölümden önce olmak zorundadır.

- Windows sürümüne göre dosya sistemi formatı ntfs ya da fat32 olabilir.

- Boyutu windows sürümü ve disk boyutuna göre değişebilir.

- bootmgr bu bölümde yüklüdür.

RAID

Açık adı: Redundant Array of Inexpensive Disks ya da Redundant Array of Independent Disks. - Birden fazla diski tek bir disk gibi gösterme özelliğidir.

- RAID kendi içeirisinde birçok özelliği vardır: RAID0, RAID1 gibi... Bunlardan sadece bir tanesi sçeilmek zorundadır.

- RAID0: 2 diskimiz var. 2 disk tek bir disk gibi gösteriliyor. 2 tarafta da farklı datalar tutuluyor. performans artışı sağlıyor. çünkü bazı durumlarda iki diskten ayrı ayrı dosyaları aynı anda okuyabiliyor. tek diskte olsaydık aynı anda bir dosya okuyabilecektir.

- RAID1: 2 diskimiz var. 2 disk tek bir disk gibi gösteriliyor. 2 tarafta da aynı datalar tutuluyor. Bu eşkilde birine bir zarar geldiğinde diğerindne devam edilebiliyor. Performans açısından kötü.

- Sadece donnanımsal ya da sadece yazılımsal çözümlerle sağlanmaktadırlar.

Flag (bayrak)

GPT ve MBR her partitition için bir bayrak bulundururlar. Bayrakların birer anlamı vardır.

- boot: tüm hdd de sadece bir bölümde bu set edilebilir. ilk o bölümün boot edileceği anlamına gelir. MBR sistemlerde çalıştırılacak bootloader'ın olduğu bölüm iken, GPT istemlerde EFI kurulu bölüme atanmalıdır.

- Diag: o bölümün diagnostics/recovery amaçlı kullanıldığını belirtir.

- Hidden: microsoft otomatik mount edilmesini istenmediği bölümlere bu bayrağı atıyor.

- RAID: raid teknoloji için kullanılan bir bölüm olduğunu gösterir

- Msftres: sadece gpt'de disklerin içindeki bölümlerde mevcuttur. bölümün "Microsoft Reserved partition" olduğunu gösterir.

- msftdata: microsoft kendi oluşturuduğu dizinlere bunu atıyor. bazı linux sistemleri de kendi dizinlerine bu flag'i attığı görülüyor.

- swap: hdd üzerinde kurulu tüm linux sistemler bu bölümü swap alanı olarak kullanabileceklerini belirtir.

- BIOS_GRUB: GPT Kurulu bir HDD'de, sadece "grub legacy"'nin kurulu olduğu bir bölüm var ise, o bölüme bu bayrak atanır.

- legacy_boot: GPT yapılı disklerde, SYSLINUX botloader'ın bulunduğu bölüme atanmaktadır.

Partititon name vs partititon label

- name, GPT alanında olan bir etikettir.

- label ise partititon'un içinde olan bir etikettir.

GParted

GParted, Linux üzerinde çalışan, GUI içeren bir disk yönetim aracıdır. GParted'in canlı CD/USB sürümü, bilgisayardaki işletim sisteminden bağımsız olarak her sistemde kullanılabilir.

Gparted anahtar icon'u

- her partition'un yanında bu icon olabilir. bu icon o partititon'un mount edilmiş olduğu ve bu sebeple üzerinde işlem yapılmasına izin vermeyeceği anlamına gelir.

- anahtar işaretli bir bölüm üzerinde işlem yapmak için o bölüm önce unmount edilmelidir. eğer ilgili bölüm, çalıştırılan işletim sistemi dosyalarını içerior ise unmount edilemez. böyle bir durumda ilgili bölüm ancak canlı cd üzerinden, yada aynı HDD üzerinde fakrlı bir bölümdeki işletim sistemi çalıştırılarak yapılabilir.

Kaynakça