GRUB Sorunu Nasıl Çözülür?

Değerli arkadaşlar merhabalar. Bu bir geribildirimdir.

Bilgisayarımı yeni kurdum ve gerekli yazılımlarımı yükledim. Ayrı bir arşiv diskim var. İşlemlerim gereği GRUB’u güncelledim, güncellerken arşiv diskini sökmeyi unuttum. GRUB, Arşiv diskini de kaydetti.

BIOS’dan arşiv diski ile başlatınca böyle oluyor:

Yani içinde işletim sistemi olmayan diske GRUB kaydı girmiş.

1- Bu kaydı arşiv diskinden iptal etmek istiyorum.
2-Her kernel ve GRUB güncellemede diğer diskleri de kaydetmesin istiyorum.

Daha evvelki çabalarım yüzünden her iki sistemimi de kaybettim:

Yardımcı olmanızı rica ediyorum. Şu anda korkudan, yeni kurduğum windowslu diskimi takamıyorum.

NOT: Dual Boot istemiyorum. Tüm diskler birbirinden bağımsız olmalıdır.

Teşekkürler.

Merhaba, Şöyle bir kaynak buldum faydalı olabilir.

1. Arşiv Diskinden GRUB Kaydını Silme

Adım 1: Arşiv Diskinin Hangi Disk Olduğunu Tespit Et

Öncelikle arşiv diskinin hangi cihaz adıyla (örneğin, /dev/sdb, /dev/sdc) bağlı olduğunu tespit edelim. Terminalde şu komutu çalıştırın:

lsblk

Bu komut, tüm bağlı diskleri ve bölümleri gösterecektir. Arşiv diskini buradan tespit edin.

Örnek çıktı:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 500G  0 disk
├─sda1   8:1    0  512M  0 part /boot/efi
├─sda2   8:2    0 100G  0 part /
└─sda3   8:3    0 400G  0 part /home
sdb      8:16   0   1T   0 disk  <-- Arşiv Disk
└─sdb1   8:17   0   1T   0 part /mnt/archive

Bu durumda arşiv diskiniz /dev/sdb.

Adım 2: GRUB Kayıtlarını Arşiv Diskinden Silme

GRUB kaydı arşiv diskinizin MBR (Master Boot Record) veya GPT (GUID Partition Table) bölgesine yazılmış olabilir. Bu kaydı temizlemek için:

Dikkat: Yanlış disk seçmek sisteminizin çalışmamasına neden olabilir. Arşiv diskinizin doğru olduğundan emin olun.

sudo dd if=/dev/zero of=/dev/sdb bs=512 count=1

Bu komut, arşiv diskinizin ilk 512 baytını (MBR) sıfırlar ve GRUB kaydını kaldırır.


2. GRUB’un Diğer Disklere Yazmasını Engelleme

Her kernel veya GRUB güncellemesinde GRUB’un yalnızca belirli diske yazmasını sağlamak için grub.cfg dosyasını düzenlemeli ve update-grub komutunun hangi diskleri dikkate alacağını belirtmelisiniz.

Adım 1: GRUB Yapılandırma Dosyasını Düzenleyin

Aşağıdaki dosyayı düzenleyin:

sudo nano /etc/default/grub

Bu dosyada aşağıdaki satırı bulun:

GRUB_DISABLE_OS_PROBER=false

Bu satırı aşağıdaki şekilde değiştirin:

GRUB_DISABLE_OS_PROBER=true

Bu, GRUB’un diğer disklerde işletim sistemi aramasını engeller.

Adım 2: GRUB’u Yalnızca Belirli Bir Diske Kurmak

GRUB’un hangi diske yazılacağını belirtmek için:

sudo grub-install --target=x86_64-efi --bootloader-id=GRUB --recheck /dev/sda

Burada /dev/sda sistem diskinizdir. Arşiv diskinizi buraya dahil etmeyin.

Adım 3: GRUB Konfigürasyonunu Güncelleyin

Son olarak, GRUB’u güncelleyin:

sudo update-grub

3. Ekstra Önlemler

  1. GRUB Güncelleme Sırasında Diskleri Ayırın: Kernel veya GRUB güncellemeleri sırasında arşiv diskinizi sökerek GRUB’un bu diski dikkate almasını önleyebilirsiniz.
  2. BIOS Sırasını Düzenleyin: BIOS’tan arşiv diskinin boot sırasına eklenmesini engelleyin.

Bu adımları uyguladıktan sonra, GRUB yalnızca sistem diskinizi kullanacak ve arşiv diskinizi dikkate almayacaktır.

1 Beğeni

