- GRUB, işletim sistemini seçen ve yükleyen, BIOS/UEFI ve Multiboot'u destekleyen GNU önyükleme yöneticisidir.
- GRUB 2'ye modüller, geliştirilmiş dosya sistemi desteği, UUID arama ve grafiksel menü/terminal eklendi.
- Yapılandırma /etc/default/grub ve 40_custom üzerinden yönetilir, update-grub veya grub2-mkconfig ile yeniden oluşturulur.
- Güvenlik: GRUB'u parola korumalı hale getirin, LUKS şifrelemesini kullanın ve güçlü parola politikalarına sahip olun.

Bilgisayarınıza GNU/Linux kurduysanız veya birden fazla işletim sistemi kullanıyorsanız, GRUB'u muhtemelen duymuşsunuzdur. Sistem açılışından hemen önce gördüğünüz, neyin yükleneceğini seçmenize olanak tanıyan küçük ama güçlü bir programdır. Genellikle fark edilmese de, işletim sistemini başlatmak ve kontrolü sorunsuz bir şekilde çekirdeğe devretmek için çok önemli bir rol oynar .
Bilgisayar önyükleme dünyasında GRUB, gücü ve esnekliği sayesinde fiili standart haline gelmiştir. GNU projesi içinde doğan GRUB, günümüzde GNU/Linux'ta en yaygın kullanılan önyükleme yöneticisidir ; çok çeşitli mimariler ve dosya sistemleriyle uyumludur, yeni başlayanlar için kullanıcı dostudur ve aynı zamanda önyükleme sürecinin her ayrıntısını ince ayar yapanlar için çok yönlü bir araçtır.
GNU GRUB nedir ve ne işe yarar?
GNU GRUB (GNU GRand Unified Bootloader) , çoklu önyükleme yöneticisidir: bilgisayar açıldığında işletim sistemini seçmek ve yüklemek için aygıt yazılımının (BIOS veya UEFI) çalıştırdığı bir yazılımdır. Kullanıcıların menü öğelerini seçmesine, çekirdeğe parametreler iletmesine, ağdan önyükleme yapmasına ve hatta belirli sorunları gidermek için bir konsolla etkileşim kurmasına olanak tanır.
Esas olarak GNU/Linux dağıtımlarında kullanılır, ancak x86 tabanlı Solaris gibi diğer sistemlerde de kullanılmıştır. Modern UEFI sistemlerinde , aygıt yazılımı, NVRAM'de kayıtlı olması koşuluyla, EFI sistem bölümünde (ESP) bulunan GRUB yürütülebilir dosyasını doğrudan yükler ; BIOS/MBR'de ise GRUB diskin ilk sektörlerini işgal eder ve oradan devam eder.
Tipik menünün ötesinde, GRUB, Çoklu Önyükleme Spesifikasyonuna (Multiboot Specification) uygundur; bu da uyumlu çekirdekleri sorunsuz bir şekilde önyükleyebileceği anlamına gelir . Ve çekirdek belleğe yerleştirildikten sonra, GRUB kontrolü devreder ve görevi tamamlanır; bu da hiç de küçümsenecek bir başarı değildir.

