Her zaman söylediğim gibi, benim ilk göz ağrım KDE’dir. Uzun yıllar sadece KDE dağıtımlarını kullandım. Ancak KDE4′ün gelişiyle birlikte bu durum değişti. KDE4′ün işlevselliği geri plana ittiğini düşündüğüm için KDE kullanmaktan vazgeçtim ve GNOME kullanmaya başladım.
GNOME şu anda bütün ihtiyaçlarımı temiz ve sade bir biçimde karşıladığı için çok uzun zamandır KDE kullanmıyorum. Ancak her şeye rağmen, eski bir KDE tutkunu olarak, KDE4′ün son halini merak etmiyor da değilim.
Bu merakımı gidermek için, piyasadaki en iyi KDE dağıtımlarından biri olduğu söylenen Mandriva’nın en son sürümünü indirip Ubuntu’nun yanına kurmaya karar verdim.
Mandriva kurulumunda herhangi bir problem olmadı ve Mandriva bilgisayara başarıyla kuruldu.
Kurulumdan sonra bilgisayarı yeniden başlattığımda tabii ki Ubuntu Mandriva’nın Grub listesinde yoktu…
Bu noktada şöyle bir not düşelim. Ubuntu Grub 2′yi kullanıyor. Mandriva ise Grub 1′i… Ben şahsen bilgisayarımda Grub 1 yerine Grub 2 kullanmak istediğim için, Ubuntu’nun Çalışan CD’si yardımıyla Mandriva’nın Grub’ını kaldırıp onun yerine Ubuntu’nun Grub 2′sini kurdum. Böylece Ubuntu’yu açıp “update-grub” komutunu verdiğimde Mandriva da otomatik olarak Grub 2 menüsüne yerleşecekti…
Dediğim gibi yapıp Ubuntu’yu açtıktan sonra “update-grub” komutunu verdim ve bilgisayarı yeniden başlattım. Aynen beklediğim gibi, Ubuntu’nun Grub 2 menüsüne Mandriva da otomatik olarak yerleşti.
Mandriva’yı açmak için menüdeki Mandriva girdisine tıkladım, ama işler hiç de beklediğim gibi gitmedi. Mandriva açılırken “Kernel Panic” hatası aldım!…
Sanırım Grub 1 ve Grub 2 arasındaki sabit disk isimlendirme uyumsuzluğu nedeniyle “update-grub” komutu Mandriva’yı menüye eklerken parametreleri hatalı kaydediyor.
Bu düşünceden yola çıkarak Ubuntu’yu açtım ve /boot/grub/grub.cfg dosyasını kontrol ettim. Orada Mandriva girdisi şu şekildeydi:
menuentry “Linux (on /dev/sda3)” {
insmod part_msdos
insmod ext2
set root=’(hd0,msdos3)’
search –no-floppy –fs-uuid –set 4ead9a53-b0b5-4561-854a-280eede078f9
linux /boot/vmlinuz BOOT_IMAGE=linux root=UUID=4ead9a53-b0b5-4561-854a-280eede078f9 resume=UUID=be527077-2b73-4aa4-a3cb-ec1bde3f23ef splash=silent vga=788
initrd (hd0,2)/boot/initrd.img
}
Mandriva’nın açılmasını engelleyen şey initrd (hd0,2)/boot/initrd.img satırındaki “(hd0,2)” kısmı… Önceki satırda zaten “set root” parametresiyle root bölümünün ne olacağı belirtilmiş. O yüzden initrd’nin başında “hd0,2″ parametresinin olması işleri karıştırıyor.
Ancak şöyle bir sorun var: Eğer grub.cfg dosyasındaki bu satırı elle düzeltirsek, “update-grub” komutunun her çalışışında dosya eski haline döner ve Mandriva yine açılmaz olur. Burada yapılacak en iyi şey bence /etc/grub.d dizini altındaki “40_custom” adlı dosyayı düzenleyerek, sadece istediğimiz satırları içeren bir Grub menüsü oluşturmak… Bu işlemi şöyle yapıyoruz:
1. /boot/grub/grub.cfg dosyasını açıyoruz,
2. Bu dosyanın ortalarına doğru “menuentry” kelimesiyle başlayan birtakım bloklar bulunur. İşte “menuentry” kelimesiyle başlayıp “}” işaretiyle biten bu bloklar, Grub menüsünde gördüğünüz işletim sistemlerini temsil eder.
3. Özelleştirilmiş Grub menümüzde bulunmasını istediğimiz bütün işletim sistemlerini temsil eden bu “menuentry” bloklarını tek tek alıp /etc/grub.d/40_custom dosyasının içine kopyalayacağız.
4. 40_custom dosyasını açtığınızda, orada şu satırları göreceksiniz:
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type #the menu entries you want to add after this comment. Be careful not to #change the ‘exec tail’ line above.
Bu satırlara hiç dokunmadan, “menuentry” bloklarını tek tek bu dosyaya kopyalayacağız. Mesela benim 40_custom dosyam şöyle görünüyor:
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type #the menu entries you want to add after this comment. Be careful not to #change the ‘exec tail’ line above.
menuentry ‘Ubuntu, with Linux 2.6.35-22-generic’ –class ubuntu –class gnu-linux –class gnu –class os {
recordfail
insmod part_msdos
insmod ext2
set root=’(hd0,msdos2)’
search –no-floppy –fs-uuid –set 1b08ec44-9e06-4070-b6dc-d66b0629ad53
linux /boot/vmlinuz-2.6.35-22-generic root=UUID=1b08ec44-9e06-4070-b6dc-d66b0629ad53 ro quiet splash
initrd /boot/initrd.img-2.6.35-22-generic
}
menuentry “Mandriva (on /dev/sda3)” {
insmod part_msdos
insmod ext2
set root=’(hd0,msdos3)’
search –no-floppy –fs-uuid –set 4ead9a53-b0b5-4561-854a-280eede078f9
linux /boot/vmlinuz BOOT_IMAGE=linux root=UUID=4ead9a53-b0b5-4561-854a-280eede078f9 resume=UUID=be527077-2b73-4aa4-a3cb-ec1bde3f23ef splash=silent vga=788
initrd /boot/initrd.img
}
Gördüğünüz gibi, Mandriva’ya ait menuentry bloğunu 40_custom dosyasına kopyalarken fazladan yazılmış (hd0,2) parametresini sildim.
5. Şimdi yapılması gereken bir işlem daha var: “update-grub” komutu verdiğimizde isteğimiz dışındaki girdilerin de otomatik olarak Grub menüsüne yerleşmesini engellemek için şu komutu vermemiz gerekiyor:
sudo chmod -x /etc/grub.d/10_linux /etc/grub.d/20_memtest86+ /etc/grub.d/30_os-prober
Böylece grub.cfg dosyasını oluşturan özel betikler üzerindeki çalışma yetkisini almış olduk. Bu sayede bu betikler grub.cfg dosyasına müdahale edemeyecek… Bu durumda, grub.cfg dosyası üzerinde sadece bizim hazırladığımız 40_custom betiği değişiklik yapabilecek.
Yukarıda bahsettiğim bu sorun sadece Mandriva ve Ubuntu arasında değil, farklı Grub sürümlerini kullanan bütün dağıtımlar arasında mevcuttur. Yani eğer kullandığınız işletim sistemi Grub menüsünde göründüğü halde açılmıyorsa, muhtemelen sorun Grub 1 ve Grub 2 arasındaki uyumsuzluktan kaynaklanıyordur.
istihza GNU/Linux Grub 2, Kernel Panic, Mandriva, Ubuntu, update-grub
Son Yorumlar