SquashFS için Hazırlık

SquashFS'i Elde Etmek

SquashFS'in internet adresi http://squashfs.sourceforge.net/dir. Bu adreste SquashFS hakkında genel bilginin yanı sıra yeni sürüm hakkında bilgileri ve değişiklikleri de bulmak mümkündür. Son sürümü SourceForge'dan indirilebilir.

SquashFS LZMA sıkıştırmasıyla birlikte de kullanılabilmektedir: http://www.squashfs-lzma.org/

Çekirdeği SquashFS'e Hazır Hale Getirmek

SquashFS'in okunabilmesi için tıpkı reiserfs ve ext3 dosya sistemleri gibi çekirdek tarafından desteklenmesi gereklidir. Bunun için kendi çekirdek sürümünüze uygun bir yamanın bulunduğundan emin olmalısınız. Bu yama SquashFS kaynak dizininde kernel-patches/linux-2.x.y alt dizininde bulunur. Bir çok durumda kernel.org'dan indireceğiniz orjinal Linux kaynak koduna da ihtiyacınız olacaktır. Çünkü eğer bir datıtımın çakirdeğini kullanırsanız büyük ihtimalle kullandığınız çekirdek daha önceden yamalanmış olacağından ve SquashFS yamaları orjinal çekirdek için yazıldığından SquashFS yaması çalışmayacaktır. Bununla birlikte bazı dağıtımların SquashFS-çekirdek-modülleri ve SquashFS-tools paketleri depolarında bulunabilmektedir. Eğer dağıtımınızın ilgili paketlerini kullanacaksanız çekirdeğe yama uygulamanıza ya da SquashFs araçlarını kaynak koddan derlemenize gerek yoktur. Bu durumda dağıtımınızın deposundan uygun çekirdek modülünü almanız yeterli olacaktır. Eğer bu yöntemi seçerseniz kolay bir kurulum süreci yaşacağınızı ama SquashFS'i özel amaçlarla (gömülü sistemler gibi) kullanmak istemeniz durumunda çekirdek yapılandırma parametreleri üzerinde hiç bir kontrolünüzün olmayacağını unutmayın.

Çekirdeğe Yama Uygulanması

Çekirdeğin kaynak kodu ve uygun SquashFS yaması elinizdeyse (buradan sonra çekirdek kaynak kodunun /usr/src/linux ve SquashFS kaynak kodunun /usr/src/squashfs dizinlerinde olduğunu kabul edeceğiz) yapmanız gerekenler sırasıyla

SquashFS kaynak kodununun bulunduğu dizine geçerek çekirdek yamasını (yamanın squashfs-patch adında olduğunu kabul edeceğiz) /usr/src/linux dizinine kopyalayın;

bash# cd /usr/src/squashfs
bash# cp linux-2.x.y/squashfs-patch /usr/src/linux

Linux çekirdeği kaynak dizinine geçin;

bash# cd /usr/src/linux
Not
Çekirdekle ilgili bütün işlerimizi bu dizinde yapacağımızdan bütün yollar /usr/src/linux dizinine göre verilecektir.

Şimdi çekirdeğe SquashFS yamasını uygulayın;

bash# patch -p1 < squashfs-patch

2.6.x Çekirdek Derlenmesi

Çekirdeğin kaynak kodunu derlenmeye hazırlayalım.

bash# make distclean
bash# make mrproper

Tercih ettiğiniz yöntemle (config/menuconfig/xconfig/gconfig) çekirdeği yapılandırın.

bash# make menuconfig

  1. "File systems" bölümünün "Miscellaneous file systems" alt bölümünde "Squashed filesystem" seçeneğini isterseniz modül olarak, isterseniz doğrudan aktif edin. Sadece sıkıştırılmış başlangıç RAM diski (initrd) kullanacaksanız çekirdeğe doğrudan dahil etmeniz bir zorunluluktur.
  2. Eğer çekirdeği gömülü bir sistem için derlenmiyorsanız aynı alt bölümde bulunan "Additional option for memory-constrained system" seçeneğini AKTİF ETMEYİN.
  3. Eğer sıkıştırılmış başlangıç RAM diski kullanmak istiyorsanız "Device drivers" bölümünün "Block devices" alt bölümünde "Initial RAM disk support" seçeneğini aktif edin.
  4. Eğer gelecekte sıkıştırılmış dosya sistemini loopback device üzerinden bağlamak istiyorsanız "Device drivers" bölümünün "Block devices" alt bölümünde "Loopback device support" seçeneğini aktif edin.

