Linux çekirdeğini adım adım indirin, yapılandırın, derleyin ve kurun.

Son Güncelleme: 17/12/2025
Yazar: isaac
  • Kendi çekirdeğinizi derlemek, performansı, güvenliği ve desteği optimize etmenizi sağlar. donanım Modülleri, dosya sistemlerini ve belirli seçenekleri ayarlamak.
  • Standart süreç, bağımlılıkların yüklenmesini, kernel.org'dan kaynak kodlarının indirilmesini, mevcut yapılandırmanın yeniden kullanılmasını ve make menuconfig veya xconfig ile yapılandırmayı içerir.
  • Çekirdek ve modüllerin derlenip kurulması, initramfs'nin doğru şekilde oluşturulması ve yeni çekirdeğin GRUB'a entegre edilmesi, sorunsuz bir çalışma sağlamak için çok önemlidir. çizme temizlendi.
  • Eski çekirdekleri korumak ve sorunlu bir çekirdeği geri alma veya kaldırma yöntemini bilmek, herhangi bir dağıtımda güvenli bir şekilde deneme yapmanın anahtarıdır.

Linux çekirdeğini indirme, derleme ve yükleme kılavuzu

Çekirdeği derleyin Linux Bu, meraklı kullanıcıyı gerçekten isteyen kullanıcıdan ayıran görevlerden biridir. işletim sisteminin derinliklerine inmekGNU/Linux'u günlük olarak kullanmak için zorunlu değil, ancak makinenizin nasıl çalıştığını daha iyi anlamak, donanımdan en iyi şekilde yararlanmak ve sistemi kendi zevkinize göre ince ayar yapmak için harika bir yoldur.

Bu kılavuzda adım adım nasıl yapılacağını göreceksiniz Sıfırdan bir Linux çekirdeğini indirin, yapılandırın, derleyin ve kurun. Debian tabanlı dağıtımları (Debian, Ubuntu, Mint ve türevleri) ve Fedora veya CentOS gibi diğer dağıtım ailelerine uygulanabilecek genel kavramları ele alacağız. Ayrıca bunu neden yapmak isteyebileceğinizi, hangi araçlara ihtiyacınız olacağını, mevcut çekirdek yapılandırmanızı nasıl yeniden kullanacağınızı, Docker veya belirli donanımlar için seçenekleri nasıl ayarlayacağınızı ve bir sorun çıkması durumunda nasıl geri döneceğinizi de inceleyeceğiz.

Kendi çekirdeğinizi derlemekle neden ilgilenebilirsiniz?

Herhangi bir şeye dokunmadan önce, ne istediğiniz konusunda net olmanız önemlidir: Çekirdeği derlemek her zaman gerekli değildir.Ancak bunu yapmanın birçok geçerli sebebi var.

  • performans ve verimlilikKullanmadığınız sürücüleri ve özellikleri kaldırmak, sisteminizin daha hızlı açılmasını sağlayabilir, daha az RAM kullanmasına yardımcı olabilir ve belirli iş yükleri altında gecikmeyi azaltabilir.
  • güvenlikİhtiyaç duymadığınız özellikleri veya modülleri devre dışı bırakmak, saldırı yüzeyini azaltır. Daha minimalist bir çekirdek, birçok bağlamda daha güvenli bir çekirdektir.
  • Belirli donanımlar için destekBazen dağıtımınız henüz ihtiyacınız olan sürücüyü içermez veya devre dışı bırakılmıştır; kendi çekirdeğinizi derleyerek bunu yapabilirsiniz. Donanımınıza özel desteği etkinleştirin. (ağ kartları, RAID, cihazlar) depolama nadir, vb.).
  • Özel fonksiyonlarYeni bir görev zamanlayıcı, sanallaştırma için özel özellikler, Docker, konteynerler, BPF, io_uring veya varsayılan olarak etkinleştirilmemiş diğer gelişmiş özellikleri denemek isteyebilirsiniz.
  • Öğrenme ve denemeÇekirdeği derlemek oldukça basit bir yöntemdir. GNU/Linux sisteminin iç yapısının nasıl organize edildiğini öğrenin.Donanımın nasıl başlatıldığı ve modüllerin nasıl entegre edildiği.

