Jump to content

# GRUB (Türkçe)

From ArchWiki
Çeviri Durumu: Bu makale, GRUB makalesinin çevirisidir. Son çeviri tarihi (yıl-ay-gün şeklinde): 2024-08-27. Eğer makalenin İngilizce sürümünde değişiklik yapılmış ise çevirinin senkronize edilmesine yardımcı olabilirsiniz. Çevrilmiş tüm makelelere buradan erişebilirsiniz.

Related articles

- Arch boot process
- Master Boot Record
- GUID Partition Table
- Unified Extensible Firmware Interface
- GRUB Legacy
- GRUB/EFI examples
- GRUB/Tips and tricks
- Multiboot USB drive

Not Söz konusu çeviri henüz taslak aşamasındadır. Bu nedenle ana dildeki gönderiyi dikkate almanızı tavsiye ederiz.

GRUB (Büyük Birleşik Önyükleyici) bir açılış önyükleyicisi'dir. Mevcut GRUB aynı zamanda GRUB 2' olarak da adlandırılmaktadır. Orijinal GRUB veya GRUB Legacy, 0.9x sürümlerine karşılık gelir. Bu sayfa sadece GRUB 2'yi açıklamaktadır.

Not Makale boyunca `esp` EFI sistem bölümü'ne veya diğer adıyla ESP'nin bağlama noktasına işaret etmektedir.

## Desteklenen dosya sistemleri

GRUB, özellikle FAT32, ext4, Btrfs veya XFS gibi çoklu dosya sistemleri için kendi desteğini paketler. Uyarılar için #Desteklenmeyen dosya sistemleri bölümüne bakınız.

Uyarı Dosya sistemleri henüz GRUB tarafından desteklenmeyen yeni özelliklere sahip olabilir. Bu da uyumsuz özellikler devre dışı bırakılmadıkça onları `/boot` bölümü için uygunsuz hale getirebilir. Bu durum genellikle FAT32 gibi evrensel olarak desteklenen bir dosya sistemi ile ayrı bir önyükleme bölümü kullanılarak önlenebilir.

## UEFI sistemler

Not

- UEFI, GUID Bölüm tabloları ve Arch'da önyükleme süreci sayfalarının okunması ve anlaşılması tavsiye edilir.
- UEFI kullanmak için kurulum yaparken, yükleme medyasını UEFI modunda olması önemlidir. Aksi takdirde efibootmgr GRUB'a UEFI önyükleme girdisini ekleyemez. Kurulum yedek önyükleme yolu'na yapılırken NVRAM'e dokunmadığı için BIOS modunda bile çalışacaktır.
- UEFI kullanarak bir diskten önyükleme yapmak için bir EFI sistem bölümü gereklidir. Zaten bir bölümünüz olup olmadığını öğrenmek için Mevcut bir bölüm olup olmadığını kontrol edin seçeneğini izleyin, aksi takdirde sizin oluşturmanız gerekir.
- Tüm bu makale `insmod` aracı ile ek GRUB2 modülleri eklemenin mümkün olduğunu varsaymaktadır. #Shim-kilidi bölümünde tartışıldığı gibi, Secure Boot'un etkin olduğu UEFI sistemlerinde durum bu şekilde değildir. Standart GRUB EFI dosyası `grubx64.efi` içerisinde bulunmayan herhangi bir ek GRUB modülünü Güvenli Önyükleme sisteminde kullanmak istiyorsanız, GRUB EFI `grubx64.efi`'yi `grub-mkstandalone` aracı ile yeniden oluşturmanız veya ek GRUB modülleri için dahili `grub-install` aracını kullanarak GRUB'u yeniden yüklemeniz gerekir.

### Kurulum

Not

- UEFI yazılımları, üreticilere göre tutarlı bir şekilde uygulanmamış olabilir. Aşağıda açıklanan prosedür geniş bir UEFI sistemi yelpazesinde çalışması için tasarlanmıştır; ancak bu yöntemi uygulamanıza rağmen sorun yaşayanlar, ayrıntılı bilgileri ve mümkünse bulunan geçici çözümleri paylaşmaları teşvik edilir. Böyle durumlar için bir EFI örnekleri makalesi sağlanmıştır.
- Bu bölüm, GRUB'u x64 (64-bit) UEFI için kurduğunuzu varsayar. IA32 (32-bit) UEFI (32-bit CPU'larla karıştırılmamalıdır) için uygun yerlerde `x86_64-efi` yerine `i386-efi` kullanın. UEFI'nizin bit'ini öğrenmek için Aygıt yazılımı bit'inin kontrolü talimatlarını takip edin.

İlk olarak, grub ve efibootmgr paketlerini yükleyin: GRUB önyükleyicidir, efibootmgr ise GRUB kurulum betiği tarafından NVRAM'e önyükleme girişlerini yazmak için kullanılır.

Daha sonra, GRUB'u diskinize kurmak için aşağıdaki adımları takip edin:

1. EFI sistem bölümünü bağlayın ve bu bölümün geri kalanında `esp` ile bağlama noktasını değiştirin.
2. Bir önyükleyici tanımlayıcı seçin, burada `GRUB` olarak adlandırılmıştır. Bu isimde bir dizin `esp/EFI/` içinde oluşturulacak ve EFI ikili dosyasını depolayacaktır ve bu isim UEFI önyükleme menüsünde GRUB önyükleme girişini tanımlamak için görünecektir.
3. GRUB EFI uygulamasını `grubx64.efi` `esp/EFI/GRUB/` içine kurmak ve modüllerini `/boot/grub/x86_64-efi/` içine kurmak için aşağıdaki komutu çalıştırın.

    Not
    - Paketleri kurduğunuzdan ve `grub-install` komutunu GRUB'un önyükleyici olarak kurulacağı sistemden çalıştırdığınızdan emin olun. Yani, canlı kurulum ortamından önyükleme yapıyorsanız, `grub-install` komutunu çalıştırırken chroot içinde olmanız gerekir. Bir nedenle `grub-install`'i kurulu sistem dışından çalıştırmanız gerekirse, `--boot-directory=` seçeneğine bağlı `/boot` dizininin yolunu ekleyin, örneğin `--boot-directory=/mnt/boot`.
    - Bazı anakartlar, `bootloader-id` içinde boşluk olan değerleri işleyemez.

        # grub-install --target=x86_64-efi --efi-directory=esp --bootloader-id=GRUB

Yukarıdaki kurulum tamamlandığında, ana GRUB dizini `/boot/grub/` içinde bulunur. Alternatif bir konum belirtme hakkında bilgi için Alternatif yükleme yöntemi#ipuçları ve püf noktaları kısmını okuyun. Ayrıca `grub-install`'in firmware boot yöneticisinde bir giriş oluşturmayı da denediğini unutmayın. Yukarıdaki örnekte `GRUB` olarak adlandırılmıştır – eğer önyükleme girişleriniz doluysa bu işlem başarısız olacaktır; gereksiz girişleri kaldırmak için efibootmgr kullanın.

Konfigürasyonu tamamladıktan sonra Ana yapılandırma dosyasını oluşturun adımını atlamayın.

İpucu `--removable` seçeneğini kullanırsanız, GRUB `esp/EFI/BOOT/BOOTX64.EFI` (veya `esp/EFI/BOOT/BOOTIA32.EFI` `i386-efi` hedefi için) içine kurulacaktır ve EFI değişkenleri sıfırlanırsa veya diski başka bir bilgisayara taşırsa, diskinizi önyükleme yapma yeteneğiniz olacaktır. Genellikle bunu BIOS kullanarak yaptığınız gibi, diski kendisini seçerek yapabilirsiniz. Windows ile çift önyükleme yapıyorsanız, Windows genellikle oraya bir EFI yürütülebilir dosya koyar; ancak bunun tek amacı Windows için UEFI önyükleme girişini yeniden oluşturmaktır. Eğer GRUB'u bir Mac'e kuruyorsanız, bu seçeneği kullanmanız gerekecektir. Bazı masaüstü anakartlar sadece bu konumda bir EFI yürütülebilir dosya arar, bu nedenle bu seçenek zorunlu olabilir, özellikle MSI anakartları ile. UEFI güncellemesi gerçekleştirirseniz, bu güncelleme mevcut UEFI önyükleme girişlerini silebilir. Bu nedenle, "taşınabilir" önyükleme girişini etkinleştirmek olası bir geri dönüş stratejisidir.
Not

- `--efi-directory` ve `--bootloader-id` GRUB UEFI'ye özgüdür, `--efi-directory` `--root-directory`'yi, artık kullanılmayan bir seçeneği değiştirir.
- `grub-install` komutunda bir device_path seçeneğinin (örneğin: `/dev/sda`) olmamasını fark edebilirsiniz. Aslında, sağlanan herhangi bir device_path GRUB UEFI kurulum betiği tarafından yoksayılır. Gerçekten de, UEFI önyükleyicileri bir MBR önyükleme kodu veya bölüm önyükleme sektörü kullanmaz.

Sorun yaşarsanız UEFI sorun giderme kısmına bakın. Ayrıca GRUB/Tips and tricks#UEFI further reading bölümüne göz atın.

