Sabit Disk (I) : Bir Diskin Ön Yüklenme (Boot) Süreci ve MBR
https://7.enpedi.com/2012/07/sabit-disk-i-bir-diskin-on-yuklenme.html
Bilgisayar kullanıcıları arasında -ne kadar üst seviye kullancı olurlarsa olsunlar- belki de en az bilgi sahibi olunan konuların başında diskler gelir.
Partition, Primary partition, Extended partition, Logical Partition, Active partition, Microsoft Reserved Partition (MSR), Partition Table , MFT, MBR, GPT, NTFS, UEFI, BIOS, Bootable vs. gibi pek çok kavramı çoğunuz duymuşsunuzdur ve/veya azçok bilginiz vardır ama bunların tamamını bir kavram olarak kafasında doğru canlandırıp bir temele oturtmuş hadi doğrusunu söyleyeyim; bu konuyu anlamış kullanıcı sayısı son derece azdır. Bu yüzden de sorulan sorulara verilen cevaplar genelde farklı/yanlış olur. İşte bu yazıda mümkün olan en basit şekilde anlatarak konuyu her seviyede kullanıcının anlamasını sağlamaya çalışacağım...
Uzun bir yazı olabilir ama bilgisayara meraklı bir insansanız mutlaka okuyun derim...
Bir diskin biçimlendirilme/yapılandırılma konusuna geçebilmek için öncelikle bir sistemin nasıl başladığını anlamak gerekiyor. Sanırım bunu anlatmanın en mantıklı yolu süreci adım adım işlemek;
Her sabit disk mutlaka bir "Başlama Noktası"na sahiptir. Bu başlama noktası olmasa BIOS nereye bakacağını bilemez. Bu başlama noktası ise her sabit diskte Plaka 0, Kafa 0, Sektör 1'dir (Yukarıdaki resim) ve asla değişmez. Bu başlama noktasındaki ilk sektöre Master Boot Record (MBR) kaydedilir. Bu sektör karşınıza "Master Boot Sector" veya "Boot Sector" olarakta çıkabilir ama bütün bu terimler aynı şeyi ifade eder. MBR ise 2 bölümden oluşur;
Şimdi anlatacaklarımı ise dikkatle okuyun çünkü disk bölümlemenin mantığını doğru anlayabilmeniz için öğrenmeniz gereken ilk kritik kural alttaki satırlarda...
"Master Partition Table" tek sektöre sığdırılma zorunluluğu yüzünden son derece küçüktür. İşte bu yer darlığı yüzünden sadece 4 bölüntünün bilgisini içerebilir. 5. veya daha fazla bölüntünün bilgilerini girmeniz için yer yoktur. Bu yüzden bir disk minimum 1, maksimum 4 adet "Gerçek" bölüntü (Birincil Bölüm/Primary Partition) içerebilir.
Birincil bölüntülerden (Primary Partition) biri de mutlaka aktif (Active) olarak işaretlenmelidir ki işletim sisteminin hangi bölüntüde olduğu belli olsun. Active işareti o bölüntüye ön yüklenebilme (Bootable) özelliği kazandırır.
Diğer yandan 4 Birincil Bölüm kısıtlamanın istisnası vardır; Genişletilmiş Bölümler (Extended Partition)
Windows varsayılan olarak, ilk 3 bölüntüyü birincil, son yani 4. bölüntüyü ise Genişletilmiş Bölüm (Extended Partition) olarak oluşturur.
Genişletilmiş bölümler (Extended Partition) özel bir bölüntü şeklidir. Birincil bölümlerin aksine işletim sistemi veya veri depolayamazlar bunun yerine Mantıksal Sürücülere (Logical Partitions) ev sahipliği yaparlar. Bir Genişletilmiş Bölüm dilediğiniz sayıda mantıksal sürücüye bölünebilir. Yani diskinizi dörtten fazla bölüntüye ayırmak istiyorsanız yapmanız gereken şey diskinizdeki bölüntülerden birini Genişletilmiş Bölüm (Extended Partition) olarak oluşturmak. Ondan sonra bu Genişletilmiş Bölümün kapasitesini dilediğiniz kadar bölüntüye ayırabilirsiniz.
"Hani yer azdı da bu yüzden 4 bölüntüden fazla olmuyordu?" sorusu aklınıza gelebilir. Bu sorunun cevabı ise şu;
MBR mantıksal bölüntülerin şemasını barındırmaz sadece tek bir Genişletilmiş Bölüm (Extended Partition) şemasını barındırır. Genişletilmiş Bölüm'ün içerdiği Mantıksal Bölümlerin şeması ise daha ilerideki sektörlerde bulunur ve buradan bu şemaların bulunduğu sonraki sektörlere link verilir.
İlk resimde, 5 bölüme ayrılmış bir diskin şemasını görüyorsunuz. İlk 3 bölüm (C,D ve E) Birincil Bölüm ve işletim sistemi kurulabilme yeteneğine sahip. 4 Bölüntü ise Genişletilmiş Bölüm ve 2 adet mantıksal sürücü içeriyor. (F ve G) Aslında disk yine 4 bölüntüye ayrılmış oluyor ama 4. bölüntü 2 adet mantıksal sürücü barındırdığı için fiili olarak diski 5 bölüntü halinde kullanabiliyoruz.
2. resimde ise şemadaki diskin gerçek halini görüyorsunuz. (Sistem Ayrıldı bölümü yüzünden harflerde farklılık var bunu göz ardı edin)
Aklınıza şu soru takılmış olabilir: Madem öyle neden bütün bölüntüler varsayılan olarak bu şekilde oluşturulmuyor ve diski dilediğimiz kadar bölemiyoruz?
Bunun sebebi; Genişletilmiş Bölümlerin ve bunların içerdiği Mantıksal sürücülerin işletim sistemi barındıramıyor olması. Yani mantıksal sürücüleri sadece veri depolama amaçlı kullanabilirsiniz.
Diğer bir soru/sorun ise bilgisayarı ilk aldığında bilgisayarın diski zaten 4 birincil bölüntü içeren kullanıcılardan gelebilir. Bunlar doğal olarak disklerini bölümleyemiyorlar. Bu sorunun çözümünü -konunun dağılmaması adına- ilerleyen bölümlerde anlatacağım.
Her bölüntü MBR'den ayrı/bağımsız olarak Volume Boot Sector'üne sahiptir. Bu bütün diski kontrol eden MBR'den farklı olarak sadece ilgili bölüntüyü kontrol eder. Bu sektör kimi kaynaklarda Volume Boot Sector veya Partition Boot Sector olarak geçer. Ama hepsi aynı şeyi ifade ederler. Her Volume Boot Record kaydının içeriği alttakilerden oluşur;
Sabit Disk (II) : Diklerde Bölme ve Birleştirme Prensipleri
Partition, Primary partition, Extended partition, Logical Partition, Active partition, Microsoft Reserved Partition (MSR), Partition Table , MFT, MBR, GPT, NTFS, UEFI, BIOS, Bootable vs. gibi pek çok kavramı çoğunuz duymuşsunuzdur ve/veya azçok bilginiz vardır ama bunların tamamını bir kavram olarak kafasında doğru canlandırıp bir temele oturtmuş hadi doğrusunu söyleyeyim; bu konuyu anlamış kullanıcı sayısı son derece azdır. Bu yüzden de sorulan sorulara verilen cevaplar genelde farklı/yanlış olur. İşte bu yazıda mümkün olan en basit şekilde anlatarak konuyu her seviyede kullanıcının anlamasını sağlamaya çalışacağım...
Uzun bir yazı olabilir ama bilgisayara meraklı bir insansanız mutlaka okuyun derim...
- Sabit Disk (I) : Bir Diskin Ön Yüklenme (Boot) Süreci ve MBR
- Sabit Disk (II) : Disklerde Bölme ve Genişletme (Birleştirme) Prensipleri
- Sabit Disk (III) : Fabrika Çıkışı 4'e Bölünmüş ve Kulanıcının Yeni Bölüntü Oluşturmasına İzin Vermeyen Diskler
Ön Yükleme (Boot) Süreci
Bir diskin biçimlendirilme/yapılandırılma konusuna geçebilmek için öncelikle bir sistemin nasıl başladığını anlamak gerekiyor. Sanırım bunu anlatmanın en mantıklı yolu süreci adım adım işlemek;
- Bilgisayarın güç düğmesine bastığınız aşama. Bu aşamada hemen bilgisayara güç verilmez. Düzensiz voltaj yada akımdan bilgisayar bileşenlerinin herhangi bir hasar görmemesi için güç sağlayıcıdan (Adaptör, Batarya yada PSU) gücün düzenli olarak sağlanacağına dair bir onay mesajı ( Power Good Signal) gelinceye kadar anakartın çipseti işlemcinin çalışmasını engeller.
- Onay geldiğinde çipset işlemcinin çalışmasına izin verir. Ancak işlemcinin bu aşamadaki durumu bir Alzheimer hastasına benzer: Hiçbir şey hatırlamıyordur ve ne yapacağını bilmiyordur. Ancak bu duruma karşı işlemci üreticileri işlemciyi programlamıştır ve direk Sistem BIOS ROM'unun sonuna bakar. Burada İşlemciye "BIOS şurada!" diyen 16 byte'lık bir veri bulunur. Bu şekilde işlemci BIOS'a ulaşır ve BIOS'taki kodları işlemeye başlar.
- Bu aşamada artık dizginler BIOS'un eline geçmiştir. BIOS ilk olarak Power-on Self Test (POST) yapar. Yani bütün donanımı, çevresel donanımı ve takılabilen aygıtları "sağlam mı?" diye kontrol eder. (Bir araba kazası düşünün.Sürücünün şoku atlattıktan sonra ilk yaptığı iş diğer yolcuların durumunu kontrol etmektir.İşte BIOS'un yaptığı bu sürücünün yaptığına benzer) Bu işlem çok kısa sürer ve fark etmezsiniz bile. Eğer donanımda bir sorun varsa Ön yükleme süreci durur ve hata mesajını anakart "Bipleyerek" verir. (Bu "Bip" seslerinin ne anlama geldiğini Google araması ile (Örneğin, BIOS Beep Codes) bulabilirsiniz.) Sorun yoksa süreç devam eder.
- BIOS ilk olarak Grafik İşlemci'yi çalıştırmak ister. Bunu ise kendisi yapmaz Grafik İşlemci'nin kendi BIOS'una ulaşır ve ona yaptırır.
- Ardından bilgisayardaki donanıma ait ROM'larda bu cihazlara özel BIOS'lar olup olmadığına bakar. Eğer bulursa onları da tetikler ve ilgili cihazın çalışmasını sağlar. (IDE/ATA Diskler de buna dahildir)
- Bu aşamada BIOS kendi başlangıç ekranını gösterir. Bu ekranda BIOS'un üreticisi, versiyonu, sistem logosu, BIOS ile etkileşime geçebileceğimiz tuşların bilgisi gibi bilgiler yer alır. Dizüstü bilgisayarlarda bu aşamada genelde üreticinin logosu görünür ama genelde BIOS'tan bunu değiştirmek mümkündür.
- Sonraki aşamada BIOS "Tak ve Çalıştır" aygıtları denetler. (Örneğin bir USB bellek) Eğer varsa bunlarla ilgili bilgileri gösterir.
- Bu aşamada BIOS artık bilgisayarı başlatabilme kabiliyetine sahip bir sürücü aramaya başlar. Bu önyükleme seçeneğini nasıl ayarladığınınıza bağlı olarak bir sabit disk, harici disk, USB bellek, floppy Disk, CD/DVD veya sanal bir sürücü olabilir.
- Hedef bulunduğunda BIOS önyükleme bilgilerini aramaya başlar. Örneğin bilgisayar bir sabit diskten başlatılacaksa BIOS, Master boot record (MBR) kaydını arar. MBR kaydı için ise diskin başlangıç noktasına yani Plaka 0, Kafa 0, Sektör 1 (Diskin ilk sektörü) adresine bakar.
Terimler için alttaki resme gözatın. Bir sabit diskte birden fazla plaka bulunur. Normalde bunlar birbirine çok yakındır ama resimde anlaşılabilirlik açısından uzaklaştırılarak tasvir edilmiş.
- Eğer aradığını (MBR) bulursa ve MBR sağlamsa işletim sisteminin yüklenme süreci MBR kaydındaki bilgilere göre başlar. Artık BIOS devreden çıkmış ve görevi MBR devralmıştır. Eğer BIOS, MBR kaydı bulamazsa önyükleme önceliği sırasına göre diğer cihazlar için 9. adımı tekrarlar.
- Eğer BIOS önyüklenecek bir medya veya sürücü bulamazsa doğal olarak hata verir. Bu hata mesajı BIOS'a göre değişse de genelde "No boot device available" gibi birşey olur.
Master Boot Record (MBR)
hakkında...
Her sabit disk mutlaka bir "Başlama Noktası"na sahiptir. Bu başlama noktası olmasa BIOS nereye bakacağını bilemez. Bu başlama noktası ise her sabit diskte Plaka 0, Kafa 0, Sektör 1'dir (Yukarıdaki resim) ve asla değişmez. Bu başlama noktasındaki ilk sektöre Master Boot Record (MBR) kaydedilir. Bu sektör karşınıza "Master Boot Sector" veya "Boot Sector" olarakta çıkabilir ama bütün bu terimler aynı şeyi ifade eder. MBR ise 2 bölümden oluşur;
- Master Partition Table (Ana Bölümleme Tablosu)
- Master Boot Code
Adres | Açıklama | Byte olarak Büyüklüğü | |||
---|---|---|---|---|---|
16'lık | 8'lik | Ondalık | |||
0000 | 0000 | 0 | Master Boot Code (Bootstrap) kod alanı | 440 (maks. 446) | |
01B8 | 0670 | 440 | Disk imzası (opsiyonel) | 4 | |
01BC | 0674 | 444 | Genellikle boş; 0x0000 | 2 | |
01BE | 0676 | 446 |
Master Partition Table
(Ana Bölümleme Tablosu)
(4 Adet 16-byte giriş, IBM Bölümleme Tablosu'na göre)
| 64 | |
01FE | 0776 | 510 | 55h | MBR imzası | 2 |
01FF | 0777 | 511 | AAh | ||
MBR, toplam boyut: 446 + 64 + 2 = | 512 |
"Master Partition Table" tek sektöre sığdırılma zorunluluğu yüzünden son derece küçüktür. İşte bu yer darlığı yüzünden sadece 4 bölüntünün bilgisini içerebilir. 5. veya daha fazla bölüntünün bilgilerini girmeniz için yer yoktur. Bu yüzden bir disk minimum 1, maksimum 4 adet "Gerçek" bölüntü (Birincil Bölüm/Primary Partition) içerebilir.
Birincil bölüntülerden (Primary Partition) biri de mutlaka aktif (Active) olarak işaretlenmelidir ki işletim sisteminin hangi bölüntüde olduğu belli olsun. Active işareti o bölüntüye ön yüklenebilme (Bootable) özelliği kazandırır.
Diğer yandan 4 Birincil Bölüm kısıtlamanın istisnası vardır; Genişletilmiş Bölümler (Extended Partition)
Windows varsayılan olarak, ilk 3 bölüntüyü birincil, son yani 4. bölüntüyü ise Genişletilmiş Bölüm (Extended Partition) olarak oluşturur.
Genişletilmiş bölümler (Extended Partition) özel bir bölüntü şeklidir. Birincil bölümlerin aksine işletim sistemi veya veri depolayamazlar bunun yerine Mantıksal Sürücülere (Logical Partitions) ev sahipliği yaparlar. Bir Genişletilmiş Bölüm dilediğiniz sayıda mantıksal sürücüye bölünebilir. Yani diskinizi dörtten fazla bölüntüye ayırmak istiyorsanız yapmanız gereken şey diskinizdeki bölüntülerden birini Genişletilmiş Bölüm (Extended Partition) olarak oluşturmak. Ondan sonra bu Genişletilmiş Bölümün kapasitesini dilediğiniz kadar bölüntüye ayırabilirsiniz.
"Hani yer azdı da bu yüzden 4 bölüntüden fazla olmuyordu?" sorusu aklınıza gelebilir. Bu sorunun cevabı ise şu;
MBR mantıksal bölüntülerin şemasını barındırmaz sadece tek bir Genişletilmiş Bölüm (Extended Partition) şemasını barındırır. Genişletilmiş Bölüm'ün içerdiği Mantıksal Bölümlerin şeması ise daha ilerideki sektörlerde bulunur ve buradan bu şemaların bulunduğu sonraki sektörlere link verilir.
İlk resimde, 5 bölüme ayrılmış bir diskin şemasını görüyorsunuz. İlk 3 bölüm (C,D ve E) Birincil Bölüm ve işletim sistemi kurulabilme yeteneğine sahip. 4 Bölüntü ise Genişletilmiş Bölüm ve 2 adet mantıksal sürücü içeriyor. (F ve G) Aslında disk yine 4 bölüntüye ayrılmış oluyor ama 4. bölüntü 2 adet mantıksal sürücü barındırdığı için fiili olarak diski 5 bölüntü halinde kullanabiliyoruz.
2. resimde ise şemadaki diskin gerçek halini görüyorsunuz. (Sistem Ayrıldı bölümü yüzünden harflerde farklılık var bunu göz ardı edin)
Aklınıza şu soru takılmış olabilir: Madem öyle neden bütün bölüntüler varsayılan olarak bu şekilde oluşturulmuyor ve diski dilediğimiz kadar bölemiyoruz?
Bunun sebebi; Genişletilmiş Bölümlerin ve bunların içerdiği Mantıksal sürücülerin işletim sistemi barındıramıyor olması. Yani mantıksal sürücüleri sadece veri depolama amaçlı kullanabilirsiniz.
Diğer bir soru/sorun ise bilgisayarı ilk aldığında bilgisayarın diski zaten 4 birincil bölüntü içeren kullanıcılardan gelebilir. Bunlar doğal olarak disklerini bölümleyemiyorlar. Bu sorunun çözümünü -konunun dağılmaması adına- ilerleyen bölümlerde anlatacağım.
Volume Boot Record
Her bölüntü MBR'den ayrı/bağımsız olarak Volume Boot Sector'üne sahiptir. Bu bütün diski kontrol eden MBR'den farklı olarak sadece ilgili bölüntüyü kontrol eder. Bu sektör kimi kaynaklarda Volume Boot Sector veya Partition Boot Sector olarak geçer. Ama hepsi aynı şeyi ifade ederler. Her Volume Boot Record kaydının içeriği alttakilerden oluşur;
- Disk Parameter Block (Disk Karakteristiği alanı) : Bu alanda bölüntüye ait boyut, içerdiği sektör sayısı, bölümün etiketi gibi bilgiler bulunur.
- Volume Boot Code (Böüntü Ön Yükleme Kodu) : Bu alan çalıştırılabilir kodlar içerir. Bu çalıştırılabilir kodları MBR içinde bulunan Master Boot Code tetikler. Ancak bu kod alanı sadece aktif (Active) olarak işeretlenen bölüntüde işe yarar. Diğer aktif olmayan bölüntülerde tamamen atıldır ve kullanılmaz.
Sonraki bölüm;
Sabit Disk (II) : Diklerde Bölme ve Birleştirme Prensipleri