Ancak, bilgisayarı açıp internette gezinmek ve bunun dışında pek bir şey yapmak istemeyen bir ev kullanıcısı için, Çekirdeği elle derlemek, sinekleri topla öldürmeye benzer.Bu uzun ve hassas bir süreç ve yol boyunca biraz yemek yemek normal. çekirdek panik İnce ayar yapmadan önce. Eğer kurcalamayı seviyorsanız, buyurun; sevmiyorsanız, dağıtımınızın resmi paketlerine bağlı kalmanız en iyisidir.

Linux çekirdeği tam olarak nedir?

Linux çekirdeği, sistemin merkezi bileşenidir: Donanım ile diğer programlar arasında yer alan yazılım.Bellek, süreçler, dosya sistemleri, giriş/çıkış aygıtları, ağ, güvenlik ve daha birçok şeyin yönetiminden sorumludur.

Linux 1991 yılında başladı. Linus Torvalds'ın kişisel bir projesi Özgür bir çekirdek oluşturmak için. O zamandan beri muazzam bir şekilde büyüdü: bugün, binlerce geliştirici tarafından lisans altında sürdürülen on milyonlarca satır koddan bahsediyoruz. GPLv2Genellikle "Linux" olarak adlandırdığımız sistem aslında bir kombinasyondur. Linux çekirdeği + GNU araçları ve diğer bileşenler Dağıtımı kimler organize ediyor?

Özel bir çekirdek derlediğinizde, yaptığınız şey bir ikili dosya oluşturmaktır (genellikle...) /boot/vmlinuz-sürüm) artı bir dizi modül /lib/modüller/sürüm, aşağıdakiler gibi dosyalar eşliğinde sistem haritası, yapılandırma kullanılan yapılandırma ve ilk önyükleme görüntüsü ile (initrd veya initramfs).

Çekirdeği derlemek için gereken temel araçlar

Linux çekirdeğini kaynak koddan derlemek için eksiksiz bir geliştirme ortamına ihtiyacınız vardır. Debian, Ubuntu ve Mint sistemlerinde bu genellikle şu kurulum işlemlerini içerir: build-esential ve bir dizi ek kütüphane ve yardımcı program.

Birçok klasik rehber aşağıdaki gibi setler önermektedir (Bunları yerleşim planınıza göre uyarlayabilirsiniz.):

  • Debian/Ubuntu'da minimum ayarlar nispeten modern bir çekirdek için:sudo apt-get install build-essential libncurses-dev bison flex libssl-dev libelf-dev libudev-dev libpci-dev libiberty-dev dkms openssl bc autoconf
  • Debian paketleme ortamı Çekirdek .deb paketlerini oluşturmak için:sudo apt install autoconf automake autotools-dev bison build-essential dh-make debhelper debmake devscripts dpkg fakeroot file gfortran git gnupg fp-compiler lintian patch pbuilder perl quilt xutils-dev

Fedora, CentOS ve türevlerindeYaklaşım biraz değişiyor, ancak temel fikir aynı kalıyor: bir dizi geliştirme aracı yükleyin ve yapılandırma arayüzleri (metin ve grafik) için kütüphaneler. Örneğin, aşağıdakiler yaygın olarak kullanılır. komutlar tarzına dair:

su -c 'yum groupinstall "Development Tools"'
su -c 'yum install ncurses-devel qt-devel unifdef'

Bu bağımlılıklar olmadan derleme oldukça hızlı bir şekilde başarısız olur, bu yüzden... Kaynak kodunu indirmeden önce ortamın hazır olması şarttır..

Linux çekirdeği kaynak kodunu nereden indirebilirim?

Çekirdek kodunu elde etmenin resmi kaynağı şudur: kernel.orgBuradan ana sürüm, kararlı sürüm ve uzun vadeli destek (LTS) sürümleri arasında seçim yapabilirsiniz. Her birinin kendi klasörü ve ona giden bir bağlantısı vardır. katran topu Comprimido.

  Donmuş Dizüstü Bilgisayarı Onarmak için Klavye Kısayolları

