Nasıl?

Kendi dağıtımınızı oluşturmak: Bölüm 2

Image
Paylaş

Birinci bölümde busybox ve linux çekirdeğini derlemiştik. Bu bölümde ise initramfs imajını oluşturacağız.

Initramfs oluşturma

Initramfs sistem açılırken belleğe ilk önce yüklenen dosyadır. Bu dosyanın içerisinde bulunan /init dosyası çekirdeğimiz tarafından çalıştırılarak açılış işlemi başlatılır. Bir önceki örnekte static olarak derlemiş olduğumuz busybox dosyasını kullanarak bir initramfs imajı oluşturalım.

Bunun için yeni bir dizin açarak içerisine busybox dosyamızı kopyalayalım. ardından init dosyamızı aşağıdaki gibi yazalım.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#!/busybox ash
/busybox mkdir -p /bin
/busybox --install -s /bin
export PATH=/bin
exec /bin/ash
#!/busybox ash /busybox mkdir -p /bin /busybox --install -s /bin export PATH=/bin exec /bin/ash
#!/busybox ash
/busybox mkdir -p /bin
/busybox --install -s /bin
export PATH=/bin
exec /bin/ash

Burada ilk satır shebang satırıdır ve dosyanın ne ile çalıştırılması gerektiğini belirtir.

İkinci satır /bin dizini oluşturmak için kullanılır.

Üçüncü satır busybox dosyasını /bin içerisine sembolik bağ atarak kurmak için kullanılır.

Dördüncü satırda PATH çevresel değişkeni ayarlanır. Bu sayede busybox komutlarını nerede arayacağını belirtmiş oluruz.

Son satırda mevcut süreci yeni bir ash kabuğu ile değiştirmek için yazdık.

Initramfs paketleme

init dosyamızı çalıştırılabilir hale getirelim ve aşağıdaki komut ile initramfs imajımızı üretelim.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
find ./ | cpio -H newc -o > ../initrd.img
find ./ | cpio -H newc -o > ../initrd.img
find ./ | cpio -H newc -o > ../initrd.img

Eğer istersek initramfs imajımızın boyutunu düşürmek için sıkıştırabiliriz.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
gzip -9 initrd.img
gzip -9 initrd.img
gzip -9 initrd.img

Initramfs ve çekirdeğin test edilmesi

Çekirdeğimiz ve initramfs imajımızı qemu kullanarak aşağıdaki komutla test edebiliriz.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
qemu-system-x86_64 --enable-kvm -kernel bzImage -initrd initrd.img -append "quiet" -m 1024
qemu-system-x86_64 --enable-kvm -kernel bzImage -initrd initrd.img -append "quiet" -m 1024
qemu-system-x86_64 --enable-kvm -kernel bzImage -initrd initrd.img -append "quiet" -m 1024 

Eğer herhangi bir sorun yoksa karşınıza terminal ekranı çıkacaktır ve busybox komutlarını kullanabilirsiniz.

Minimal dağıtımın test edilmesi

Bir sonraki bölümde basit C kodundan kendi minimal rootfs sistemimizi oluşturma anlatılacaktır.

Series Navigation<< Kendi dağıtımınızı oluşturmak: Bölüm 3
  • Ali Rıza Keskin

    Gentoo kullancısı - Özgür yazılım sevdalısı - Pardus gönüllüsü

Etiketler:
[wpdiscuz_comments]