Teşekkür ederim.

  1. Yöntem HDD’nin ilk sektörlerine sıfır yazdırıyor ve içeriği uçuruyor. Çünkü MBR’nin içerisinde MFT dediğimiz bir tablo yeralır ve HDD’nin içeriği burada barındırılır. Bunu uçurursak, içerik uçar.

  2. Yöntemi yapay zekanın bu önerisine dayanarak denedim ve her iki sistemim de açılmaz oldu. Gerek komutlarla, gerekse kurulum medyalarıyla yaptığım müdahaleler sonuçsuz kaldı ve her iki sistemimi kaybettim. Yeniden kurulum yaptım.

Başka bir yolu olmalı.

Ben bunun yolunu daha önceki konunun son gönderisinde yazdım. Çözüm işletim sistemlerinin kurulumu anında bilgisayarda sadece kurulum yapılan diskin bağlı olması. Sonra hepsini birden bağlayıp, kullanırkende seçimi biostan yapmak.

Mustafa bey, öyle yapıyorum zaten. Devamlı uyguladığım bir yöntemdir.

Ancak üşenir de güncelleme yaparken diskleri çıkarmazsam herşey mahvoluyor. Ben de bunu engellemenin yoluna bakıyorum. Bakın şu an diskimi çıkarmayı unutup grub güncelledim, diske kendini kaydetti. Bundan sonra nasıl oldurmayız, bunun bir ayarı yok mu, ona bakıyoruz.

@cektor verdiğin ilk öneriyi riske girerek uygulamaya karar verdim.

Önce yapay zekaya bunun güvenilir olup olmadığını sordum. Teminatı aldım. Ama bana ilk 400kusur bayt şeklinde verdi.

dd if=/dev/zero of=/dev/sdb bs=446 count=1

Uyguladıktan sonra sorun çözüldü, artık BIOS diski bootable olarak görmüyor.

Prober komutuna ise güvenemiyorum. Çünkü daha evvel o değişiklik ile sistemi uçurdum. Yine aynısı olursa kafayı sıyırırım.

1 Beğeni

Ben bu şekilde yapıyorum ve bir sorun yaşamıyorum hiç bir zaman.

Demek ki hiç kernel güncellemesi yapmıyorsunuz. Gelen bazı güncellemeler içerisinde kernel güncellemesi de yer alır. O güncellemeyi yaparken disklerinizin hepsi takılıysa, grub güncellemesi sırasında tüm diskleriniz gruba kaydedilir.

Dikkatsizlik, unutkanlık vb gibi durumlarda sizin de ayarınız bozulabilir.

Çözebilirsek size de yarar.

Bu normalde olmuyor. Ofiste de böyle iki diskli sistemimiz var, MBR sistem. Diğer diskte işletim sistemi yok, seçince hiçbir şey açılmıyor doğal olarak. 2 senedir de aktif kullanıyoruz. Kurarken bir hata yapmışsınız muhtemelen ama düzeltilebilir.

MBR gerçekten de o diskteki ilk 512 byte daymış. Bunu normal sitelerde de söylüyorlar. Komut doğru yani.
sudo dd if=/dev/zero of=/dev/sdY bs=512 count=1

Diyelim ki BIOS ise, Pardus USB canlı sistem açıp:

mount /dev/sdb3 /mnt #home dizini hangisiyse, bakıp ona göre sda filan değiştirin.
for i in /dev /dev/pts /proc /sys /sys/firmware/efi/efivars /run; do mount -B $i /mnt/$i; done
chroot /mnt
grub-install /dev/sdb
update-grub
update-initramfs -c -k all #bu çok önemli kerneli tekrar derliyor.

Yok UEFI ise:

mount /dev/sdb3 /mnt #home dizini hangisiyse, bakıp ona göre sda filan değiştirin.
mount /dev/sdb1 /mnt/boot/efi #burası da olmasını istediğiniz EFI partition.
for i in /dev /dev/pts /proc /sys /sys/firmware/efi/efivars /run; do mount -B $i /mnt/$i; done
chroot /mnt
grub-install /dev/sdb
update-grub
update-initramfs -c -k all #bu çok önemli kerneli tekrar derliyor. 

Son olarak da pardus canlı sistemde başlangıç onarmada grub yeniden yükleme şeysi var.
Bu bende her zaman işe yaramıştır. Kaynaklar:
https://wiki.debian.org/GrubEFIReinstall

1 Beğeni

Kernel güncellemeleride dahil olmak üzere tüm güncellemeleri yapıyorum. Sadece Pardus’da değil bu arada tüm dağıtımları bu şekilde hiç sıkıntı yaşamadan kullandım, kullanmayada devam ediyorum.

Bunları not aldım.

Bir dahaki kernel güncellemesinde tüm disklerin GRUB’a dahil olmaması için ne yapmam gerektiğini araştırmaya devam edeceğim.

Bu arada kurulumu DVD ile, grafik arayüzle, ve tüm diski kullan diyerek yaptım. O esnada başka bir disk takılı değildi. Yükleme bittikten sonra güncelleme yaptım ve yazılımlarımı kurdum.