Bazı örnekler indirme sık sık görülen Eğitim materyalleri şunlardır:

  • Son testler için kararlı 6.6 çekirdeği:
    wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.6.tar.xz
  • Çekirdek 6.0.11 (v6.x dalı):
    wget https://mirrors.edge.kernel.org/pub/linux/kernel/v6.x/linux-6.0.11.tar.xz
  • Çekirdek 5.10.13 (v5.x dalı):
    wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.10.13.tar.xz

Yazı tiplerini buradan da indirebilirsiniz. dağıtımınızın depolarıÖrneğin, Debian/Ubuntu'da şu paket mevcuttur: linux kaynağı:

sudo apt-get install linux-source

Bu, şu türde bir dosya bırakır: linux-source-xxxtar.bz2 en / usr / srcBunu, kernel.org tarball'ına benzer bir şekilde açabilirsiniz.

Kaynak ağacını ve disk alanını hazırlayın.

Çekirdek tar dosyasını indirdikten sonra, onu uygun bir konuma çıkarmanız gerekiyor. yeterli alan ve yazma izinleri/usr/src dizinini kullanmak zorunda değilsiniz, ancak klasik bir yöntemdir. Örneğin, şöyle bir dizin oluşturabilirsiniz: ~/İndirmeler/çekirdeklerim.

Sıkıştırılmamış haldeyken kaynak ağacının yaklaşık olarak şu boyutlarda olabileceğini unutmayın. 1,5 GBve derleme sırasında, şeyler kolayca üst seviyelere atlıyor. 7 GBBu nedenle hata payı bırakın.

bazı tipik dekompresyon örnekleri ses:

  • tar.xz ile:
    tar avxf linux-6.6.tar.xz
  • tar.bz2 ile:
    tar jxvf linux-2.6.36.tar.bz2 -C /usr/src
  • tar.gz ile:
    tar zxvf linux-x.x.x.x.tar.gz -C /usr/src

Dosyayı açtıktan sonra, aşağıdaki gibi bir klasör elde edeceksiniz. Linux-6.6 o Linux-5.10.13Genel bir sembolik bağlantı oluşturabilirsiniz. linux Rota konusunda delirmemek için:

cd /usr/src
sudo ln -s linux-6.0.11 linux

Kaynakları belirtmek zorunlu değildir. / usr / srcBirçok rehber bunu gelenek gereği yapıyor olsa da. Derleme ve kurulum işlemini kullanıcı klasörünüzde yapsanız da aynı şekilde çalışacaktır.Yeterli alanınız ve gerekli izinleriniz olması şartıyla.

Mevcut çekirdek yapılandırmasını yeniden kullanın.

Bir çekirdeği sıfırdan, seçenek seçenek yapılandırmak, çok deneyimli kişiler için bile bitmek bilmeyen bir iştir. Genellikle uygulanan yöntem şudur: Hali hazırda kullandığınız çekirdek yapılandırmasını yeniden kullanın. bir başlangıç ​​noktası olarak.

Bunu yapabilmek için öncelikle bilmek gerekir. Hangi çekirdeği yüklediniz? şu anda:

uname -r

Sonuç şöyle bir şey olacak: 6.1.0-13-amd64 o 4.19.0-6-amd64Bu bilgilerle, mevcut yapılandırmayı kopyalayabilirsiniz. /çizme Yeni açılan kaynak dosyalarının dizinine:

cd linux-6.6
cp /boot/config-$(uname -r) .config

O dosya .Config Çekirdek derleme sisteminin temel olarak kullanacağı sürüm bu olacaktır. Daha yeni sürümlerde, yapılandırma araçlarını çalıştırırken sizden yalnızca şu bilgiler istenecektir: önceki çekirdeğinizde bulunmayan seçeneklerBu da çok büyük miktarda zaman tasarrufu sağlıyor.

Ayarları gerçek donanıma nasıl uyarlayabilirsiniz?

