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
Kurulumu:
- Kaynak kodu çekelim:
git clone https://gitlab.com/sulinos/devel/initrd.git
- Kaynak kodu sisteme kuralım:
make install
- busybox-static paketini kuralım:
apt-get install busybox-static
- 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.)