Ağustos ayında staja başladığım Pardus'da projem PXE Boot ile Pardus kurulumu. Kısaca nedir diye soracak olursanız, PXE Boot, linux sistemlerinin ağ üzerinden kurulumunu sağlayan bir sistem.
Bu olayı yapabilmek için bir server bilgisayarımız ve bir de kurulumun yapılacağı client bilgisayarı lazım.
Server tarafı
Öncelikle server ile client arasındaki bağlantıyı sağlayabilmek için Pardus programcılarının geliştirdiği PTSP(Pardus Terminal Server Project) kurulumu ve ayarları yaparak server'i başlangıç için hazır hale getiriyoruz. Gerekli dökümantasyon bu adresde bulunuyor. (http://tr.pardus-wiki.org/NASIL:PTSP). Burda yazılanlara ek olarak benim başıma gelen olaydan çıkarak şu uyarıyıda yapayım. Bağlantı kurarken Firewall'ınızı kapatmayı unutmayın ya da UDP 63. porttaki alışverişe izin verin.
Sonraki adım olarak PTSP kurulumdan sonra root dizini altında /tftpsptp/pts isimli bir klasör ve onun içindede kernel, initramfs ve diğer ayar dosyaları oluşacaktır. Eğer bunlar var ise kurulum başarılı olmuştur. PTSP dökümanında söylenen dhcp, tftp, nfs-server, rpcbind servisleri çalıştırılırsa bağlantı için herşey hazır demektir.
Client tarafı
Client tarafındaki makinamazın PXE Boot özelliğini barındıran bir bilgisayar olması yeterlidir. Ayrıca sanal makine ile de bu olayı deniyebilirsiniz. Ben VirtualBox ile denemelerimi yaptım. Ayarlar kısmından network ayarlarında ağ arayüzü olarak bridge kısmı ve ağ kartı olarak pci III seçilmeli, boot seçeneği olarak network seçilmesi yeterlidir.
PXE Boot'un çalışma mantığına kısaca değinecek olursak.
- Client çalıştığında dhcp istemcisi ağ'a ip adresi isteyen paketler gönderir.
- Server bu paketi alır ve kendi üzerinde çalışan dhcp servisi ile belirtiğimiz aralıktaki bir ip adresini client'a yolar.
- Client ip adresine ve server kısmında PTSP ayarlarını yaparken dhcp.conf dosyası içinde tanımladığımız filename = /pts/latest-ptsp/pxelinux.0 tanımınada sahip olur.
- Client filename tanımında ki adresden üzerindeki tftp uygulaması ile bu dosyayı çeker ve pxelinux.0 içindeki ayarlar doğrultusunda kernel ve initramfs'i server'dan çekip RAM'e yazar ve boot işlemini başlatır.
Kernel çalıştığında kendi içerisindeki olayları tamamladıktan sonra RAM'e yüklenen initramfs'i kök dosya sistemi olarak bağlar. Initramfs küçük bir linux dağıtımı gibi içinde /bin, /etc ... ve init betiğini bulunduran bir dosya sistemi.
Daha sonra İnitramfs kendi içinde bulunan init betiğini çalıştırarak gerekli donanımları yükler
İşte bundan sonrası init betiğinin içinde olacaklar ve projenin bir özelliği olan istediğimiz iso'yu seçip kurma bölümü burda başlıyor. Projede şu an yaptığımız client tarafında pxebootselect isimli C ile yazılmış bir uygulama ile serverdan aldığımız xml'i parse edip menü ile kullanıcıya göstermek ve seçilen iso doğrultusunda serverdan iso'yu mount etmek.
Gerisi normal Pardus kurulumu. İleriki yazılarımda server tarafında yazdığım program ve konfigurasyon üzerine daha çok bilgi verecem ama önce benim de öğrenmem gerekiyor :)
No comments:
Post a Comment