Mevcut .config dosyasını yeniden kullanmanın yanı sıra, çekirdek ağacının sağladığı araçları kullanarak daha da ince ayarlar yapabilirsiniz. Özellikle kullanışlı bir araç şudur: localmodconfig yapBu, o anda yüklediğiniz modüllere uygun bir yapılandırma oluşturmaya çalışır.

Kaynak dizininde, aşağıdaki komutu çalıştırmanız yeterlidir:

make localmodconfig

Bu komut aktif modülleri inceler ve Sisteminizin kullanmadığı birçok şeyi devre dışı bırakır.Bu, belirli bir makine için çekirdek yapılandırıyorsanız idealdir. Diğer makineler veya sunucular için genel bir çekirdek derlemeyi düşünüyorsanız, derleme yaptığınız sistemde bulunmayan donanımları dışarıda bırakmadığınızdan emin olmak için sonrasında dikkatlice gözden geçirmeniz gerekecektir.

Çekirdek yapılandırma modları: metin ve grafik ortamları

Çekirdek yapılandırması çeşitli şekillerde yapılabilir. Bunların hepsi sonuçta bir dosya oluşturmak veya değiştirmekle sonuçlanır. .ConfigAncak deneyim, kullanılan yönteme bağlı olarak çok farklılık gösterir:

  • makeconfigTamamen metin tabanlı, soru soru bir anket. Günümüzde yalnızca çok özel durumlarda pratik kabul ediliyor; yavaş, sıkıcı ve hata yapma olasılığı yüksek.
  • Menuconfig yapmakMetin tabanlı menü arayüzü (ncurses), sunucularda veya grafik arayüzünün olmadığı durumlarda çok yaygındır. Ok tuşları, sekme tuşu ve boşluk tuşu ile gezinirsiniz.
  • xconfig yapQt tabanlı, fare kullanımına uygun, rahat bir grafik arayüzü. Tam masaüstü ortamında çalışırken idealdir.
  • gconfig yapGTK tabanlı grafik arayüzü, GNOME benzeri ortamlar için tasarlanmıştır.

Uygulamada, Menuconfig yapmak Hemen hemen her kılavuzda yıldız olarak yer alıyor çünkü neredeyse her bağlamda işe yarıyor. Kopyaladığınız .config dosyasıyla başlayarak yapmanız gereken tek şey:

make menuconfig

"İşlemci türü ve özellikleri", "Aygıt Sürücüleri", "Dosya sistemleri", "Ağ desteği", "Sanallaştırma" vb. kategorilerin bulunduğu bir ana menü göreceksiniz. Her birinin içinde şunları yapabileceksiniz: modül olarak etkinleştir, devre dışı bırak veya işaretle Farklı seçenekler. Normalde:

  • [*] "Yerleşik" anlamına gelir.
  • [M] Bu, "yüklenebilir bir modül olarak derlendiğini" gösterir.
  • [] "Devre dışı bırakıldı".

Buradaki fikir, sistemin önyüklenmesi için gerekli olan şeyleri (örneğin, kök disk desteği) çekirdeğe entegre etmek ve bunun için modüller kullanmaktır. daha az kritik özellikler veya her zaman kullanılmayan özelliklerBöylece ana çekirdek daha hafif olur.

Menüdeki her öğenin genellikle bir seçeneği vardır. Destek Bu, tam olarak ne yaptığını açıklar ve bazen varsayılan bir öneri sunar. Çok özel bir konuda emin değilseniz, önerilen değeri veya önceki yapılandırmada zaten etkinleştirilmiş olan değeri kullanmanız en iyisidir.

Faydalı ayarlar: dosya sistemleri, sanallaştırma ve Docker

Çekirdek özelleştirmesinin önemli bir parçası da doğru seçimler yapmaktır. Hangi dosya sistemleri, konteyner mekanizmaları ve ağ seçenekleri? Buna ihtiyacınız olacak. Örneğin, bölümleme kullanmayı planlıyorsanız. NTFS Yazma işlemi için ilgili desteği etkinleştirmeniz gerekecektir (genellikle "Dosya sistemleri → DOS/FAT/EXFAT/NT Dosya sistemleri" bölümünde bulunur).

  Windows 10 lisansını BIOS'tan çıkarmak için eksiksiz kılavuz

