Alternatif initramfs sistemi (Sulin initrd)

Bu yazıda debian tabanlı dağıtamlarda da kullanılabilen Sulin projesini parçası olan initramfs sistemini kurmayı ve kullanmayı anlatacağım. Bu konuda tüm sorumluluk kullanıcıya aittir.

Önemli not: Konu ile ilgili yeterli tecrübesi olmayan kişilerin burada anlatılanları uygulaması kötü sonuçlar doğurabilir.

Inıtramfs nedir?

Initramfs (initial ramdisk filesystem) sistemi başlattığınızda çekirdeğin ilk olarak ram üzerine yüklediği ve çalıştırdığı alandır. Debian tabanlı sistemlerde initramfs-tools paketi ile yönetilir.

Sulin initrd sistemi

Sulin projesi kapsamında dağıtım bağımsız ve özelleştirilebilir bir initramfs sistemi olarak yazılmıştır. Açılışta debianın aksine sadece hayati modülleri yükleyip geri kalan modülleri servis yöneticisine bırakır. systemd-udev ve eudev uyumludur. (Aslen eudev için tasarlanmıştır.)
Kaynak kodu: sulinos / Sulin Devel / initrd · GitLab

Avantajları:

  • Daha hızlı açılış sağlar.
  • Kolay kolay bozulmaz.
  • Basit yapılıdır. Kolay özelleştirilir.
  • Kullanımı kolaydır ve Türkçe dil desteğine sahiptir.
  • Bazı hatalara kendi başına çözüm bulabilmektedir.
  • Dahili live-boot özelliği var.
  • Daha fazla hata ayıklama yaplıabiliyor.

Dezavantajları

  • Lvm desteği sınırlı.
  • Kernel güncellemesi sonrası elle çalıştırılması gerekiyor. (Notlar bölümüne bakın.)
  • Tasarımı tamamen debian ile uyumlu değil. (Yine de sorunsuz çalışabiliyor.)
  • Plymouth ekranı düzgün çalışmıyor :smiley:

Kurulumu:

  1. Kaynak kodu çekelim:
    git clone https://gitlab.com/sulinos/devel/initrd.git
  2. Kaynak kodu sisteme kuralım:
    make install
  3. busybox-static paketini kuralım:
    apt-get install busybox-static
  4. initrd güncelleyelim:
    update-initrd (her ihtimale karşı önceki initrd.img dosyamızı yedek alsak iyi olabilir.)

Kullanımı:

Hedefleme seçenekleri listesi:
  OUTPUT             Hedef initrd dosyası çıktı yolu.
  WORKDIR            Çalışma dizini. mktepm tarafından oluşturulur.
  KERNELVER          Hedef çekirdek sürümü. Varsayılan şimdiki çekirdek.
  MODDIR             Hedef modül dizini. Varsayılan şimdiki modül dizini.
  CONFIG             Kullanılan ayar yolu. Varsayılan /etc/initrd.conf kullanılır.
Genel seçenekler listesi:
  -d / --debug       Hata ayıklama çıktısı yazdırır.
  -k / --keep        Derleme sonrası çalışma dizinini temizlemez.
  -h / --help        Bu mesajı yazdırır.
  -n / --no-color    Renkli çıktı özelliğini kapatır.
  -c / --no-cpio     Initrd dosyası oluşturmaz.
  -f / --fallback    Yedek initrd dosyası oluşturur.
  -g / --no-glibc    Glibc modülünü kapatır. (dinamik ikili desteğini kapatır)
  -s / --no-fsck     Fsck modülünü kapatır.
  -u / --no-udev     Udev modülünü kapatır.
  -a / --all-module  Tüm modülleri içerir. (udev modülü gerektirir)
  -m / --full-module Tüm sürücüleri içerir (udev modülü gerektirir)

Notlar:

  • Sistemde mevcut olan initramfs-tools paketini sil(e)mediğimiz için update-initramfs komutu halen kullanılabilmektedir. Eski initrd sistemini kullanmak için kullanabilirsiniz.
  • /var/lib/dpkg/trigger/update-initramfs dosyasını silmediğiniz sürece paket kurulumlarından sonra tekrar tekrar initrd güncellemeniz gerekebilir. (Bu dosyayı başka bir yere atabilirsiniz.)
1 Beğeni

Peki hangi durumlarda bunu kullanmak isteyebiliriz? Çalışan sistemi riske atmak çok mantıklı gelmiyor açıkçası :smiley:

Aslında kalıcı riske atmış olmuyorsunuz. Çalışmazsa live olarak açıp düzeltebilirsiniz. Alternatif olarak yazdım.

Bu konu son cevaptan 30 gün sonra otomatik olarak kapatıldı. Yeni cevap girilmesine izin verilmiyor.