Artık çekirdeği ve modülleri derleyebilirsiniz.

bash# make

2.4.x Çekirdek Derlenmesi

Çekirdeği yapılandırın;

bash# make menuconfig

  1. "File systems" bölümünde "Squashed filesystem" seçeneğini isterseniz modül olarak, isterseniz doğrudan aktif edin. Sadece sıkıştırılmış başlangıç RAM diski (initrd) kullanacaksanız çekirdeğe doğrudan dahil etmeniz bir zorunluluktur.
  2. Eğer sıkıştırılmış başlangıç RAM diski kullanmak istiyorsanız "Block devices" bölümünde "Initial RAM disk support" seçeneğini aktif edin.
  3. Eğer gelecekte sıkıştırılmış dosya sistemini loopback device üzerinden bağlamak istiyorsanız "Block devices" bölümünde "Loopback device support" seçeneğini aktif edin.

Artık çekirdeği ve modülleri derleyebilirsiniz.

bash# make dep
bash# make bzImage
bash# make modules

Çekirdeğin Kurulması ve Test Edilmesi

Artık SquashFS'e hazır çekirdeğimizi kurmanın zamanı geldi. Aşağıdaki adımlar konak bilgisyara çekirdeği kurmak ve başlatmakla ilgilidir, dehef ssteme kurup test etmeyi isteyebilirsiniz.

Çekirdeğinizin x86 mimarisi için derlendiğini ve sıkıştırılmış çekirdek görüntüsünün arch/i386/boot/ dizininde bulunduğunu kabul edeceğiz. İlk olarak çekirdeği /boot dizinine kopyalayın (eğer isterseniz anlışlması kolay olsun diye bzImage-sqsh olarak isimlendirebilirsiniz).

bash# cp arch/i386/boot/bzImage /boot/bzImage-sqsh

Eğer varsa modülleri yüklemeyi unutmayın.

bash# make modules_install

Önyükleyicinizin (lilo, grub vb.) yapılandırma dosyasını yeni çekirdeğinizle başlatabilecek şekilde güncelleyin ve gerikiyorsa öntükleyicinizi güncelleyin. Artık bilgisayarınızı yeniden başlatabilirsiniz. Açıldıktan sonra her şeyin yolunda olup olmadığını kontrol edin.

bash# cat /proc/filesystems

Eğer SquashFS modül olarak derlenmişse

bash# insmod squashfs
bash# cat /proc/filesystems

Eğer diğer dosya sistemlerinin yanıda squashfs içeren bir satır görüyorsanız bu çekirdeğinize başarıyla SquashFS desteğiverdiğiniz anlamına gelir.

SquashFS Araçlarını Derlemek

Sırada sıkıştırılmış dosya sistemi oluşturmanızı sağlayacak olan mksquashfs ve buradan dosyaların açılmasına yardımcı olacak unsquashfs araçlarının derlenmesi var.

bash# cd /usr/src/squashfs/squashfs-tools

Araçları derleyin ve kurun;

bash# make
bash# cp mksquashfs /usr/sbin
bash# cp unsquashfs /usr/sbin

Her şey yolunda gitmişse konsoldan mksquashfs ve unsquashfs komutlarını çalıştırdığınızda nasıl kullanılacakları ile ilgili yönergeleri görüyor olmalısınız.

SquashFS'i Debian'a Yüklemek

Eğer Debian (ya da başka bir dağıtım) kullanılıyorsanız, SquashFS modülünü ve arçlarını dağıtımın deposundan kurmak isteyebilirsiniz. Debian'da uygun çekirdek modülünü ve araçlarını aşağıdaki komutlarla kurmanız gerekir (mimarinizin x86 olduğu varsayımıyla):

bash# apt-get install squashfs-modules-2.6-486  squashfs-tools

Çekirdek için squashfs modülünü yüklediğinizde aşağıdakine benzer bir satır görmelisiniz.

bash# modprobe squashfs
bash# lsmod|grep squash
squashfs               39620  0

Eğer squashfs modülünün açılışta yüklenmesini istiyorsanız /etc/modules dosyasına yazmanız gerekir.

bash# echo squashfs >> /etc/modules

Bu belge yezıldığında Debian (Etch. 4.0 r2) paket deposunda squashfs 3.1 vardı. Bu yüzden 3.2 sürümüyle birlikte gelen bazı özellik ve seçenekler desteklenmiyor olabilir. Ayrıntılar için bir sonraki bölüme bakın.