Sanallaştırma veya konteynerlerle çalışmayı planlıyorsanız, gözden geçirmeniz gereken hayati öneme sahip bir dizi seçenek bulunmaktadır. Örneğin, Docker ve Docker Swarm için bir dizi seçenek mevcuttur. ad alanlarının, cgrupların ve ağın işlevleri aktif olması gerekenler:

  • Grup hiyerarşisi.
  • CONFIG_NAMESPACES, CONFIG_NET_NS, CONFIG_PID_NS, CONFIG_IPC_NS, CONFIG_UTS_NS.
  • CONFIG_CGROUPS ve alt seçenekler gibi CONFIG_CGROUP_CPUACCT, CONFIG_CGROUP_DEVICE, CONFIG_CGROUP_FREEZER, CONFIG_CGROUP_SCHED, CONFIG_CPUSETS, CONFIG_MEMCG.
  • Temel destek (CONFIG_KEYS).
  • Ağ seçenekleri, örneğin CONFIG_VETH, CONFIG_BRIDGE, CONFIG_BRIDGE_NETFILTER, CONFIG_NF_NAT_IPV4, CONFIG_IP_NF_FILTER, CONFIG_IP_NF_TARGET_MASQUERADE, CONFIG_NETFILTER_XT_MATCH_ADDRTYPE, CONFIG_NETFILTER_XT_MATCH_CONNTRACK, CONFIG_NETFILTER_XT_MATCH_IPVS, CONFIG_IP_NF_NAT, CONFIG_NF_NAT, CONFIG_NF_NAT_NEEDED.
  • POSIX kuyruk desteği (CONFIG_POSIX_MQUEUE).
  • gibi seçenekler CONFIG_IPVLAN Docker tarafından kullanılan belirli ağ yapılandırmaları için.

Bu işlevlerin çoğu sorunsuz bir şekilde modül olarak derlenebilir, ancak Docker dokümanlarını incelemek veya test komut dosyaları kullanmak tavsiye edilir.Şunlar gibi hizmetler mevcuttur: yapılandırmayı kontrol et.sh Çekirdeğin .config dosyasını analiz eden ve konteyner uyumluluğu için nelerin eksik olduğunu size söyleyen araçlar.

Temel çalışma prensibi şu şekilde olacaktır:

chmod +x check-config.sh
./check-config.sh .config

Çıktı, hangi seçeneklerin uygun olduğunu, hangilerinin eksik olduğunu veya hangilerinin yanlış yapılandırıldığını gösterecektir. Kritik bir şeyin devre dışı bırakıldığını fark ederseniz, tekrar çalıştırabilirsiniz. Menuconfig yapmak o xconfig yapHatayı düzeltin, kaydedin ve doğrulamayı tekrarlayın.

Son çekirdek sürümlerinde ilginç gelişmeler var.

Özelleştirmenin yanı sıra, birçok kişi çekirdeğin yeni sürümlerini derliyor. Performans iyileştirmelerinden ve yeni özelliklerden yararlanın. Bu paketlerin dağıtım listenize ulaşması yine de biraz zaman alacaktır.

Örneğin, koç 6.6 Bahsedilen iyileştirmeler arasında şunlar yer alıyor:

  • EXT4'te kayda değer performans artışıBazı eşzamanlı yazma yüklerinde %34'e varan artışlar gözlemlenmektedir.
  • GPU desteğinde iyileştirmeler NVIDIA ücretsiz sürücüyü kullanarak NouveauNVK (Vulkan) sürücüsü için zemini hazırlıyor.
  • İçin seçenekler çeşitli yönlerini yapılandırın BIOS HP ekipmanlarından doğrudan Linux'tan.
  • Hibrit işlemciler için küme zamanlama ayarları Intel (Alder Gölü, Raptor Gölü ve daha sonra).
  • Doğrudan asenkron G/Ç'nin optimizasyonu ile io_uringBazı testlerde performans artışı yaklaşık %37 civarında gerçekleşti.
  • Yeni bir görev planlayıcı, EEVDF (En Erken Uygun Sanal Son Tarih Önce)Bu da işlemler arasında CPU tahsisini iyileştirir.