### Güvenli Önyükleme Desteği

GRUB, CA anahtarları veya shim kullanarak güvenli önyüklemeyi tamamen destekler, ancak hangi yöntemi kullanacağınıza bağlı olarak kurulum komutu farklıdır.

Uyarı

- Güvenli Önyükleme'yi yanlış yapılandırmak sisteminizi önyüklenemez hale getirebilir. Güvenli önyüklemeyi etkinleştirdikten sonra herhangi bir nedenle önyükleme yapamazsanız, firmware'de güvenli önyüklemeyi devre dışı bırakmalı ve sistemi yeniden başlatmalısınız.
- Önyükleyicinizde gereksiz modüller yüklemek bir güvenlik riski oluşturabilir, bu komutları yalnızca ihtiyacınız varsa kullanın.

#### CA Anahtarları

CA Anahtarlarını kullanmak için komut şu şekildedir:

    # grub-install --target=x86_64-efi --efi-directory=esp --bootloader-id=GRUB --modules="tpm" --disable-shim-lock

#### Shim-lock

Not Bu bölümü takip etmeden önce Güvenli Önyükleme#shim kısmındaki talimatları izlediğinizden ve sbsigntools'in anahtarları almak için hazır olduğundan emin olun.

Shim-lock kullanırken, GRUB'un güvenli önyükleme modunda başarılı bir şekilde önyüklenebilmesi için EFI ikili dosyasının vmlinuz ve initramfs görüntülerini içeren dosya sistemini okumak için gerekli tüm modülleri içermesi gerekir.

GRUB sürüm `2.06.r261.g2f4430cc0`'dan itibaren, güvenli önyükleme modunda `insmod` ile modül yüklemek artık izin verilmemektedir, çünkü bu, rastgele kod eklememe beklentisini ihlal eder. GRUB modülleri EFI ikili dosyasına gömülmemişse ve GRUB bunları eklemeye/`insmod`'a çalışırsa, GRUB şu mesajla önyükleme yapamayacaktır:

    hata: güvenli önyükleme politikası tarafından yasaklandı

Ubuntu, resmi derleme betiğine göre, imzalı GRUB EFI ikili dosyasına `grubx64.efi` aşağıdaki GRUB modüllerini gömer:

- temel modüller, bir CD'den veya basit bir bölümlendirilmiş diskten önyükleme için gerekli olanlar: `all_video`, `boot`, `btrfs`, `cat`, `chain`, `configfile`, `echo`, `efifwsetup`, `efinet`, `ext2`, `fat`, `font`, `gettext`, `gfxmenu`, `gfxterm`, `gfxterm_background`, `gzio`, `halt`, `help`, `hfsplus`, `iso9660`, `jpeg`, `keystatus`, `loadenv`, `loopback`, `linux`, `ls`, `lsefi`, `lsefimmap`, `lsefisystab`, `lssal`, `memdisk`, `minicmd`, `normal`, `ntfs`, `part_apple`, `part_msdos`, `part_gpt`, `password_pbkdf2`, `png`, `probe`, `reboot`, `regexp`, `search`, `search_fs_uuid`, `search_fs_file`, `search_label`, `sleep`, `smbios`, `squash4`, `test`, `true`, `video`, `xfs`, `zfs`, `zfscrypt`, `zfsinfo`
- platforma özgü modüller, x86_64-efi mimarisi için, örneğin:
  - `play`: önyükleme sırasında sesleri oynatmak için
  - `cpuid`: CPU'yu önyükleme sırasında okumak için
  - `tpm`: Ölçülen Önyükleme / Güvenilir Platform Modülleri desteği için
- gelişmiş modüller, şu modüllerden oluşur:
  - `cryptodisk`: düz mod şifrelenmiş disklerden önyükleme yapmak için
  - `gcry_algorithm`: belirli hash ve şifreleme algoritmalarını desteklemek için
  - `luks`: LUKS-şifrelenmiş disklerden önyükleme yapmak için
  - `lvm`: LVM mantıksal hacim disklerinden önyükleme yapmak için
  - `mdraid09`, `mdraid1x`, `raid5rec`, `raid6rec`: RAID sanal disklerden önyükleme yapmak için

GRUB modüllerinizin listesini `GRUB_MODULES` olarak adlandırdığımız bir shell değişkeni biçiminde oluşturmalısınız. En güncel Ubuntu betiğini kullanarak temel alabilir ve sisteminizde gereksiz olan modülleri çıkarabilirsiniz. Modülleri atlamak, önyükleme sürecini nispeten hızlandırır ve ESP bölümünde bazı alan kazandırır.

Ayrıca EFI ikili dosyasına, GRUB'un UEFI shim yükleyicisinden başlatıldığında güvenliği artırmak için bir Secure Boot Advanced Targeting (SBAT) dosyası/bölümü eklemeniz gerekir. Bu SBAT dosyası/bölümü, GRUB ikili dosyasının (sürüm, bakıcı, geliştirici, yukarı akış URL'si) meta verilerini içerir ve shim'in, güvenlik açıkları olan belirli GRUB sürümlerini yüklemeyi engellemesini kolaylaştırır [1][2], shim'in UEFI shim önyükleyici güvenli önyükleme yaşam döngüsü iyileştirmeleri belgesinde açıklandığı gibi.

İlk aşama UEFI önyükleyici shim, `grubx64.efi`'yi başlatmayı başarısız kılacaktır eğer `grubx64.efi`'den SBAT bölümü eksikse!

GRUB yüklendiyse, örnek bir SBAT .csv dosyası `/usr/share/grub/sbat.csv` altında sağlanır.

GRUB'u sağlanan `/usr/share/grub/sbat.csv` dosyası ve gereken tüm `GRUB_MODULES` ile yeniden yükleyin ve imzalayın:

    # grub-install --target=x86_64-efi --efi-directory=esp --modules=${GRUB_MODULES} --sbat /usr/share/grub/sbat.csv
    # sbsign --key MOK.key --cert MOK.crt --output esp/EFI/GRUB/grubx64.efi esp/EFI/GRUB/grubx64.efi
    # cp esp/EFI/GRUB/grubx64.efi esp/EFI/BOOT/grubx64.efi

Yeniden başlatın, MokManager içinde anahtarı seçin ve Güvenli Önyükleme çalışmalıdır.

#### Güvenli Önyükleme Kullanımı

Kurulumdan sonra Secure Boot#Implementing Secure Boot kısmında güvenli önyüklemeyi etkinleştirme talimatlarını takip edin.

Eğer CA Anahtarları yöntemini kullanıyorsanız, anahtar yönetimi, kaydını yapma ve dosya imzalama işlemleri sbctl kullanılarak otomatikleştirilebilir, detaylar için Secure Boot#Assisted process with sbctl kısmına bakın.

## BIOS sistemleri

### GUID Bölüm Tablosu (GPT) özgü talimatlar

Bir BIOS/GPT yapılandırmasında, bir BIOS önyükleme bölümü gereklidir. GRUB, `core.img` dosyasını bu bölüme gömer.

Not

- Bu yöntemi denemeden önce, tüm sistemlerin bu bölümleme şemasını desteklemeyebileceğini unutmayın. Daha fazla bilgi için Partitioning#GUID Partition Table kısmına bakın.
- BIOS/GPT yapılandırmasında GRUB'un yalnızca BIOS önyükleme bölümüne ihtiyacı vardır. BIOS/MBR yapılandırmasında, GRUB `core.img`'yi MBR sonrası boşluk kullanarak gömer. Ancak GPT'de, ilk bölümden önce garanti edilmiş kullanılmayan alan bulunmamaktadır.
- UEFI sistemleri için bu ekstra bölüme gerek yoktur, çünkü bu durumda önyükleme sektörlerinin gömülmesi gerçekleşmez. Ancak, UEFI sistemleri yine de bir EFI sistem bölümü gerektirir.

Bir mebibyte bölümü (`+1M` fdisk veya gdisk ile) dosya sistemi olmadan ve bölüm türü GUID `21686148-6449-6E6F-744E-656564454649` ile oluşturun.

- fdisk için bölüm türü `BIOS boot`'u seçin.
- gdisk için bölüm türü kodu `ef02`'yi seçin.
- parted için bölümde `bios_grub` bayrağını ayarlayın/etkinleştirin.

Bu bölüm herhangi bir sıra konumunda olabilir ancak diskin ilk 2 TiB'inde olmalıdır. Bu bölüm, GRUB kurulumu öncesinde oluşturulmalıdır. Bölüm hazır olduğunda, aşağıdaki talimatlara göre önyükleyiciyi kurun.

İlk bölümden önceki boşluk BIOS önyükleme bölümü olarak da kullanılabilir, ancak GPT hizalama spesifikasyonunun dışında olacaktır. Bölüm düzenli olarak erişilmeyeceğinden performans sorunları dikkate alınmayabilir, ancak bazı disk yardımcı programları uyarı verebilir. fdisk veya gdisk içinde, sektörden 34 başlayarak ve 2047'ye kadar genişleyen bir yeni bölüm oluşturun ve türü ayarlayın. Görülebilir bölümlerin tabanda başlaması için bu bölümü en sona eklemeyi düşünebilirsiniz.