Teknik bilgi formu ve proje verileri
GRUB, GNU ekosisteminin bir parçasıdır ve GNU GPL v3 veya daha sonraki bir lisans altında özgür yazılım olarak dağıtılır . Geliştirmesi açık kaynaklıdır, resmi bir deposu, hata takip sistemi ve web sitesi vardır ve çok aktif bir topluluğa sahiptir.
Temel olarak C ve assembler ile yazılmıştır ve çeşitli platformlarda çalışır: IA-32, x86-64 ve PowerPC, ve diğerleri. Mevcut sürüm GRUB 2'dir (tarihi "GRUB Legacy"nin yeniden uygulanması). Yayınlanan en son kararlı sürüm ise 2.12 (20 Aralık 2023). Yerel sürümünüzü kontrol etmek istiyorsanız şunu çalıştırabilirsiniz: grub-install --version ve karşılık gelen zinciri göreceksiniz.
Biraz tarih ve evrim
GRUB, Erich Stefan Boleyn'in GNU Hurd ve Mach mikroçekirdeği bağlamında başlattığı bir girişim olarak ortaya çıktı . Önyükleme yöntemlerindeki farklılığı gidermek için, önyükleyicilerin ve çekirdeklerin "aynı dili konuşmasını" kolaylaştıran Çoklu Önyükleme Spesifikasyonu oluşturuldu. 1999'da Gordon Matzigkeit ve Yoshinori Okuji, bunun GNU Projesi'nin resmi bir paketi olarak benimsenmesine öncülük etti.
2002 civarında, bir grup Japon araştırmacı, GRUB'u daha sağlam ve modüler hale getirmek amacıyla PUPA'yı (Ön Evrensel Programlama Mimarisi) başlattı. Bu çaba GRUB 2 ile sonuçlanırken , önceki sürüm "GRUB Legacy" (son güncellemesi 2005'te yapılan 0.97 sürümü) olarak bilindi. 2007'den itibaren birçok dağıtım GRUB 2'ye geçti ve 2009'un sonuna kadar büyük çoğunluğu varsayılan olarak GRUB 2'yi içeriyordu.
Bilgisayarınızı GRUB (BIOS ve UEFI) ile nasıl başlatabilirsiniz?
Bilgisayarınızı açtığınızda, aygıt yazılımı kontrollerini (RAM, saat, aygıtlar, önyükleme sırası) çalıştırır ve bir önyükleyici arar. BIOS/MBR'li sistemlerde kontrol, Ana Önyükleme Kaydı (MBR), diskin ilk 512 baytıGRUB aşamalara ayrılmıştı: Aşama 1 (MBR'deki minimum kod), Aşama 1.5 (sonraki sektörlerde, dosya sistemlerini anlamak için köprüleme) ve Aşama 2 (menüler ve gelişmiş işlevler). GRUB 2'de bu "1.5" artık yok; artık aşağıdaki gibi belirli görüntüler var: boot.img, core.img ve kuruluma göre birleştirilen modüller (*.mod).
UEFI'de süreç daha doğrudandır: doğru şekilde kurulmuş ve kaydedilmiş olması koşuluyla , aygıt yazılımı EFI bölümünden GRUB EFI ikili dosyasını çalıştırır . Her iki durumda da GRUB bir menü veya konsol sunar, seçilen çekirdeği yükler ve ardından yürütmeyi ona aktarır.
Çoklu önyükleme özelliği ve uyumluluğu
GRUB, uyumlu çekirdeklerin özel "hileler" gerektirmeden önyüklenmesine olanak tanıyan Çoklu Önyükleme özelliğini uygular. Ayrıca, bunu desteklemeyen sistemler ( Windows veya DOS gibi ) için, önyükleyicilerinin bulunduğu bölümün ilk sektörünü hedefleyerek zincirleme yükleme sunar.
Dosya sistemi uyumluluğu oldukça geniştir: Btrfs, ext2/3/4, FAT12/16/32, exFAT, HFS/HFS+, ISO9660, Nilfs2, NTFS, ReiserFS, ZFS, ROMFS, JFS, XFS ve daha birçok sistemi destekler. Ayrıca LVM birimlerinden ve RAID dizilerinden de okuma yapabilir; bu da depolama yapısı karmaşık olduğunda önemli bir avantajdır.
Öne Çıkan Özellikler ve İşlevler
- Menü arayüzü Tab otomatik tamamlama ve Bash tarzı kısayollara sahip, yapılandırılabilir ve oldukça esnek etkileşimli terminal.
- Desteği LBA (Mantıksal Blok Adresleme) Klasik BIOS sınırlarını aşmak ve 1024 silindirin ötesini okumak için.
- İçin kapasite ağ önyüklemesi (PXE/TFTP) ve uzak terminaller, merkezi yönetim senaryolarında kullanışlıdır.
- Birden fazla çalıştırılabilir formatın otomatik olarak sıkıştırılması ve tanınması.
- Değişkenlerin kalıcı olarak depolanması save_env/load_env y
grub-editenv(platform izin verdiğinde). - Tüm RAM algılama, disk geometrisi bağımsızlığı ve etiketlere ve UUID'ye göre arama mekanizmaları.
- Menüler ve arka planlar için grafiksel destek ve modüler bir tasarım çekirdek.img küçük ve ihtiyaç halinde modülleri yükler.
Temel terminoloji: aygıtlar, bölümler ve yollar
GRUB, diskleri ve bölümleri kendi yöntemiyle adlandırır. İlk disk genellikle (hd0), ilk bölüm (hd0,1) GRUB 2'de (unutmayın: GRUB 2'de numaralandırma 1'den başlar; Legacy'de ise 0'dan başlar). Tüm bir diske atıfta bulunmak için bölüm atlanır: (hd0).
Dosyaları belirtmek için aygıt, yol ile birleştirilir: (hd0,1)/ruta/al/archivo. Ayrıca şunu da destekler: engelleme listeleri (blok listeleri) örneğin dosya sisteminde görünmeyen bir dosyanın diskteki tam konumunu belirtmek gerektiğinde (hd0,1)+1 bir bölümün ilk sektörü için, kullanışlı chainloader +1.
GRUB'daki "kök dosya sistemi", Linux'taki "/" ile aynı şey değildir. Bu, GRUB'un dosyalarını okuyacağı kök bölümüdür ; Linux çekirdeği kontrolü ele geçirdiğinde, kendi gerçek kökünü tanımlar ve GRUB'daki diğer her şey önemsiz hale gelir.
GRUB Arayüzleri
GRUB üç ana görünüm sunar. En tanıdık olanı , önceden yapılandırılmış girişlere sahip menüdür ; ok tuşlarıyla gezinebilir, Enter tuşuyla önyükleme yapabilir, "e" tuşuyla bir girişi düzenleyebilir veya "c" tuşuyla konsolu açabilirsiniz.
Giriş düzenleyici, satırları anında değiştirmenize ("o/O" ile ekleme, "e" ile düzenleme, "d" ile silme) ve her şey doğru görünüyorsa "b" ile önyükleme yapmanıza olanak tanır. Dosyalara dokunmadan çekirdek parametrelerini test etmek için idealdir.
Konsol en güçlü moddur: bağlamsal otomatik tamamlama, düzenleme kısayolları ve diskleri bulma, çekirdek/initrd yükleme veya zincirleme yükleme için GRUB'un tüm dahili komutlarını destekler . Yapılandırma dosyası eksik veya bozuksa, GRUB sizi buraya yönlendirir, böylece sorunu manuel olarak çözebilirsiniz.
Yaygın hata mesajları
Hatalar başlangıç aşamasında (daha sınırlı) veya menüler ve modüller yüklenirken (daha açıklayıcı) ortaya çıkabilir. Aşağıda, GRUB'un gösterebileceği temsili kodlardan bazıları, açıklık sağlamak amacıyla özetlenmiştir :
- 1: Geçersiz veya kesin olmayan yol; 2: Geçersiz dosya türü (normal bir dosya değil); 3–4: Sıkıştırma sırasında bozuk veri/başlık; 5: hasarlı bölüm tablosu veya geçersiz.
- 6: Aşama1/Aşama2 uyumsuzluğu; 7: 1 MB'ın altındaki yükleme desteklenmiyor; 8: Çekirdek yüklenmeden önyükleme girişimi; 9: Bilinmeyen önyükleme hatası.
- 10: Çoklu önyükleme özellikleri desteklenmiyor; 11: Aygıt tanınmıyor; 12: Geçersiz aygıt; 13: Desteklenmeyen yürütülebilir dosya biçimi.
- 14: Dosya sistemi dosyanın tamamının okunmasını engelliyor; 15: dosya bulunamadı; 16: Tutarlı olmayan dosya sistemi yapısı.
- 17: Seçili bölüm bağlanamıyor; 18: Silindir BIOS tarafından desteklenen aralığın dışında (eski sürücülerde tipik); 19: Çekirdekten önce initrd.
- 20: Çoklu önyüklemeli çekirdekten önceki modüller; 21: Seçilen disk mevcut değil; 22: Mevcut olmayan bölüm; 23: Bir sayıyı yorumlarken hata oluştu.
- 24: Bölümün dışındaki bir bloğa erişim; 25: Disk okuma hatası; 26: Çok fazla sembolik bağlantı; 27: Bilinmeyen komut.
- 28: Öğe belleğe sığmıyor; 29: Disk yazma hatası; 30: Geçersiz argüman; 31: Dosya sektör hizalı değil (ReiserFS, kullanım kuyruksuz).
- 32: Kimlik doğrulaması gerekli; 33: Seri aygıt yapılandırılmamış; 34: MBR'den sonra Aşama 1.5 için boş sektör yok (EZ-BIOS ile çakışma veya bölümün çok erken başlaması).
Temel GRUB Komutları
Konsolda oldukça kullanışlı etkileşimli komutlar çalıştırabilirsiniz. Örneğin, boot son yükleneni (çekirdek veya zincir yükleyici) başlatır ve chainloader <archivo> bir sektörü veya dosyayı bir zincirden yükler; Windows için tipik kısayol şudur chainloader +1.
displaymem BIOS'a göre bellek kullanımını görüntüler; bu, algılanan RAM'den emin değilseniz kullanışlıdır. initrd <archivo> çekirdeğin ihtiyaç duyduğu ilk RAM disk görüntüsünü belirtirsiniz.
GRUB Legacy konsolundan MBR'ye kurulum yapmak için şunları kullandınız: install rotalarla stage1, stage2 ve isteğe bağlı olarak yapılandırma dosyasına. Günümüzde GRUB 2'de, sistemden, grub-install ve menüyü yeniden oluşturun update-grub/grub2-mkconfig.
Komut kernel çekirdek ikili dosyasını ve parametrelerini belirtir, örneğin: kernel /vmlinuz root=/dev/sda5Genellikle öncesinde şu gelir: root (hdX,Y) o rootnoverify GRUB'un okuyacağı bölümü ayarlamak için.
Yapılandırma dosyaları ve yönergeleri
GRUB Legacy'de menü şu konumdaydı: /boot/grub/menu.lst o grub.conf, şu gibi yönergelerle color, default, fallback, hiddenmenu, password, timeout, splashimage ve bloklar title Her sistem için siparişlerle birlikte.
Klasik bir örnek (özetle) Linux bölümünü içerir root (hd0,2), kernel onun ile kök parametresi=/…Ve boot; ve Windows için bir tane daha rootnoverify (hd0,1) y chainloader +1.
GRUB 2'de otomatik olarak oluşturulan dosya /boot/grub/grub.cfgElle düzenlemeniz önerilmez; bunun yerine, ayarlanır /etc/default/grub (gibi değerler) GRUB_TIMEOUT, GRUB_DEFAULT, vb.) ve özel girişler eklenir /etc/grub.d/40_customDaha sonra yürütülür update-grub o grub2-mkconfig Menüyü yenilemek için.
GRUB Legacy ve GRUB 2 arasındaki temel farklar
- Yapılandırma dosyası şuradan gitti:
menu.lst/grub.confagrub.cfg, yenilenen söz dizimi ve komutlar ve otomatik oluşturma yoluylagrub-mkconfig. - Bölüm numaralandırması 1'te başlıyor GRUB 2'de (Legacy'de 0'dan başlıyordu).
- Değişkenlerin kalıcılığı
save_env/load_envbazı konfigürasyonlarda. - Daha iyi rota tespiti ve UUID/etiketlere göre arama; daha fazla dosya sistemi desteklenir.
- Doğrudan okuma LVM ve RAID.
- Terminal ve menü grafikleri ve yeniden düzenlenen görseller: 1.5 aşaması sona erdi;
boot.img,core.imgve dinamik modüller (*.mod).
GRUB ile güvenlik ve güçlendirme
Güvenliği yetersiz bir önyükleme yöneticisi adeta bir elek gibidir. Fiziksel erişimi olan biri çekirdek parametrelerini düzenleyebilir veya farklı bir giriş başlatabilirse, bu güvenlik önlemlerinizi etkili bir şekilde devre dışı bırakır . Bu nedenle GRUB'u parolalarla korumak ve en iyi uygulamaları uygulamak tavsiye edilir.
Bir tane ayarla güçlü şifre Giriş değişikliklerini veya konsol erişimini sınırlamak için. GRUB 2'de, kullanıcı adlarını ve parolaları şu şekilde kullanın: grub-mkpasswd-pbkdf2 ve komut dosyalarında karşılık gelen kuralları yapılandırın /etc/grub.d/.
Ayrıca, LUKS kullanarak disk şifrelemesi de içerir ; böylece bilgisayar çalınsa bile veriler okunamaz. Sistem parola politikalarının da sıkı olması, kaba kuvvet saldırılarını azaltır.
Kayıt geçmişinizi akıllıca yönetin : Saldırgana ipucu veren kayıtlar en aza indirilmeli veya erişim kontrolleriyle merkezileştirilmelidir; kötü amaçlı girişimlerin denetlenmesine yardımcı olan kayıtlar ise güvenli bir yerde toplanmalı ve analiz edilmelidir.
Diğer yüklü sistemleri algılamak ve otomatik olarak girdiler oluşturmak için şunu yükleyin: os-proberMenüyü yeniden oluştururken hem zamandan tasarruf edecek hem de hataların önüne geçeceksiniz.
Kurulum ve bakım
Dağıtımınızın kurulumu sırasında GRUB'u yüklemediyseniz, bunu daha sonra yapabilirsiniz. GRUB 2'de, sistemden şunu çalıştırın: sudo grub-install /dev/sdX (diskinizle değiştirin) ve sonra sudo update-grub o sudo grub2-mkconfig -o /boot/grub/grub.cfgBir sonraki açılışta menüyü göreceksiniz.
GRUB Legacy konsolundan klasik prosedür, root'u belirtmek ve kurulumu çalıştırmaktır: root (hd1,0) takip eden setup (hd1,0) ikinci diskin ilk bölümü için veya setup (hd1) eğer ikinci diskin MBR'sine işaret ederseniz.
Doğrudan düzenle /boot/grub/grub.cfg GRUB 2'de bu iyi bir fikir değil, teknik olarak mümkün olsa bile. Önerilen rota değişmektir /etc/default/grub, kullan /etc/grub.d/40_custom kendi içeriği ve yenilenmesi için.
Pratik sorular ve faydalı kısayollar
/dev/sda'daki önyükleme bölümünün hangisi olduğunu nasıl öğrenebilirim? BIOS/MBR sistemlerinde: sudo fdisk -l /dev/sda (“Önyükleme” için yıldız işaretine bakın). GPT/UEFI'de: lsblk -o NAME,FSTYPE,PARTTYPE,PARTFLAGS,MOUNTPOINT ve EFI bölümünü arayın (FAT32, EF00/flags esp türü). Ayrıca sudo efibootmgr -v kaydedilen önyükleme girişlerini görüntüler.
Bir bölümün UUID'sini nasıl alabilirim? ile blkid o lsblk -f. Örneğin: sudo blkid /dev/sda2 geri döner UUID ve diğer meta veriler.
GRUB 2'nin varsayılan girişi girmeden önce 10 saniye beklemesini nasıl sağlarım? Ayarlanabileceğinden /etc/default/grub ile GRUB_TIMEOUT=10 (ve eğer geçerliyse, GRUB_TIMEOUT_STYLE=menu) ve yürütür sudo update-grub o grub2-mkconfig.
İkinci diskin ilk bölümüne GRUB Legacy kurulum komutları? Konsolu açın ve şunu çalıştırın: root (hd1,0) ve daha sonra setup (hd1,0)Eğer MBR'yi isteseydiniz, bu olurdu setup (hd1).
GRUB 2 yapılandırmasını değiştirme adımları? 1) Düzenle /etc/default/grub (Örneğin., GRUB_DEFAULT, GRUB_TIMEOUT), 2) girişleri ekleyin /etc/grub.d/40_custom Eğer ihtiyacınız varsa, 3) yenilenin update-grub/grub2-mkconfig, 4) yeniden başlatın ve test edin.
GRUB 2'de özel menüler nereye koyulur? En /etc/grub.d/40_custom (veya kendi dosyalarınızda /etc/grub.d/ (Uygun izinlerle) Asla elle düzenleme yapmayın /boot/grub/grub.cfg acil durumlar hariç.
GRUB Legacy'de girdiler nerede saklanıyordu? En /boot/grub/menu.lst o grub.conf, dağılıma göre.
Menüden GRUB konsoluna nasıl erişebilirim? GRUB 2 veya Legacy'de "c" tuşuna basın. Belirli bir girişi düzenlemek için "e" tuşuna basın. Her iki kısayol da, sorunları anında teşhis etmeniz gerektiğinde çok kullanışlıdır.
Yaygın seçeneklere örnekler
Varsayılan önyükleme seçimi: GRUB_DEFAULT=0 ilk vuruş başlıyor; ile GRUB_DEFAULT=saved Son kullanılan yapılandırmayı hatırlar. Değişiklikten sonra yapılandırmayı yeniden oluşturur.
Bekleme zamanı: GRUB_TIMEOUT=4 menü gecikmesini ayarlar; ile 0 duraklamadan başlar; bazı senaryolarda menüyü gizleyebilirsiniz GRUB_TIMEOUT_STYLE=hidden Daha temiz bir başlangıç için.
Menü güncellemesi: Debian/Ubuntu ve türevlerinde, sudo update-grub; diğerlerinde, sudo grub2-mkconfig -o /boot/grub/grub.cfg. Sahip olduğundan emin ol os-prober Diğer sistemleri otomatik olarak algılamak istiyorsanız kurun.
GRUB, GNU/Linux dışındaki bağlamlarda da görünse de, bir destek hizmeti olmadığını unutmayın. Sorununuz Windows'a özgü ise, en pratik çözüm, o sisteme özel forumlara giderek daha odaklı yardım almaktır.
GRUB, basit bir önyükleme menüsünden, birden fazla işletim sistemini önyükleyebilen, karmaşık diskleri yönetebilen ve yalnızca birkaç komutla sistemi kurtarmanıza yardımcı olabilen gerçek bir ön sistem ortamına dönüştü. Doğru yapılandırma ve bazı güvenlik önlemleriyle (GRUB parolaları, LUKS şifrelemesi, iyi yönetilen anahtar politikaları ve günlükler), sağlam, esnek ve her şeyden önce kontrollü bir önyükleme sürecine sahip olacaksınız.
