YAFFS2 Dosya Sistemi
Yet Another Flash Filesystem'in ikinci versiyonu olup, raw flash aygıtları üzerinde çalışan bir dosya sistemidir.
Charles Manning tarafından Yeni Zelanda kuruluşlu Aleph One firması için geliştirilmiştir.
Küçük ve kolay port edilebilir bir yapıya sahip olduğundan, Linux dışındaki ortamlarda ve özellikle çeşitli kapalı kodlu gömülü sistemlerde de kullanım alanı bulmuştur. Kapalı kodlu sistemlerde kullanılabilmesi için ikinci bir lisanslama opsiyonu sunmaktadır.
JFFS2'ye göre tek eksiği sıkıştırılmış dosya sistemi modunda çalışamıyor olmasıdır.
Bununla birlikte diğer tüm alanlarda JFFS2'den daha iyi performans verir.
Günümüzde yerini UBIFS'e bırakmaya başlamıştır.
Kullanım
Bir MTD bölümü YAFFS2 formatında veri içermese dahi, blok tipi aygıt ismi üzerinden yaffs2 türünde doğrudan mount edilmeye çalışıldığında işlem başarılı olur, ancak bu yöntem önerilmez.
Öncelikle ilgili MTD bölümünün flash_erase
ile silinmesi gereklidir:
flash_erase /dev/mtd8 0 0
Sonra mount işlemi aşağıdaki gibi gerçekleştirilebilir:
mount -t yaffs2 /dev/mtdblock8 /mnt
Mount işlemi sonrası /mnt
dizini altına kopyalama yapmak suretiyle ilgili bölüme yazılabilir.
Dosya Sistemi İmajının Yazılması
Bir MTD bölümünü flash_erase
ile silip yaffs2 türünde mount ettikten sonra standart yöntemlerle dosyaları kopyalayarak ilerlemek yerine, dosya sistemini başka bir yerde (kendi bilgisayarımızda) oluşturup, yaffs2 imajını hazırlayıp tek seferde bu hazırlanan dosya sistemi imajını kopyalamak da mümkündür.
Bunun için flash_erase
ile ilgili MTD bölümü silindikten sonra, nandwrite
ile imajın yazılması gerçekleştirilebilir.
flash_erase /dev/mtd8 0 0
nandwrite -a -o /dev/mtd8 /tmp/yaffs.image
Ardından ilgili bölüm mount edildiğinde, imaj içerisinde yer alan verilere ulaşılabilecektir:
mount -t yaffs2 /dev/mtdblock8 /mnt
İmaj Oluşturma
Geliştirme yapılan bilgisayardaki bir dizin yapısını yaffs2 imajına çevirmek için, yaffs2utils paketinden çıkan mkyaffs2
uygulaması kullanılır. Örnek kullanım:
mkyaffs2 /work/dir /tmp/yaffs.img
İlk parametre olarak imajı oluşturulacak olan dizin belirtilir.
İkinci parametre ise imajın nereye çıkartılacağını gösterir.
yaffs2utils: http://code.google.com/p/yaffs2utils