GRUB (Türkçe)

Ç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:
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.
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.
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-legacy
AUR
'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
dislocker
AUR
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-git
AUR
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-mkconfig
e 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:
(hd
X
,
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=(hd
X
,
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=(hd
X
,
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=(hd
X
,
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 (hd
X
,
Y
)/vmlinuz-linux root=/dev/sda6
initrd (hd
X
,
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-git
AUR
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