Merhaba tekrar,

Ben özellikle kurulum yaparken sadece kurulum yapılacak diski takıyorum eskiden beri. Windows kurarken de, başka bir dağıtım kurarken de.

Ama her kernel güncellemesinde disk çıkar, bilgisayarı kapat, yeniden tak, yeniden başlat… bununla uğraşmak istemiyorum. Daha önce kullandığım dağıtımlarda da kernelin güncellenmesiyle diğer diski(windows) kayıt altına alıyordu eminim. Ancak arşiv disklerini almıyordu. Nasıl bir değişiklik yaptılarsa artık arşiv diskleri de GRUB’a dahil oluyor. İyi de, ben her güncelleme geldiğinde disk çıkar-tak mı yapacağım?

Sıkıntı büyük.

etc/default/grub 'daki GRUB betiği dosyamın içeriği aşağıdaki gibi:

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Pardus`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX="iommu=soft"
GRUB_THEME="/usr/share/grub/themes/dolunay/theme.txt"

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
GRUB_GFXMODE=auto,1024x768,640x480
GRUB_GFXPAYLOAD_LINUX=1024x768

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

Yapay zeka, şöyle bir satır eklememi ve kaydetmemi öneriyor:

GRUB_DISABLE_OS_PROBER=true

Kodu girdim ve kaydedip terminalden GRUB’u yeniledim. Daha sonra sistem açılmaz oldu.

Müsait bir zamanda sistemin imajını alacağım ve bu komutu tekrar deneyeceğim. Açılmaz olursa imajdan geri yüklerim.

Güncel.

Dün, HDD’nin ilk sektörlerine sıfır yazdırıp yeniden başlattığımda bir sorun olmamıştı.

Bugün bilgisayarımı açarken BIOS aşamasında bekletti. Tam pardus başlayacakken siyah ekrana düştü ve şu hatalar görüldü:

Yeniden başlatarak Pardusa girebildim. Ancak masaüstünden diske erişmeye çalıştığımda, disk ışığı yanık şekilde kaldı, pardus dondu, power düğmesinden zorla kapattım.

Diski söküp windowsXP yüklü diğer bilgisayarıma takara başlattım. (Çünkü bu işi en iyi windowsXP yapıyor). Windows açılmadan evvel açık mavi ekrana düştü ve “…tutarlılık gözden geçirmesi gerekmekte…” şeklinde uyardı. İzin verdim ve 1-2dk’da bitti. Şimdi Pardus’a takıp açınca sorun ortadan kalktı.

Şunu not alalaım: GRUB’u silmek için ilk sektörlere sıfır yazdırma yaptıysanız, ardından en azından herhangi bir windows’a geçip fdisk çekin. Değilse benim gibi hata alırsınız.

Bu arada, bu GRUB yazdırma, GRUB’un işletim sistemi yükllü olmayan arşiv disklerini kapsama olayı önemli bir geribildirim. Ama pardus ekibinden en azından “sorunun nedenini bilmiyoruz” ya da “üzerinde çalışıyoruz” gibi bir yanıt beklerdim.

@kaan ? Söyleyecek birşeyin var mı? Önerin olursa değerlendirmek isterdim.

Bios’dan ahci, ide denenebilir.
Farklı bir çekirdekten açılış denenebilir.
Eski bir yöntem ama çekirdek parametresi denenebilir libata.force=3.0Gbps
smartctl ile disk sağlığı kontrol edilebilir.

1 Beğeni

merhaba öncellikle bu ilk gönderdiğiniz bir sürücü sorunu bu hatadan sonra durum nedir arşiv diski bios devre dışı bırakmayı deneyin

Gerek windows ortamında HDTune ile, gerekse linux ortamında GsmartControl ile yaptığım tüm testlerde disk sağlıklı görünüyor. Bad sector vs yok. HDTune testinde disk yüzeyi kaymak gibi görünüyor, iniş çıkış zigzag yok.

Sorun sadece bu arşiv diskinde değil. Şöyle açıklayayım: Sistemimi uçurmadan evvel, arşiv disklerimden birini çıkarınca sistemim hiç açılmaz oldu ve GRUB hata verdi. Diski yeniden takınca açılır oldu. GRUB, RAID benzeri bir yapı oluşturmuş. Disklerden biri çıkınca sorun oluşuyordu, şimdi durum nedir bilmiyorum. Sistemimi bu şekilde kullanmak zorundayım, çalışma düzenim bu benim.

BIOS ayarlarına gittim, çok anlamamakla beraber bir değişiklik yapamadım, BIOS’da herşey normal görünüyordu.

Bu konu son yanıttan 10 gün sonra otomatik olarak kapatıldı. Yeni yanıtlara artık izin verilmiyor.