Modern sürümlerde bunların hepsi "hazır olarak" geliyor, ancak dağıtım ağınızın bunları paketlemesi veya etkinleştirmesi zaman alabilir; bu nedenle birçok kişi alternatif çözümlere başvuruyor. daha yeni bir çekirdeği manuel olarak derleyin.

Çekirdeğin derlenmesi: make, modüller ve derleme iş parçacıkları

Ayarları istediğiniz gibi yaptıktan sonra, işlemciyi çalıştırma zamanı gelir. İşte bu noktada komutlar devreye giriyor. yapmak Klasik çekirdek derlemesi. Derleme, donanıma ve oluşturduğunuz modül sayısına bağlı olarak birkaç dakikadan bir saati aşkın bir süreye kadar sürebilir.

Özünde, temel akış Debian/Ubuntu'da (veya diğer dağıtımlarda) genellikle şöyledir:

  • Çekirdeği (ana imajı) derleyin:
    make -j$(nproc)
    Ya da, yalnızca tek bir çekirdek kullanmasını istiyorsanız:
    make
  • Modülleri derleyin ve kurun:
    sudo make modules_install

Seçimi -j$(nproc) Bu komut, derleme işleminde işlemcinizin çekirdek sayısı kadar paralel işlem kullanmasını sağlar; bu da modern makinelerde zamandan büyük ölçüde tasarruf sağlar. Derleme sırasında hatalar görürseniz, hataların oluştuğu noktada kontrol etmeniz gerekir; bu hatalar şunlardan kaynaklanıyor olabilir: Eksik bağımlılıklar, çakışan yapılandırmalar veya söz konusu çekirdek sürümündeki belirli hatalar.

Bazı daha gelişmiş tarifler Debian aracını kullanır. make-kpkg ve paket çekirdek paketi Çekirdeği .deb dosyalarına paketlemek. Bu sayede özel çekirdeği, sanki başka bir paketmiş gibi, aşağıdaki gibi bir komutla kurup kaldırabilirsiniz:

fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers
cd /usr/src
sudo dpkg -i *.deb

Bu senaryoda, aşağıdakilerle ilgili hatalara da sıkça rastlanır. çekirdek sertifikalarıBirçok kılavuz, .config dosyasında şu satıra benzer bir satır ekleyerek güvenilir anahtarları devre dışı bırakarak belirli sorunları çözmektedir:

sed -i '/CONFIG_SYSTEM_TRUSTED_KEYS/s/^/#/g' .config

Yeni derlenmiş çekirdeği yükleyin ve önyükleyiciyi güncelleyin.

Eğer .deb paketleme kullanmıyorsanız ve standart çekirdek ağacı araçlarıyla "çıplak" bir şekilde ilerliyorsanız, Kurulum doğrudan kaynak dizininden yapılır.Derleme işleminden sonra en yaygın sıralama şöyledir:

  • Modülleri yükleyin (Henüz yapmadıysanız):
    sudo make modules_install
  • Çekirdeği yükleyin:
    sudo make install

Çekirdeğin kendi betik sistemi ikili dosyayı kopyalayacaktır. bzResim /boot dizinine, System.map ve yapılandırma dosyasıyla birlikte oluşturulur. Debian/Ubuntu'da, komut dosyaları genellikle şu şekilde tetiklenir: /etc/kernel/postinst.d oluşturan initramf'ler ve önyükleme yöneticisini (GRUB) otomatik olarak günceller.

Yine de, bunu açıkça uygulamak hiçbir zaman zarar vermez:

sudo update-initramfs -u
sudo update-grub
sudo update-grub2

