BIOS Hatasında Linux Boots Nasıl Onarılır
Merhabalar,
GRUB güncellemelerinin, Linux sanal sunucu veya fiziksel sunucuların BIOS veya UEFI ayarlarına önyükleme yapmasına neden olduğu bilinmektedir. Bunun çözümü, gerçekten bilmeniz gereken yararlı bir sistem kurtarma hilesinden yararlanır.
Bir Vaka Çalışması: GRUB 2:2.06.r322
2022 yazında Arch ve Arch tabanlı Linux dağıtımları için bir sistem güncellemesi, GRUB’un yeni bir sürümünü içeriyordu . GRUB, gr ve birleşik önyükleyici anlamına gelir.
Önyükleyici, bilgisayarınız açıldığında önyükleme işlemini başlatan bir uygulamadır . Sonunda operasyonel ve erişilebilir bir işletim sistemi elde etmek için çeşitli yazılım araçları ve yardımcı programların doğru bölümden ve doğru sırayla başlatılması gerekir. GRUB bu olaylar dizisini başlatır.
Bilgisayarınızda birden fazla işletim sistemi kuruluysa, GRUB, hangi işletim sistemini kullanacağınızı seçebileceğiniz bir menü sunar. GRUB 2:2.06.r322’deki kod değişikliklerinden biri, yeni bir GRUB seçeneği için destek ekledi, --is-supported
. Bu seçenek, bellenime önyükleme özelliğinin mevcut olup olmadığını belirtmek için kullanılır. Öyleyse, GRUB, EUFI ayarlarınıza önyükleme yapmanıza izin vermek için önyükleme menüsüne bir giriş ekler.
Yeni seçeneğe “30_uefi-firmware.in” adlı bir komut dosyasında başvurulmuştu. Bu dosyanın farkı , bir if
ifadenin kaldırıldığını ve iki satır eklendiğini gösteriyor.
Yeni satırlardan biri bir değiştirme if
ifadesiydi. Diğer yeni satır içerir fwsetup --is-supported
. “fwsetup” içindeki “fw”, bellenim anlamına gelir. Ancak bu satır yeni ifadenin üzerindeif
olduğu için her zaman çalışacaktır. İfadenin gövdesi içinde if
olsaydı, yalnızca ifadedeki test if
doğru olarak çözüldüğünde çalışırdı.
Bu, hepsinde olmasa da birçok UEFI bilgisayarında sorunlara neden oldu . Yüklemiş olduğunuz GRUB sürümünün bu komutu destekleyip desteklemediğine bağlıydı. Etkilenen makineler iki şeyden birini yapar. Ya önyükleme işleminin hiçbir zaman tamamlanmadığı, ancak sürekli olarak yeniden başlatıldığı bir önyükleme döngüsüne girerler ya da bilgisayar doğrudan UEFI üretici yazılımı ayarlarına önyükleme yapar. Her iki durumda da, bilgisayarınızı Linux’ta önyüklemeye zorlamanın bir yolu yoktu.
Bunun gibi durumlarla karşılaştığınızda, her zaman tam bir yeniden yükleme yapma nükleer seçeneği vardır. Bu işe yarar, ancak sabit sürücünüzün nasıl bölümlendiğine bağlı olarak, yeni bir yedekleme olmadan veri kaybedebilirsiniz.
Düşük etkili yöntem chroot
ve bir Canlı USB veya Canlı CD/DVD kullanır. Bu, Linux bilgisayarınızda önyükleme yapamadığınızda veya oturum açamadığınızda her türlü sistem arızasını anlamak ve kollamak için iyi bir tekniktir.
Kullanacağımız Teknik
Bu tekniği kullanmak için, üzerinde Linux dağıtımı olan ve canlı bir Linux örneğine ön yükleme yapan, önyüklenebilir bir USB veya CD/DVD’ye sahip olmanız gerekir. Bunlara genellikle Canlı USB veya Canlı CD/DVD adı verilir. Tüm büyük dağıtımlar bu işlevi destekler.
Hiçbir şey yüklemeyeceğiz, bu nedenle canlı medyanın bilgisayarınıza yüklediğiniz dağıtımla aynı olması gerekmez. Örneğin, bir EndeavourOS bilgisayarını onarmak için bir Ubuntu USB kullanabilirsiniz . Herhangi bir canlı ortama erişiminiz yoksa, bir görüntüyü indirmek ve bir USB bellek çubuğuna veya bir CD/DVD’ye yazmak için başka bir bilgisayar kullanmanız gerekir.
Canlı ortamdan önyükleme yaptığınızda , mevcut dosya sisteminizi bağlayabilir ve bunlara erişebilirsiniz. Yüklü dosya sisteminiz, canlı ortamdan başlatılan Linux dosya sisteminin bir parçası olarak görünecektir. Bu harika. Erişebilirsek, tamir etme şansımız var. Ama bir sorunu gündeme getiriyor.
Bu karma dosya sisteminin kökü, kurulu dosya sisteminizin kökü değil, canlı medya dosya sisteminin köküdür. Linux sisteminizde yapılandırılan dosya yollarının doğru hedef konumlarına başvurmasını sağlamak için – canlı Linux’un köküne göre bir yerde değil, dosya sisteminizin içinde bir yerde – kökünüzü işaret eden yeni bir kök ayarlamak için kullanmamız gerekir. chroot
yüklü dosya sistemi. Başka bir deyişle, “/” ile başlayan yollar, başlangıç noktası olarak dosya sisteminizin kökünü kullanır.
Bunun için kullandığımız test bilgisayarı ext4
dosya sistemini kullanıyor ancak bu tekniği diğer dosya sistemlerinde de kullanabilirsiniz. Sadece hangi bölümleri veya birimleri bağlamanız gerektiğini ve bunları nereye monte edeceğinizi belirlemeniz gerekir. İlkeler aynı.
Uygulamaya koymak
Önyüklenebilir bir USB sürücü oluşturduk ve sorunlu bilgisayarımızı ondan başlattık. Kullandığımız dağıtım EndeavourOS idi . EndeavourOS canlı medya, XFCE 4 masaüstü ortamına açılıyor.
Dosya sisteminizin kökünü hangi bölümlerin tuttuğunu ve önyükleme bölümünün hangisi olduğunu belirlemek için bir terminal penceresi açın ve fdisk
komutu kullanın. -l
(Liste bölümü) seçeneğini kullanıyoruz . Sizin de kullanmanız gerekecek sudo
.
sudo fdisk -l
“EFI Sistemi” ve “Linux dosya sistemi” etiketli girişleri görene kadar çıktıyı kaydırın.
Bu bilgisayarda ikisi de sda
sabit diskte. Bölüm etiketlerinde belirtildiği gibi bir ve iki bölümlerde bulunurlar /dev/sda1
ve /dev/sda2
.
Bilgisayarınızda farklı sabit disklerde ve bölümlerde olabilirler. Bulundukları bölümleri not etmeye dikkat edin, bunları sonraki komutlarda kullanmamız gerekecek.
Bu bölümlerin üzerindeki dosya sistemlerini canlı dosya sistemine bağlayarak bağlamamız gerekiyor. mount
Komut bunu bizim için yapacak . fdisk
Unutmayın, bölüm etiketlerinizin farklı olması muhtemeldir, bu nedenle komutunuzun sonuçlarından olanları kullandığınızdan emin olun .
sudo mount /dev/sda2 /mnt
sudo mount /dev/sda1 /mnt/boot/efi
Dosya sisteminin etkin kökünün gerçek, kurulu dosya sisteminizin kökünden başlamasını sağlamak için, chroot
kökü “/mnt” bağlama noktası olarak ayarlamak için kullanacağız. Bu, kurulu dosya sisteminizin kökünün canlı dosya sistemine aşılandığı yerdir.
sudo chroot /mnt
Komut isteminin artık etkin bir şekilde root olarak oturum açtığınızı ve bilgisayarınızın dosya sisteminin “/” kök dizininde olduğunuzu gösterecek şekilde değiştiğini unutmayın .
“/home” dizinine geçerek ve içinde hangi dizinlerin bulunduğunu kontrol ederek bunu kolayca test edebiliriz.
cd /ev
ls
Kendi kullanıcı hesabınız için bir dizin de dahil olmak üzere, bilgisayarınızda yapılandırılmış her kullanıcı için bir dizin görmelisiniz. Bu bilgisayarın “dave” adında tek bir kullanıcısı var. Komutu kullanmadan cd /home
önce chroot
kullansaydık, canlı dosya sisteminin “/home” dizinine girerdik.
Açık olmak gerekirse, artık gerçek dosya sisteminize kök kullanıcı olarak erişiyorsunuz , bu yüzden dikkatli olun.
GRUB 2:2.06.r322 ile sorunu çözmek için tek yapmamız gereken grub-install
komutu çalıştırmaktı.
grub-kurulum
grub-install
Böyle körü körüne koşmak genellikle tavsiye edilmez. Bu durumda, gerekli olan buydu.
Onar veya Değiştir
Farklı bir sorunu düzeltmeye çalışıyorsanız, sorununuz için uygun çözüm için dağıtımınıza ilişkin forumları kontrol etmeniz gerekir. Yaygın bir şikayetse, yakında bunun için bir çözüm bulacaksınız.
En azından artık dosya sisteminize erişebildiğinize göre, verilerinizi bazı çıkarılabilir ortamlara kopyalayabilirsiniz. Tam bir yeniden yükleme yapmaya karar verirseniz, veri kaybetmezsiniz.