### Master Boot Record (MBR) özgü talimatlar

Çoğu MBR bölümlendirilmiş sistemlerde, 512 baytlık MBR bölgesinin ardından ve ilk bölümün başlangıcından önceki boşluk genellikle 31 KiB'dir, eğer DOS uyumlu silindir hizalama sorunları bölüm tablosunda çözülmüşse. Ancak, GRUB'un `core.img`'sini gömmek için yaklaşık 1 ila 2 MiB'lik bir boşluk önerilir (FS#24103). GRUB'un `core.img`'ini gömmek için bu alanı sağlamak ve diğer 512-bayt sektör sorunlarını karşılamak için 1 MiB bölüm hizalaması destekleyen bir bölümleme aracı kullanmanız tavsiye edilir.

### Kurulum

grub paketini Install edin. (Zaten kurulu ise grub-legacyAUR'yi değiştirecektir.) Ardından:

    # grub-install --target=i386-pc /dev/sdX

burada `i386-pc` kasıtlı olarak kullanılır, gerçek mimarinizden bağımsız olarak ve `/dev/sdX` GRUB'un kurulacağı disk (bölüm değil) olmalıdır. Örneğin `/dev/sda` veya `/dev/nvme0n1`, veya `/dev/mmcblk0`. Blok cihaz adlandırma şeması hakkında daha fazla bilgi için Device file (Türkçe)#Blok aygıt isimleri kısmına bakın.

Şimdi ana yapılandırma dosyasını oluşturmanız gerekiyor.

Eğer `/boot` için LVM kullanıyorsanız, GRUB'u birden fazla fiziksel diske kurabilirsiniz.

İpucu GRUB'u bir USB bellek gibi başka bir cihaza kurmak gibi diğer yöntemler için GRUB/Tips and tricks#Alternative installation methods kısmına bakın.

grub-install(8) ve GRUB Kılavuzu üzerinde `grub-install` komutu hakkında daha fazla detay için bakın.

## Yapılandırma

Kurulu bir sistemde, GRUB her önyüklemede `/boot/grub/grub.cfg` yapılandırma dosyasını yükler. #Üretilmiş grub.cfg kısmını bir araç kullanarak veya #Özel grub.cfg kısmını manuel olarak oluşturmak için takip edebilirsiniz.

### Üretilmiş grub.cfg

Bu bölüm yalnızca `/etc/default/grub` yapılandırma dosyasını düzenlemeyi kapsar. Daha fazla bilgi için GRUB/Tips and tricks kısmına bakın.

Not Her zaman ana yapılandırma dosyasını değiştirdikten sonra `/etc/default/grub` ve/veya `/etc/grub.d/` dosyalarındaki değişikliklerden sonra tekrar oluşturmayı unutmayın.
Uyarı Bir yeni GRUB sürümü yapılandırma dosyasının sözdizimini değiştirirse, yapılandırmanın uyuşmazlığı sisteminizin önyüklenememesine neden olabilir: uyumsuz yapılandırma mevcut GRUB ikili dosyasının tanımadığı bir işlev kullanabilir, bu da beklenmeyen davranışlara yol açabilir.

#### Ana yapılandırma dosyasını oluştur

Kurulumdan sonra, ana yapılandırma dosyası `/boot/grub/grub.cfg` oluşturulmalıdır. Oluşturma süreci, `/etc/default/grub` ve `/etc/grub.d/` dosyalarındaki çeşitli seçeneklerden etkilenebilir. `/etc/default/grub` içindeki seçeneklerin listesi ve her birinin kısa açıklaması için GNU'nun dokümantasyonuna bakın.

Ek bir yapılandırma yapmadıysanız, otomatik oluşturma işlemi, yapılandırma dosyası için sistemin kök dosya sistemini belirleyecektir. Bunun başarılı olması için sistemin ya önyüklenmiş ya da chroot edilmiş olması önemlidir.

Not

- Varsayılan dosya yolu `/boot/grub/grub.cfg`'dir, `/boot/grub/i386-pc/grub.cfg` değil.
- Eğer grub-mkconfig i bir chroot veya systemd-nspawn konteynerinde çalıştırıyorsanız, `grub-probe: error: failed to get canonical path of /dev/sdaX` hatası alabilirsiniz. Bu durumda, BBS gönderisinde açıklandığı gibi chroot (Türkçe)#arch-chroot'un kullanımı kullanmayı deneyin.

grub-mkconfig aracını kullanarak `/boot/grub/grub.cfg` dosyasını oluşturun:

    # grub-mkconfig -o /boot/grub/grub.cfg

Varsayılan olarak, oluşturma betikleri tüm kurulu Arch Linux kernel'leri için menü girişlerini otomatik olarak ekler.

İpucu

- Bir kernel kurduktan veya kaldırdıktan sonra, yukarıdaki grub-mkconfig komutunu tekrar çalıştırmanız yeterlidir.
- Birden fazla GRUB girişini yönetme konusunda ipuçları için, örneğin hem linux hem de linux-lts çekirdeklerini kullanıyorsanız, GRUB/Tips and tricks#Multiple entries bölümüne bakın.

Diğer kurulu işletim sistemleri için otomatik olarak giriş eklemek için, #Diğer işletim sistemlerini algılama bölümüne bakın.

Ekstra özel menü girişleri eklemek için `/etc/grub.d/40_custom` dosyasını düzenleyebilir ve `/boot/grub/grub.cfg` dosyasını yeniden oluşturabilirsiniz. Ya da `/boot/grub/custom.cfg` dosyasını oluşturup buraya ekleyebilirsiniz. `/boot/grub/custom.cfg` dosyasındaki değişiklikler grub-mkconfig'i yeniden çalıştırmayı gerektirmez, çünkü `/etc/grub.d/41_custom` gerekli `source` ifadesini oluşturulan konfigürasyon dosyasına ekler.

İpucu `/etc/grub.d/40_custom` dosyası, `/etc/grub.d/nn_custom` oluşturmak için bir şablon olarak kullanılabilir, burada `nn` önceliği tanımlar ve betiğin yürütme sırasını gösterir. Betiklerin yürütme sırası, GRUB önyükleme menüsündeki yerini belirler. `nn` değerinin `06`'dan büyük olması, gerekli betiklerin önce çalıştırılmasını sağlar.

Özel menü girişi örnekleri için #Önyükleme menüsü girişi örnekleri kısmına bakın.

#### Diğer işletim sistemlerini algılama

grub-mkconfig'in diğer kurulu sistemleri aramasını ve menüye otomatik olarak eklemesini sağlamak için, os-prober paketini install edin ve diğer sistemlerin önyüklediği bölümleri mount edin. Ardından grub-mkconfig komutunu yeniden çalıştırın. Aşağıdaki çıktıyı alırsanız: `Warning: os-prober will not be executed to detect other bootable partitions`, `/etc/default/grub` dosyasını düzenleyin ve ekleyin/yorum satırı haline getirin:

    GRUB_DISABLE_OS_PROBER=false

Sonra tekrar deneyin.

Not

- Tam bağlama noktası önemli değildir, os-prober `mtab`'i okuyarak önyüklenebilir girişleri aramak için yerleri tanımlar.
- Diğer işletim sistemlerini her zaman dahil etmek için grub-mkconfig'i her çalıştırdığınızda bölümleri bağlamayı unutmayın.
- os-prober bir chroot içinde çalışırken düzgün çalışmayabilir. Bu durumu yaşarsanız, sistemi yeniden başlattıktan sonra tekrar deneyin.

İpucu GRUB'un son seçilen önyükleme girişini hatırlamasını da isteyebilirsiniz, GRUB/Tips and tricks#Recall previous entry kısmına bakın.

##### Windows

UEFI modunda kurulu Windows için, Windows Boot Manager'ı (`bootmgfw.efi`) içeren EFI sistem bölümü'nün bağlı olduğundan emin olun. Bunu tespit etmek ve bir giriş oluşturmak için `os-prober`'i root olarak çalıştırın.

BIOS modunda kurulu Windows için, Windows system partition'ını bağlayın (dosya sistemi etiketi `System Reserved` veya `SYSTEM` olmalıdır). Bunu tespit etmek ve bir giriş oluşturmak için `os-prober`'i root olarak çalıştırın.

Not BIOS modunda kurulu Windows için:

- NTFS bölümleri varsayılan Linux sürücüler ile bağlandığında her zaman algılanmayabilir. Eğer GRUB bunu algılamıyorsa, NTFS-3G'yi yüklemeyi ve tekrar bağlamayı deneyin.

This article or section is out of date.

Reason: Windows 7'den itibaren `bootmgr` sistem bölümüne yerleştirilir ve bu bölüm şifrelenmemiştir. (Discuss in Talk:GRUB (Türkçe))

- Şifrelenmiş Windows bölümlerinin bağlanmadan önce şifrelerinin çözülmesi gerekebilir. BitLocker için, bu cryptsetup veya dislockerAUR ile yapılabilir. Bu, os-prober'in doğru girişi eklemesi için yeterli olmalıdır.

#### Ek Argümanlar

Linux görüntüsüne özel ek argümanlar geçirmek için, `GRUB_CMDLINE_LINUX` ve `GRUB_CMDLINE_LINUX_DEFAULT` değişkenlerini `/etc/default/grub` dosyasında ayarlayabilirsiniz. İkisi bir araya getirilir ve düzenli önyükleme girişleri oluşturulurken çekirdeğe iletilir. Recovery önyükleme girişi için, yalnızca `GRUB_CMDLINE_LINUX` kullanılır.

Her ikisini de kullanmak zorunlu değildir, ancak faydalı olabilir. Örneğin, `GRUB_CMDLINE_LINUX_DEFAULT="resume=UUID=swap-bölümünün-uuid quiet"` şeklinde kullanabilirsiniz, burada `swap-bölümünün-uuid` swap bölümünüzün UUID'sidir ve uykudan sonra devam etmesini sağlar. Bu, geri yükleme önyükleme girişi oluşturur, ancak devam etmeyi ve `quiet`'in çekirdek mesajlarını bastırmasını içermez. Diğer (düzenli) menü girişleri ise bu seçenekleri içerebilir.

Varsayılan olarak, grub-mkconfig konfigürasyon için kök dosya sisteminin UUID'sini belirler. Bunu devre dışı bırakmak için, `GRUB_DISABLE_LINUX_UUID=true` satırını yorum satırından çıkarın.

GRUB geri yükleme girişini oluşturmak için `GRUB_DISABLE_RECOVERY`'in `true` olarak ayarlanmadığından emin olun `/etc/default/grub` dosyasında.

Daha fazla bilgi için Kernel parameters kısmına bakın.

#### Üst Düzey Menü Girişini Ayarlama

Varsayılan olarak, grub-mkconfig dahil edilen çekirdekleri `sort -V` kullanarak sıralar ve bu listede ilk çekirdeği üst düzey giriş olarak kullanır. Bu, örneğin, `/boot/vmlinuz-linux-lts`'nin `/boot/vmlinuz-linux`'ten önce sıralanmış olması durumunda, hem linux-lts hem de linux kuruluysa, LTS çekirdeğinin üst düzey menü girişi olacağı anlamına gelir ve bu istenmeyebilir. Bunu, `GRUB_TOP_LEVEL=path_to_kernel"` ile `/etc/default/grub` dosyasında belirterek geçersiz kılabilirsiniz. Örneğin, düzenli çekirdeğin üst düzey menü girişi olmasını istiyorsanız, `GRUB_TOP_LEVEL="/boot/vmlinuz-linux"` kullanabilirsiniz.

#### LVM

Uyarı GRUB ince ayrılmış mantıksal hacimleri desteklemez.

Eğer `/boot` veya `/` kök bölümü için LVM kullanıyorsanız, `lvm` modülünün önceden yüklenmiş olduğundan emin olun:

    /etc/default/grub

    GRUB_PRELOAD_MODULES="... lvm"

#### RAID

GRUB, RAID hacimlerinin yönetimini kolaylaştırır. Hacmi yerel olarak adresleyebilmeniz için `mdraid09` veya `mdraid1x` GRUB modüllerini yüklemeniz gerekir:

    /etc/default/grub

    GRUB_PRELOAD_MODULES="... mdraid09 mdraid1x"

Örneğin, `/dev/md0` şu şekilde olur:

    set root=(md/0)

bir bölümlenmiş RAID hacmi (örneğin `/dev/md0p1`) ise şu şekilde olur:

    set root=(md/0,1)

RAID1 olarak `/boot` bölümünü kullanıyorsanız (veya `/boot`'ün RAID1 kök bölümünde bulunduğu bir durumda), BIOS sistemlerinde, grub-install komutunu her iki diskte de çalıştırın, örneğin:

    # grub-install --target=i386-pc --debug /dev/sda
    # grub-install --target=i386-pc --debug /dev/sdb

Burada RAID 1 dizisi `/boot`'ü `/dev/sda` ve `/dev/sdb` üzerinde barındırmaktadır.

Not GRUB, Btrfs RAID 0/1/10'dan önyükleme yapmayı destekler, ancak RAID 5/6'yı desteklemez. RAID 5/6 için mdadm kullanabilirsiniz, bu GRUB tarafından desteklenir.

#### Şifreli /boot

GRUB, şifreli `/boot` ile önyükleme yapma için özel bir destek sağlar. Bu, bir LUKS blok aygıtını açarak yapılandırmasını okumak ve herhangi bir initramfs ve kernel'i yüklemek için yapılır. Bu seçenek, şifrelenmemiş boot bölümü sorununu çözmeyi amaçlar.

İpucu `/boot` ayrı bir bölümde tutulmak zorunda değildir; aynı zamanda sistemin kök `/` dizin ağacının altında da kalabilir.
Uyarı GRUB 2.12rc1, LUKS2 için sınırlı destek sunar. Ayrıntılar için aşağıdaki #LUKS2 bölümüne bakın.

Bu özelliği etkinleştirmek için, `/boot`'ın bulunduğu bölümü normal şekilde LUKS ile şifreleyin. Ardından `/etc/default/grub` dosyasına aşağıdaki seçeneği ekleyin:

    /etc/default/grub

    GRUB_ENABLE_CRYPTODISK=y

Bu seçenek, grub `core.img`'yi oluşturmak için grub-install tarafından kullanılır.

Bu seçeneği değiştirdikten veya bölümü şifreledikten sonra GRUB'u yüklediğinizden emin olun.

Ek bir değişiklik yapmadan, GRUB'un `/boot` bağlama noktasını erken önyüklemede açmak için iki kez şifre girilmesini istersiniz; ilki GRUB için, ikincisi ise initramfs tarafından kök dosya sisteminin kendisini açmak içindir. Bunu önlemek için bir anahtar dosyası kullanabilirsiniz.

Uyarı

- Ana yapılandırma dosyasını üretmek istiyorsanız, `/boot`'ın bağlandığından emin olun.
- `/boot` bağlama noktasını içeren sistem güncellemelerini gerçekleştirmek için, güncelleme yapmadan önce şifreli `/boot`'ın açıldığından ve bağlandığından emin olun. Ayrı bir `/boot` bölümü ile bu, crypttab kullanılarak ve bir anahtar dosyası kullanılarak önyükleme sırasında otomatik olarak yapılabilir.

Not

- Eğer özel bir tuş haritası kullanıyorsanız, varsayılan GRUB kurulumu bunu bilmez. Bu, LUKS blok aygıtını açmak için şifreyi nasıl gireceğinizle ilgilidir. GRUB/Tips and tricks#Manual configuration of core image for early boot'e bakın.
- Şifreyi girme isteminin görüntülenmesiyle ilgili sorunlar yaşarsanız (cryptouuid, cryptodisk veya "cihaz bulunamadı" hataları), GRUB'u yeniden yüklemeyi ve `--modules="part_gpt part_msdos"` seçeneğini `grub-install` komutunuza eklemeyi deneyin.

İpucu Güncellemeler sırasında ilgili dosyalara erişilmesi gerektiğinde `/boot`'ınızı otomatik olarak bağlamak için pacman kancaları kullanabilirsiniz.

##### LUKS2

LUKS desteği ile önyüklenebilir bir GRUB görüntüsü oluşturmak için `grub-install`'i #Kurulum bölümünde açıklandığı şekilde kullanın. Şu uyarılara dikkat edin:

- İlk LUKS2 desteği GRUB 2.06'ya eklendi, ancak GRUB 2.12rc1'de sadece kısmi sınırlamalarla ele alındı. Daha fazla bilgi için GRUB hata #55093'a bakın.
- GRUB 2.12rc1'den itibaren, `grub-install` LUKS2'yi açmak için bir çekirdek görüntüsü oluşturabilir. Ancak, yalnızca PBKDF2'yi destekler, Argon2'yi değil.
- Argon2id (cryptsetup varsayılanı) ve Argon2i PBKDF'ler desteklenmemektedir (GRUB hata #59409), yalnızca PBKDF2 desteklenir.

  İpucu grub-improved-luks2-gitAUR kullanabilirsiniz; bu, LUKS2 ve Argon desteği için yamanmış bir pakettir. Paketin Argon desteği bir UEFI sistemi gerektirir. [3]

Not GRUB 2.12rc1'den önce, `grub-mkimage` kullanarak özel bir GRUB yapılandırma dosyası ile bir EFI ikili dosyası manuel olarak oluşturmanız gerekiyordu. Örneğin, `/boot/grub/grub-pre.cfg`, `cryptomount`, `insmod normal` ve `normal` çağrılarıyla. Bu artık gerekli değildir, `grub-install` yeterlidir. Ancak, 2.06'dan güncelledikten sonra `grub-mkconfig -o /boot/grub/grub.cfg` komutunu en az bir kez çalıştırmanız gerekebilir.

Bir geçersiz şifre girerseniz ve GRUB kurtarma kabuğuna düşerseniz, `cryptomount -a` komutunu kullanarak tüm (umarım yalnızca bir) şifreli bölümü bağlamayı veya `cryptomount -u $crypto_uuid` komutunu kullanarak belirli bir bölümü bağlamayı deneyin. Ardından `insmod normal` ve `normal` komutlarını kullanmaya devam edin.

Doğru şifre girerseniz ancak hemen `Invalid passphrase` hatası alırsanız, doğru kriptografik modüllerin belirtildiğinden emin olun. `cryptsetup luksDump /dev/nvme0n1p2` komutunu kullanın ve hash fonksiyonunun (SHA-256, SHA-512) yüklü modüllerle (`gcry_sha256`, `gcry_sha512`) eşleşip eşleşmediğini ve PBKDF algoritmasının pbkdf2 olup olmadığını kontrol edin. Hash ve PBKDF algoritmaları mevcut anahtarlar için `cryptsetup luksConvertKey --hash sha256 --pbkdf pbkdf2 /dev/nvme0n1p2` komutuyla değiştirilebilir. Normal koşullarda, şifrenin işlenmesi birkaç saniye sürecektir.

### Özel grub.cfg

Bu bölüm, grub-mkconfige güvenmeden `/boot/grub/grub.cfg`'de GRUB önyükleme girişlerinin manuel olarak oluşturulmasını açıklar.

Temel bir GRUB yapılandırma dosyası şu seçenekleri kullanır:

- `(hdX,Y)` disk X teki bölüm Y yi belirtir, bölüm numaraları 1'den başlar, disk numaraları 0'dan başlar
- `set default=N` zaman aşımından sonra kullanıcı eylemi için seçilen varsayılan önyükleme girişini belirtir
- `set timeout=M` varsayılan önyüklemeyi başlatmadan önce kullanıcı seçiminde beklenen M süresini belirtir
- `menuentry "title" {entry options}` `title` başlığına sahip bir önyükleme girişini belirtir
- `set root=(hdX,Y)` önyükleme bölümünü ayarlar, çekirdek ve GRUB modüllerinin saklandığı yer (boot ayrı bir bölüm olmak zorunda değildir ve basitçe "kök" bölümünün altında bir dizin olabilir (`/`))

#### LoaderDevicePartUUID

GRUB'un systemd-gpt-auto-generator(8) tarafından GPT bölüm otomatik montajı için gerekli olan `LoaderDevicePartUUID` UEFI değişkenini ayarlaması için, `grub.cfg` dosyasına `bli` modülünü yükleyin:

    if [ "$grub_platform" = "efi" ]; then
      insmod bli
    fi

#### Önyükleme menüsü girişi örnekleri

İpucu Bu önyükleme girişlerini grub-mkconfig ile oluşturulmuş bir `/boot/grub/grub.cfg` kullanırken de kullanabilirsiniz. Bunları `/etc/grub.d/40_custom` dosyasına ekleyin ve ana yapılandırma dosyasını yeniden oluşturun veya `/boot/grub/custom.cfg` dosyasına ekleyin.

Birden fazla GRUB girişini yönetme ipuçları için, örneğin hem linux hem de linux-lts çekirdeklerini kullanırken, GRUB/Tips and tricks#Multiple entries'e bakın.

Archiso ve Archboot önyükleme menüsü girişleri için Multiboot USB drive#Boot entries'e bakın.

##### GRUB komutları

###### "Kapat" menü girişi

    menuentry "Sistem kapalı" {
    	echo "Sistem kapanıyor..."
    	halt
    }

###### "Yeniden Başlat" menü girişi

    menuentry "Sistem yeniden başlat" {
    	echo "Sistem yeniden başlatılıyor..."
    	reboot
    }

###### "UEFI Firmware Settings" menü girişi

    if [ ${grub_platform} == "efi" ]; then
    	menuentry 'UEFI Firmware Settings' --id 'uefi-firmware' {
    		fwsetup
    	}
    fi

##### EFI ikili dosyaları

UEFI modunda başlatıldığında, GRUB diğer EFI ikili dosyalarını zincirleyebilir.

İpucu Bu menü girişlerini yalnızca GRUB UEFI modunda başlatıldığında göstermek için, şu `if` ifadesine yerleştirin:

    if [ ${grub_platform} == "efi" ]; then
    	UEFI'ye özel menü girişlerini buraya ekleyin
    fi

###### UEFI Kabuk

UEFI Kabuk'u EFI sistem bölümünün köküne yerleştirerek ve bu menü girişini ekleyerek başlatabilirsiniz:

    menuentry "UEFI Shell" {
    	insmod fat
    	insmod chain
    	search --no-floppy --set=root --file /shellx64.efi
    	chainloader /shellx64.efi
    }

###### gdisk

gdisk EFI uygulamasını indirin ve `gdisk_x64.efi` dosyasını `esp/EFI/tools/` dizinine kopyalayın.

    menuentry "gdisk" {
    	insmod fat
    	insmod chain
    	search --no-floppy --set=root --file /EFI/tools/gdisk_x64.efi
    	chainloader /EFI/tools/gdisk_x64.efi
    }

###### Birleştirilmiş çekirdek görüntüsünü zincirleme

Eğer unified kernel image oluşturduysanız ve bunu Secure Boot veya diğer yöntemlerle sağladıysanız, önyükleme menüsüne ekleyebilirsiniz. Örneğin:

    menuentry "Arch Linux" {
    	insmod fat
    	insmod chain
    	search --no-floppy --set=root --fs-uuid FILESYSTEM_UUID
    	chainloader /EFI/Linux/arch-linux.efi
    }

##### Çift önyükleme

###### GNU/Linux

Diğer dağıtımın `sda2` bölümünde olduğunu varsayalım:

    menuentry "Diğer Linux" {
    	set root=(hd0,2)
    	linux /boot/vmlinuz (gerektiği gibi diğer seçenekleri ekleyin)
    	initrd /boot/initrd.img (diğer çekirdek bir tane kullanıyorsa/gerekiyorsa)
    }

Alternatif olarak GRUB'un doğru bölümü UUID veya dosya sistemi etiketi ile aramasına izin verebilirsiniz:

    menuentry "Diğer Linux" {
            # UUID'nin 763A-9CB6 olduğunu varsayarak
    	search --no-floppy --set=root --fs-uuid 763A-9CB6

            # OTHER_LINUX etiketi ile arama (bölüm etiketinin belirsiz olmadığından emin olun)
            #search --no-floppy --set=root --label OTHER_LINUX

    	linux /boot/vmlinuz (gerektiği gibi diğer seçenekleri ekleyin, örneğin: root=UUID=763A-9CB6)
    	initrd /boot/initrd.img (diğer çekirdek bir tane kullanıyorsa/gerekiyorsa)
    }

Diğer dağıtımda geçerli bir `/boot` klasörü, yüklenmiş GRUB, `grub.cfg`, çekirdek ve initramfs varsa, GRUB'u bu diğer `grub.cfg` dosyalarını önyükleme sırasında dinamik olarak yüklemesi için talimat verebilirsiniz. Örneğin, `hd0` ve dördüncü GPT bölümü için:

    menuentry "configfile hd0,gpt4"  {
            insmod part_gpt
            insmod btrfs
            insmod ext2
            set root='hd0,gpt4'
            configfile /boot/grub/grub.cfg
    }

Bu girişi seçtiğinizde, GRUB diğer bölümden `grub.cfg` dosyasını yükler ve o menüyü görüntüler. Dosyadaki komutlarla yapılan ortam değişiklikleri `configfile` döndüğünde korunmaz. İlk GRUB menüsüne dönmek için `Esc` tuşuna basın.

###### UEFI/GPT modunda kurulu Windows

Bu mod, Windows önyükleyicisinin bulunduğu yeri belirler ve menü girişi seçildiğinde GRUB'dan sonra zincirler. Buradaki ana görev EFI sistem bölümünü bulmak ve önyükleyiciyi buradan çalıştırmaktır.

Not Bu menü girişi yalnızca UEFI önyükleme modunda ve Windows bitliği UEFI bitliğiyle eşleştiğinde çalışacaktır. BIOS kurulu GRUB'da çalışmaz. Daha fazla bilgi için Dual boot with Windows#Windows UEFI vs BIOS limitations ve Dual boot with Windows#Boot loader UEFI vs BIOS limitations sayfalarına bakınız.

    if [ "${grub_platform}" == "efi" ]; then
    	menuentry "Microsoft Windows Vista/7/8/8.1 UEFI/GPT" {
    		insmod part_gpt
    		insmod fat
    		insmod chain
    		search --no-floppy --fs-uuid --set=root $hints_string $fs_uuid
    		chainloader /EFI/Microsoft/Boot/bootmgfw.efi
    	}
    fi

Burada `$hints_string` ve `$fs_uuid` aşağıdaki iki komutla elde edilir.

`$fs_uuid` komutu EFI sistem bölümünün UUID'sini belirler:

    # grub-probe --target=fs_uuid esp/EFI/Microsoft/Boot/bootmgfw.efi

    1ce5-7f28

Alternatif olarak `lsblk --fs` komutunu çalıştırarak EFI sistem bölümünün UUID'sini buradan okuyabilirsiniz.

`$hints_string` komutu EFI sistem bölümünün yerini belirler, bu durumda sabit disk 0:

    # grub-probe --target=hints_string esp/EFI/Microsoft/Boot/bootmgfw.efi

    --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1

Bu iki komut, Windows'un kullandığı ESP'nin `esp` dizininde montelenmiş olduğunu varsayar. Windows'un EFI dosyası yolunda büyük/küçük harf farklılıkları olabilir.

###### BIOS/MBR modunda kurulu Windows

Not GRUB `bootmgr`'yi doğrudan önyüklemeyi destekler ve zincirleme işlemi BIOS/MBR kurulumunda Windows'u önyüklemek için artık gerekli değildir.
Uyarı `/bootmgr`'nin bulunduğu sistem bölümüdür, "gerçek" Windows bölümü (genellikle `C:`) değil. Sistem bölümünün dosya sistemi etiketi `System Reserved` veya `SYSTEM` olup, bölümü yaklaşık 100 ila 549 MiB boyutundadır. Daha fazla bilgi için Wikipedia:System partition and boot partition sayfasına bakınız.

Bu bölümde, Windows bölümünüzün `/dev/sda1` olduğunu varsayarız. Farklı bir bölüm varsa, her `hd0,msdos1` örneğini değiştirin.

Not Bu menü girişleri yalnızca BIOS önyükleme modunda çalışır. UEFI kurulu GRUB'da çalışmaz. Daha fazla bilgi için Dual boot with Windows#Windows UEFI vs BIOS limitations ve Dual boot with Windows#Boot loader UEFI vs BIOS limitations sayfalarına bakınız.

Her iki örnekte de `XXXX-XXXX` dosya sistemi UUID'sidir, `lsblk --fs` komutu ile bulunabilir.

Windows Vista/7/8/8.1/10 için:

    if [ "${grub_platform}" == "pc" ]; then
    	menuentry "Microsoft Windows Vista/7/8/8.1/10 BIOS/MBR" {
    		insmod part_msdos
    		insmod ntfs
    		insmod ntldr
    		search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 XXXX-XXXX
    		ntldr /bootmgr
    	}
    fi

Windows XP için:

    if [ "${grub_platform}" == "pc" ]; then
    	menuentry "Microsoft Windows XP" {
    		insmod part_msdos
    		insmod ntfs
    		insmod ntldr
    		search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 XXXX-XXXX
    		ntldr /ntldr
    	}
    fi

Not Bazı durumlarda, GRUB Windows 8 temiz bir şekilde kurulmadan yüklenmiş olabilir, bu durumda Windows'u `\boot\bcd` ile hata almadan önyükleyemezsiniz (hata kodu `0xc000000f`). Bunu düzeltmek için Windows Kurtarma Konsolu'na gidin (kurulum diskinden `cmd.exe`) ve şu komutları çalıştırın:

    X:\> bootrec.exe /fixboot
    X:\> bootrec.exe /RebuildBcd

    GRUB'ı silmeden Windows'u onaracak olan bootrec.exe /Fixmbr komutunu kullanmayın.

Ya da, GRUB'ı silmeden çoğu hatayı düzelten Boot Repair işlevini kullanabilirsiniz. Ayrıca, hem hedef sabit diskinizi hem de önyüklenebilir cihazınızı YALNIZCA takılı tutmanız daha iyidir. Windows genellikle diğer cihazlar bağlıysa önyükleme bilgilerini onaramaz.

##### Etiketleri Kullanma

Dosya sistemi etiketlerini, dosya sistemlerine eklenen insan tarafından okunabilir dizgiler, `search` komutuna `--label` seçeneği kullanarak kullanmak mümkündür. Öncelikle, dosya sisteminizin bir etikete sahip olduğundan emin olun.

Ardından, etiketler kullanarak bir giriş ekleyin. Bir örnek:

    menuentry "Arch Linux, session texte" {
      search --label --set=root archroot
      linux /boot/vmlinuz-linux root=/dev/disk/by-label/archroot ro
      initrd /boot/initramfs-linux.img
    }

## Komut Shell'ini Kullanma

MBR, tüm GRUB modüllerini saklamak için çok küçük olduğundan, yalnızca menü ve birkaç temel komut burada bulunur. GRUB'un çoğu işlevi, ihtiyaç duyuldukça eklenen `/boot/grub/` içindeki modüllerde bulunur. Hata koşullarında (örneğin, bölümlendirme düzeni değişirse) GRUB önyükleme yapamayabilir. Bu durumda, bir komut shell'i görünebilir.

GRUB, birden fazla shell/komut istemcisi sunar. Menü okunamadığında ancak önyükleyici diski bulabiliyorsa, muhtemelen "normal" shell'ine düşersiniz:

    grub>

Daha ciddi bir sorun varsa (örneğin, GRUB gerekli dosyaları bulamazsa), "rescue" shell'ine düşebilirsiniz:

    grub rescue>

Rescue shell'i, normal shell'in kısıtlı bir alt kümesidir ve çok daha az işlevsellik sunar. Rescue shell'ine düştüğünüzde, önce "normal" modülünü eklemeyi, ardından "normal" shell'ini başlatmayı deneyin:

    grub rescue> set prefix=(hdX,Y)/boot/grub
    grub rescue> insmod (hdX,Y)/boot/grub/i386-pc/normal.mod
    rescue:grub> normal

### Pager Desteği

GRUB, uzun çıktı veren komutları okumak için pager'ı destekler (örneğin `help` komutu). Bu sadece normal shell modunda çalışır ve rescue modunda çalışmaz. Pager'ı etkinleştirmek için GRUB komut shell'inde şunu yazın:

    sh:grub> set pager=1

### Komut Shell Ortamını Kullanarak İşletim Sistemlerini Önyükleme

    grub>

GRUB'un komut shell ortamı, işletim sistemlerini önyüklemek için kullanılabilir. Yaygın bir senaryo, Windows / Linux'u bir sürücü/bölüm üzerinden chainloading ile önyüklemektir.

Chainloading, mevcut önyükleyiciden başka bir önyükleyiciyi yüklemek anlamına gelir, yani zincirleme önyükleme.

Diğer önyükleyici, bölümlendirilmiş bir diskin (MBR) başlangıcında, bir bölümün başlangıcında veya bölümsüz bir diskin (VBR) başlangıcında veya UEFI durumunda bir EFI ikili dosyası olarak yer alabilir.

#### Bir Bölümün VBR'sini Chainloading

    set root=(hdX,Y)
    chainloader +1
    boot

X=0,1,2... Y=1,2,3...

Örneğin, birinci sabit diskin birinci bölümünde depolanan Windows'u chainload etmek için:

    set root=(hd0,1)
    chainloader +1
    boot

Benzer şekilde, bir bölüme yüklenmiş GRUB chainloaded olabilir.

#### Bir Diskin MBR'sini veya Bölümsüz Bir Diskin VBR'sini Chainloading

    set root=hdX
    chainloader +1
    boot

#### UEFI Modunda Kurulu Windows/Linux'u Chainloading

    insmod fat
    set root=(hd0,gpt4)
    chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
    boot

`insmod fat` FAT dosya sistemi modülünü yüklemek için kullanılır, Windows önyükleyicisini EFI sistem bölümünde erişmek için. `(hd0,gpt4)` veya `/dev/sda4` bu örnekte EFI sistem bölümüdür. `chainloader` satırındaki giriş, chainloaded olacak .efi dosyasının yolunu belirtir.

#### Normal Yükleme

#Rescue Konsolunu Kullanma bölümündeki örneklere bakın.

### Rescue Konsolunu Kullanma

Önce #Komut Shell'ini Kullanma kısmına bakın. Standart shell'i etkinleştiremiyorsanız, bir çözüm olarak bir canlı CD veya başka bir kurtarma diski kullanarak yapılandırma hatalarını düzeltip GRUB'ı yeniden yüklemeyi deneyebilirsiniz. Ancak, böyle bir önyükleme diski her zaman mevcut olmayabilir (veya gerekli olmayabilir); rescue konsolu oldukça sağlamdır.

GRUB rescue'de mevcut komutlar `insmod`, `ls`, `set` ve `unset`'tir. Bu örnek `set` ve `insmod` kullanır. `set` değişkenleri değiştirir ve `insmod` yeni modüller ekler.

Başlamadan önce, kullanıcının `/boot` bölümünün yerini bilmesi gerekir (bu ayrı bir bölüm olabilir veya kök altında bir alt dizin olabilir):

    grub rescue> set prefix=(hdX,Y)/boot/grub

burada `X` fiziksel sürücü numarasını ve `Y` bölüm numarasını belirtir.

Not Ayrı bir önyükleme bölümünüz varsa, yoldan `/boot`'yi atlayın (yani `set prefix=(hdX,Y)/grub` yazın).

Konsol yeteneklerini genişletmek için `linux` modülünü ekleyin:

    grub rescue> insmod i386-pc/linux.mod

veya basitçe

    grub rescue> insmod linux

Bu, tanıdık olabilecek `linux` ve `initrd` komutlarını tanıtır.

Bir örnek, Arch Linux'u önyükleme:

    set root=(hd0,5)
    linux /boot/vmlinuz-linux root=/dev/sda5
    initrd /boot/initramfs-linux.img
    boot

Ayrı bir önyükleme bölümü (örneğin, UEFI kullanırken) ile, satırları uygun şekilde değiştirin:

Not Önyükleme ayrı bir bölüm olduğundan ve kök bölümünüzün bir parçası olmadığından, önyükleme bölümünü aynı prefix değişkeni gibi manuel olarak belirtmeniz gerekir.

    set root=(hd0,5)
    linux (hdX,Y)/vmlinuz-linux root=/dev/sda6
    initrd (hdX,Y)/initramfs-linux.img
    boot

Not `linux` komutunu çalıştırırken `error: premature end of file /YOUR_KERNEL_NAME` hatası alırsanız, `linux16` komutunu deneyebilirsiniz.

Arch Linux kurulumu başarıyla önyüklendikten sonra, kullanıcılar `grub.cfg`'yi gerektiği şekilde düzeltebilir ve ardından GRUB'ı yeniden yükleyebilirler.

GRUB'ı yeniden yükleyip sorunu tamamen çözmek için, gerekirse `/dev/sda`'yı değiştirin. Ayrıntılar için #Kurulum kısmına bakın.

## GRUB'ı Kaldırma

### UEFI Sistemleri

grubı kaldırmadan önce, başka bir önyükleyicinin kurulu ve devralacak şekilde yapılandırıldığından emin olun.

    $ efibootmgr

    BootOrder: 0003,0001,0000,0002
    Boot0000* Windows Boot Manager  HD(2,GPT,4dabbedf-191b-4432-bc09-8bcbd1d7dabf,0x109000,0x32000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)
    Boot0001* GRUB  HD(2,GPT,4dabbedf-191b-4432-bc09-8bcbd1d7dabf,0x109000,0x32000)/File(\EFI\GRUB\grubx64.efi)
    Boot0002* Linux-Firmware-Updater        HD(2,GPT,5dabbedf-191b-4432-bc09-8bcbd1d7dabf,0x109000,0x32000)/File(\EFI\arch\fwupdx64.efi)
    Boot0003* Linux Boot Manager    HD(2,GPT,4dabbedf-191b-4432-bc09-8bcbd1d7dabf,0x109000,0x32000)/File(\EFI\systemd\systemd-bootx64.efi)

Eğer `BootOrder`'da grub ilk giriş olarak yer alıyorsa, onu ön plana almak için başka bir önyükleyici kurun, örneğin yukarıda systemd-boot gibi. grub ardından bootnum kullanılarak kaldırılabilir.

    # efibootmgr --delete-bootnum -b 1

Ayrıca `esp/EFI/grub` ve `/boot/grub` dizinlerini de silin.

### BIOS Sistemleri

grubı herhangi bir başka BIOS önyükleyicisiyle değiştirmek için, sadece onları yükleyin; bu, MBR boot code'u üzerine yazar.

`grub-install`, `/boot/grub` dizinini oluşturur ve bu dizinin manuel olarak kaldırılması gerekir. Ancak bazı kullanıcılar bu dizini saklamak isteyebilirler, eğer grubı yeniden yüklemek isterlerse.

UEFI/GPT'ye geçiş yaptıktan sonra, MBR boot code'u `dd` kullanarak kaldırmak isteyebilirsiniz.

## Sorun Giderme

### Desteklenmeyen dosya sistemleri

GRUB, kök dosya sistemini desteklemiyorsa, desteklenen bir dosya sistemi ile alternatif bir `/boot` bölümü oluşturulmalıdır. Bazı durumlarda, GRUB'un geliştirme sürümü grub-gitAUR dosya sistemini yerel olarak destekleyebilir.

GRUB, desteklenmeyen bir dosya sistemi ile kullanıldığında, diskinizin UUID'sini çıkaramadığı için klasik olmayan kalıcı `/dev/sdXx` adlarını kullanır. Bu durumda, `/boot/grub/grub.cfg` dosyasını manuel olarak düzenlemeniz ve `root=/dev/sdXx`'i `root=UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX` ile değiştirmeniz gerekebilir. Cihazınızın UUID'sini almak için `blkid` komutunu kullanabilirsiniz, detaylar için Persistent block device naming kısmına bakın.

GRUB, F2FS'i 2.0.4 sürümünden itibaren desteklese de, `extra_attr` bayrağı etkinleştirilmiş bir F2FS bölümünden önyükleme dosyalarını doğru şekilde okuyamaz.

### Hata Ayıklama Mesajlarını Etkinleştirme

Not Bu değişiklik #Ana yapılandırma dosyasını oluştur kısmında üzerine yazılacaktır.

Şunları ekleyin:

    set pager=1
    set debug=all

`grub.cfg`'ye.

### msdos-tarzı Hata Mesajı

    grub-setup: warn: This msdos-style partition label has no post-MBR gap; embedding will not be possible!
    grub-setup: warn: Embedding is not possible. GRUB can only be installed in this setup by using blocklists.
                However, blocklists are UNRELIABLE and its use is discouraged.
    grub-setup: error: If you really want blocklists, use --force.

Bu hata, GRUB'ı bir VMware konteynerine kurmayı denerken ortaya çıkabilir. Hakkında daha fazla bilgi için buradan okuyabilirsiniz. Bu hata, ilk bölüm MBR'den hemen (blok 63) başladığında, ilk bölümden önce 1 MiB (2048 blok) boşluk bırakılmadığında meydana gelir. #Master Boot Record (MBR) özgü talimatlar kısmına bakın.

### UEFI

#### Yaygın Kurulum Hataları

- Bazı UEFI cihazlarında karşılaşılabilecek bir hata `Could not prepare Boot variable: Read-only file system` olabilir. `/sys/firmware/efi/efivars`'ı okuma-yazma izniyle yeniden bağlamanız gerekir.

      # mount -o remount,rw,nosuid,nodev,noexec --types efivarfs efivarfs /sys/firmware/efi/efivars

  Gentoo Wiki'de boot loader'ın nasıl kurulacağı hakkında bilgi edinin.
- Eğer grub-install çalıştırırken sysfs veya procfs ile bir sorun yaşarsanız ve `modprobe efivarfs` çalıştırmanız gerekiyorsa, yukarıdaki komut ile `efivarfs`'ı bağlamayı deneyin.
- `--target` veya `--directory` seçeneği olmadan, grub-install hangi firmware için kurulacağını belirleyemez. Bu durumda, `grub-install` `source_dir does not exist. Please specify --target or --directory` mesajını verecektir.
- Eğer grub-install çalıştırdıktan sonra `error: esp doesn't look like an EFI partition` hatasını alırsanız, bölüm muhtemelen FAT32 formatında değildir.

#### Firmware Boot Manager'da GRUB Girişi Oluşturma

`grub-install` otomatik olarak önyükleyici yöneticisinde bir menü girişi oluşturmaya çalışır. Eğer bunu yapmazsa, bir menü girişi oluşturmak için `efibootmgr` kullanma talimatları için UEFI#efibootmgr kısmına bakın. Ancak, sorun büyük ihtimalle CD/USB'nizi UEFI modunda önyüklemediğinizden kaynaklanıyordur, Installation guide (Türkçe)#Önyükleme modunu doğrulama kısmında açıklandığı gibi.

Firmware boot manager'da bir GRUB girişi oluşturma örneği olarak `efibootmgr -c` komutunu ele alın. Bu, `/dev/sda1`'in EFI Sistem Bölümü olduğunu ve `/boot/efi`'ye bağlı olduğunu varsayar. Bu, `efibootmgr`'in varsayılan davranışıdır. Bu, "Linux" adında yeni bir önyükleme seçeneği oluşturur ve önyükleme sırası listesinde üstteki sıraya koyar. Varsayılan OS Yükleyicisi `\EFI\arch\grub.efi`'dir.

#### Kurtarma kabuğuna geçiş

GRUB yükleniyor ancak kurtarma kabuğuna geçiş yapıyorsa ve herhangi bir hata mesajı göstermiyorsa, bu iki nedenden biri olabilir:

- Eksik veya yanlış yerleştirilmiş bir `grub.cfg` olabilir. Bu, GRUB UEFI `--boot-directory` ile kurulduysa ve `grub.cfg` dosyası eksikse meydana gelir,
- Ayrıca, `grubx64.efi` dosyasına sert kodlanmış olan önyükleme bölümü değiştiyse de bu durum yaşanabilir.

#### GRUB UEFI Yüklenmedi

Çalışan bir UEFI örneği:

    # efibootmgr -u

    BootCurrent: 0000
    Timeout: 3 seconds
    BootOrder: 0000,0001,0002
    Boot0000* GRUB HD(1,800,32000,23532fbb-1bfa-4e46-851a-b494bfe9478c)File(\EFI\GRUB\grubx64.efi)
    Boot0001* Shell HD(1,800,32000,23532fbb-1bfa-4e46-851a-b494bfe9478c)File(\shellx64.efi)
    Boot0002* Festplatte BIOS(2,0,00)P0: SAMSUNG HD204UI

Ekran sadece bir saniye kararıyorsa ve ardından bir sonraki önyükleme seçeneği deneniyorsa, bu gönderiye göre GRUB'ı bölüm köküne taşımanın yardımcı olabileceği belirtilmiştir. Önyükleme seçeneği silinmeli ve ardından yeniden oluşturulmalıdır. GRUB için giriş şu şekilde görünmelidir:

    Boot0000* GRUB HD(1,800,32000,23532fbb-1bfa-4e46-851a-b494bfe9478c)File(\grubx64.efi)

#### Varsayılan/geri dönüş önyükleme yolu

Bazı UEFI firmaları, UEFI NVRAM önyükleme girişlerini gösterebilmek için bilinen bir konumda önyüklenebilir bir dosya gerektirir. Bu durumda, `grub-install` `efibootmgr`'nin GRUB'u önyükleme girişine eklediğini belirtecek, ancak giriş VisualBIOS önyükleme sırası seçicisinde görünmeyecektir. Çözüm, GRUB'u varsayılan/geri dönüş önyükleme yoluna yüklemektir:

    # grub-install --target=x86_64-efi --efi-directory=esp --removable

Alternatif olarak, önceden yüklenmiş bir GRUB EFI çalıştırılabilir dosyasını varsayılan/geri dönüş yoluna taşıyabilirsiniz:

    # mv esp/EFI/grub esp/EFI/BOOT
    # mv esp/EFI/BOOT/grubx64.efi esp/EFI/BOOT/BOOTX64.EFI

### Geçersiz imza

Windows'u önyüklemeye çalışırken "geçersiz imza" hatası alıyorsanız, örneğin bölümleri yeniden yapılandırdıktan veya ek hard diskler ekledikten sonra, (re)GRUB'un cihaz yapılandırmasını kaldırıp yeniden yapılandırmasını sağlayın:

    # mv /boot/grub/device.map /boot/grub/device.map-old
    # grub-mkconfig -o /boot/grub/grub.cfg

`grub-mkconfig` artık bulunan tüm önyükleme seçeneklerini, Windows dahil, listelemelidir. Eğer çalışırsa, `/boot/grub/device.map-old`'yi kaldırın.

### Önyükleme Donmaları

GRUB, çekirdek ve başlangıç ramdisk'ini yükledikten sonra herhangi bir hata mesajı olmadan donarsa, `add_efi_memmap` çekirdek parametresini kaldırmayı deneyin.

### Diğer İşletim Sistemlerinden Arch Bulunamıyor

Bazı kullanıcılar, diğer dağıtımların Arch Linux'u otomatik olarak `os-prober` ile bulmakta sorun yaşadığını bildirmiştir. Bu sorun ortaya çıkarsa, `/etc/lsb-release` dosyasının varlığı ile algılamanın iyileştirilebileceği bildirilmiştir. Bu dosya ve güncelleme aracı, lsb-release paketi ile kullanılabilir.

### chroot İçinde Kurulumda Uyarı

Bir LVM sisteminde chroot ortamında (örneğin sistem kurulumu sırasında) GRUB'ı kurarken, şu tür uyarılar alabilirsiniz:

    /run/lvm/lvmetad.socket: connect failed: No such file or directory

veya

    WARNING: failed to connect to lvmetad: No such file or directory. Falling back to internal scanning.

Bu, `/run`'ın chroot içinde mevcut olmamasından kaynaklanır. Bu uyarılar, sistemin önyüklenmesini engellemeyecektir, her şey doğru yapıldığında kuruluma devam edebilirsiniz.

### GRUB Yavaş Yükleniyor

Disk alanı düşük olduğunda GRUB uzun süre yüklenebilir. Sorun yaşadığınızda `/boot` veya `/` bölümünde yeterli boş disk alanı olup olmadığını kontrol edin.

### error: unknown filesystem

GRUB, `error: unknown filesystem` hatası verebilir ve birkaç nedenden ötürü önyükleme yapmayı reddedebilir. Eğer tüm UUID'lerin doğru olduğundan ve tüm dosya sistemlerinin geçerli ve desteklendiğinden eminseniz, bu, BIOS Boot Partition'ın diskin ilk 2 TiB'i dışında bir yerde bulunmasından kaynaklanabilir [4]. Bu bölümü tamamen ilk 2 TiB içinde olacak şekilde bir bölümlendirme aracı kullanarak yerleştirin, ardından GRUB'u yeniden yükleyin ve yeniden yapılandırın.

Bu hata, desteklenmeyen özelliklere sahip bir ext4 dosya sisteminden de kaynaklanabilir:

- `large_dir` - desteklenmiyor.
- `metadata_csum_seed` - GRUB 2.11'de desteklenecek (commit).

Warning Yeni file system özelliklerini etkinleştirmeden önce GRUB'un desteğini kontrol ettiğinizden emin olun.

### grub-reboot Sıfırlanmıyor

GRUB'un kök Btrfs bölümlerine yazamadığı görülüyor [5]. Eğer grub-reboot kullanarak başka bir girişe önyükleme yaparsanız, bu yüzden diskteki ortamını güncelleyemez. Ya diğer girişten grub-reboot'u çalıştırın (örneğin çeşitli dağıtımlar arasında geçiş yaparken) ya da farklı bir dosya sistemi kullanmayı düşünün. "Sticky" bir girişi sıfırlamak için `grub-editenv create` komutunu çalıştırın ve `GRUB_DEFAULT=0`'ı `/etc/default/grub` dosyanıza ekleyin (`grub-mkconfig -o /boot/grub/grub.cfg`'yi unutmayın).

### Eski Btrfs Kurulumu Engelliyor

Bir sürücü, bir bölüm tablosu oluşturulmadan (örneğin /dev/sdx) Btrfs ile biçimlendirilmişse ve sonra bölüm tablosu yazılırsa, BTRFS formatının bazı bölümleri kalır. Çoğu yardımcı program ve işletim sistemi bunu görmez, ancak GRUB --force ile bile kurulum yapmayı reddeder.

    # grub-install: warning: Attempting to install GRUB to a disk with multiple partition labels. This is not supported yet..
    # grub-install: error: filesystem `btrfs' does not support blocklists.

Sürücüyü sıfırlayabilirsiniz, ancak verilerinizi bozmadan kolay bir çözüm Btrfs süperblokunu `wipefs -o 0x10040 /dev/sdx` ile silmektir.

### Windows 8/10 Bulunamıyor

Windows 8/10'da bulunan bir "Hiberboot", "Hybrid Boot" veya "Fast Boot" ayarı, Windows bölümünün bağlanmasını engelleyebilir, bu nedenle `grub-mkconfig` Windows kurulumunu bulamayabilir. Hiberboot'u Windows'ta devre dışı bırakmak, Windows'un GRUB menüsüne eklenmesini sağlayacaktır.

### GRUB Kurtarma ve Şifreli /boot

Bir şifreli /boot kullanıyorsanız ve doğru bir şifre girmekte başarısız olduysanız, grub-rescue istemcisine düşersiniz.

Bu grub-rescue istemcisinin sınırlı yetenekleri vardır. Önyüklemeyi tamamlamak için şu komutları kullanın:

    grub rescue> cryptomount <partition>
    grub rescue> insmod normal
    grub rescue> normal

Daha iyi bir açıklama için bu blog gönderisini[dead link 2023-04-23—HTTP 404] inceleyebilirsiniz.

### GRUB Yükleniyor Ancak Menü Görünmüyor

`/etc/default/grub` dosyasını kontrol edin, `GRUB_TIMEOUT` değeri `0` olarak ayarlandıysa, bunu pozitif bir sayıya ayarlayın: bu, varsayılan GRUB girişinin yüklenmeden önce geçen süreyi belirler. Ayrıca, `GRUB_TIMEOUT_STYLE`'in `hidden` olarak ayarlanıp ayarlanmadığını kontrol edin ve bunu `menu` olarak değiştirin, böylece menü varsayılan olarak gösterilir. Ardından ana yapılandırma dosyasını yeniden oluşturun ve yeniden başlatın.

Eğer bu işe yaramazsa, grafiksel terminal ile uyumsuzluk sorunları olabilir. `GRUB_TERMINAL_OUTPUT`'u `console` olarak `/etc/default/grub` dosyasında ayarlayarak GRUB grafiksel terminalini devre dışı bırakabilirsiniz.

## Ayrıca Bakınız

- Wikipedia:GNU GRUB
- Resmi GRUB Kılavuzu
- Ubuntu GRUB sayfası
- GRUB wiki sayfası, UEFI sistemler için derleme adımlarını açıklar
- Wikipedia:BIOS Boot partition
- GRUB'u Nasıl Yapılandırılır

Categories:

- Boot loaders (Türkçe)
- GNU (Türkçe)

Hidden categories:

- Pages or sections flagged with Template:Out of date
- Pages with dead links

GRUB (Türkçe)
Add topic