Bununla İlk önyükleme görüntüsünün doğru şekilde yeniden oluşturulduğundan emin olun. Yeni çekirdek sürümü için ve GRUB'un bunu menüsünde dikkate alması gerekiyor. Red Hat tabanlı bazı dağıtımlar gibi diğer dağıtımlarda da kullanılabilir. mkinitrd o taslak update-initramfs yerine bunu kullanıyoruz, ancak amaç aynı: Yeni çekirdeğe uygun bir initrd/initramfs imajı oluşturun..

initrd/initramfs'nin rolü ve potansiyel sorunlar

initrd veya initramfs bir Önyükleme işleminin çok erken bir aşamasında belleğe yüklenen dosya sistemi görüntüsüBu, gerçek kök dosya sistemini bağlamak için gerekli olan minimum sürücüleri içerir (örneğin, / bölümünüzün bulunduğu SATA veya NVMe denetleyicisi için destek).

  Facebook'a erişimi engellemek için ne yapabilirim? Facebook'ta kısıtlı erişim nasıl kaldırılır?

Eğer initrd dosyanız yanlış oluşturulmuşsa veya gerekli modülleri içermiyorsa, çekirdek önyükleme yapacak ancak bağlama işlemi gerçekleştiremeyecektir. / ve sonunda bir şeye sahip olacaksınız çekirdek panik onu bulamadığından şikayet ediyor. kök Dosya sistemi. Bu, kritik çekirdek seçenekleri devre dışı bırakıldığında veya sürüm değişikliğinden sonra initramfs unutulduğunda ortaya çıkan tipik bir hatadır.

Debian/Ubuntu'da günümüzdeki referans komutu şudur: güncelleme-initramfs:

sudo update-initramfs -c -k x.x.x

Parametre -c yeni bir görüntü oluşturur ve -k Bu, tam çekirdek sürümünü gösterir. Daha eski dağıtımlarda (veya farklı araçlarla) bu kullanılıyordu. mkinitrd benzer sözdizimiyle:

cd /boot
mkinitrd -o initrd.img-2.6.36 2.6.36

Her durumda, özel çekirdeğinizi kurduktan sonra /lib/modules veya kök dizinin bağlanmasıyla ilgili hatalar görürseniz, Öncelikle initramfs/initrd ve GRUB yapılandırmasını kontrol edin. Başka bir şeye dokunmadan önce.

Yeni çekirdeğin doğru çalıştığını doğrulayın.

Her şey yüklendikten ve önyükleme yöneticisi güncellendikten sonra, sistemi test etmek için yeniden başlatma zamanı geldi. Başlangıç ​​sırasında, GRUB ve çekirdek önyükleme mesajlarını izleyin Tanınmayan modüllerden, dosya sistemlerinden veya aygıtlardan kaynaklanan hatalar ortaya çıkması durumunda.

Sisteme girdikten sonra, hangi çekirdek sürümünü kullandığınızı şu komutla kontrol edebilirsiniz:

uname -a

Çıktı, aşağıdakileri yansıtmalıdır: yeni derlenmiş sürümBundan sonraki adım, her zamanki hizmetlerinizi test etmektir: web sunucusu, veritabanları, Liman işçisi, Sanal makinelerMasaüstü programları vb. Her şey doğru çalışıyorsa, bu çekirdeği ana çekirdek olarak bırakabilir ve eski sürümleri yedek olarak saklayabilirsiniz.

Önceki bir çekirdeğe nasıl geri dönülür ve yeni çekirdek nasıl kaldırılır?

Bir şeyler ters giderse (özellikle ilk birkaç seferde olabilir), önemli olan şudur ki... Panik yapmaGRUB'unuzda çalışan başka çekirdekler listelendiği sürece, sistemi fazla sorun yaşamadan kurtarabilirsiniz.

Süreç tipik olur:

  1. Sistemi yeniden başlatın.
  2. GRUB ekranında ok tuşlarıyla ilerleyin ve tür bölümüne girin. "Gelişmiş seçenekler...".
  3. Daha önce sorunsuz çalıştığını bildiğiniz eski bir çekirdek sürümünü seçin.
  4. O çekirdek ile önyükleme yapın ve içeri girdikten sonra sorunlu çekirdeği silin.

Çekirdeği .deb paketleri kullanmadan, manuel olarak kurduysanız, kaldırma işlemi genellikle şu adımları içerir: /boot ve /lib/modules klasörlerindeki ilgili dosyaları silin.Örneğin, 6.6.0 sürümünü kaldırmak için şunları yapabilirsiniz:

cd /boot
sudo rm config-6.6.0 initrd.img-6.6.0 System.map-6.6.0 vmlinuz-6.6.0

Ardından, modüllerini silin:

cd /lib/modules
sudo rm -rf 6.6.0

İşlem tamamlandığında, GRUB'u güncelleyerek menüde o çekirdeği artık sunmayacak şekilde ayarlayın ve yeniden başlatın:

sudo update-grub
sudo update-grub2
sudo reboot

Çekirdeği .deb paketi olarak kurduysanız, daha temiz bir kurulum olur. Diğer paketler gibi kullanın. Sistem durumunu daha iyi kontrol altında tutmak için apt veya dpkg kullanarak kaldırın.

Diğer dağıtımlar için notlar: Fedora, CentOS ve diğerleri

Bu kılavuz ağırlıklı olarak Debian/Ubuntu/Mint'e odaklanmış olsa da, Fedora veya CentOS gibi Red Hat tabanlı dağıtımlarda da genel mantık benzerdir. Değişiklikler şunlardır: Paket yönetim araçları, bazı bağımlılık adları ve önyükleme yöneticisine nasıl erişileceği hakkında bilgi..

Örneğin Fedora/CentOS'ta, kernel.org'dan bir çekirdeği derlemek için temel bir iş akışı şöyle olabilir:

  • Geliştirme araçlarını yükleyin:
    su -c 'yum groupinstall "Development Tools"'
    su -c 'yum install ncurses-devel qt-devel unifdef'
  • Kararlı bir sürümü indirin (klasik örneklerdeki gibi 2.6.36):
    cd /tmp
    wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.36.tar.bz2
  • Sıkıştırılmış dosyayı açın ve kaynak ağacını hazırlayın:
    mkdir /usr/src/linux
    tar -xjvf linux-2.6.36.tar.bz2 -C /usr/src/linux
    cd /usr/src/linux
  • Çekirdeği menuconfig, xconfig veya gconfig kullanarak yapılandırın.
  • Derleyin ve yükleyin:
    make
    make modules
    make modules_install
    make install

Sonrasında gözden geçirmeniz ve düzenlemeniz gerekecek. /boot/grub/grub.conf (veya GRUB Legacy, GRUB2 vb. kullanmanıza bağlı olarak eşdeğer dosyayı kullanarak) yeni çekirdek için ilgili initrd dosyasını içeren bir giriş ekleyin; bu sırada dosya yollarına çok dikkat edin. kök = LVM kullanıyorsanız, mantıksal birimlere yapılan referanslar da buna dahildir.

Özel bir Linux çekirdeği derlemek, yapılandırmak ve kurmak uzun ama inanılmaz derecede öğretici bir süreçtir: Hangi modüllerin önyüklenmesi gerektiğini, hizmetleriniz için (Docker veya sanallaştırma gibi) hangi seçeneklerin gerekli olduğunu, initramfs ve GRUB'un önyükleme sürecine nasıl entegre edildiğini ve bir şeyler ters giderse önceki bir çekirdeğe geri dönmek için her zaman bir yedek seçeneğin nasıl bulundurulması gerektiğini anlamanızı sağlar. Her bölümü gözden geçirmek, mevcut çekirdek yapılandırmanızı akıllıca yeniden kullanmak ve değişiklikleri kademeli olarak test etmeye alışmak için zaman ayırırsanız, gerçekten güçlü bir sistemin keyfini çıkarabilirsiniz. Daha optimize edilmiş, donanımınıza özel ve gerçek ihtiyaçlarınızla uyumlu Çoğu dağıtımın genel çekirdeklerinin sağladığından daha fazla.