İSİM
mkswap − Linux takas alanını ayarlar
KULLANIM
mkswap [−c] [−vN] [−f] [−p sayfa_boyu] aygıt [boyut]
AÇIKLAMA
mkswap, bir aygıt ya da dosya üzerinde Linux takas alanını oluşturur.
(Takas alanını oluşturduktan sonra swapon komutuyla etkinleştirmeniz gerekir. Takas alanları çoğunlukla /etc/fstab içinde listelenirler ve sistemin açılışı sırasında swapon −a komutunu çalıştıran betiklerle kullanıma hazır hale getirilirler.)
aygıt argümanı çoğunlukla bir disk bölümü (/dev/hda4, /dev/sdb7 gibi) olmakla birlikte bir dosya da olabilir. Linux çekirdeği disk bölümlerinin kimliklerine bakmaz ama çoğu kurulum betiği, onaltılık tabanda türü 82 (LINUX_SWAP) olan disk bölümünü Linux takas alanı olarak kabul eder. (Uyarı: Solaris de bu türü kullanır. Solaris disk bölümünüzü öldürürken dikkatli olun.)
boyut argümanı gereksiz olmakla birlikte geriye uyumluluk amacıyla korunmuştur. (İstenen takas alanı miktarını 1024 baytlık bloklar halinde belirtmek için kullanılır. Şayet bu argüman belirtilmemişse, mkswap bütün disk bölümünü veya dosyanın tamamını takas alanı olarak kabul eder. − olarak belirtmek pek akıllıca olmaz, diskinizin bozulmasına sebep olabilir.)
sayfa_boyu parametresi kullanılacak sayfa boyunu belirtmek içindir. Bu parametreyi belirtmek genellikle gereksizdir (hatta akılsızcadır) ama bazı libc sürümleri sayfa boyu hakkında yanlış bilgi verirler, bu nedenle mkswap'ın bu boyutu yanlış algılaması mümkündür. Sonradan ortaya çıkan, takas imzası bulunamadı şeklindeki, swapon hataları bunun belirtisi sayılabilir. Takas bölümüne özgü sayfa_boyu değerleri 4096 ve 8192 dir.
Linux iki tür takas alanı tanır: eski tür ve yeni tür. Takas alanının ilk sayfasının son 10 baytı bu ayrımı yapmak için kullanılır. Eski türün imzası `SWAP_SPACE' iken yeni türün imzası `SWAPSPACE2'dir.
Eski türde, ilk sayfanın kalanı, takas alanının kullanılabilir her sayfası için 1 bit olmak üzere bir bit eşlemdi. İlk sayfa bu biteşlemi tuttuğundan ilk bit 0 idi. Ayrıca son 10 bayt imza için ayrılmıştır. Bu durumda, şayet sayfa boyu B ise, eski türte bir takas alanı en fazla 8*(B−10)−1 sayfalık takas alanı kullanabilir. i386'da olduğu gibi B=4096 ise, kullanılabilecek alan en fazla 133890048 bayt olabilir (takriben 128MiB). Bir Alpha veya Sparc64'de ise, B=8192 ve kullanılabilecek alan en fazla 535560992 bayt (takriben 512 MiB) olabilir
Eski türler, bu biteşlem sayfasının çoğunu boşa harcar. Çünkü sıfır bitleri bozuk blok alanları veya takas alanından sonraki bloklar olarak kabul edilir. Basit bir tamsayı, −şayet varsa− bozuk blokların listelenebilmesi için yeterli olmaktadır. Hiçkimse yüzlerce bozuk blok bulunan bir takas alanını kullanmak istemez (hatta ben içinde 1 tane bile bozuk blok bulunan bir takas alanı kullanmak istemem). Yeni türdeki takas alanlarında, bu olması gerektiği gibi yapılmıştır. Şimdi takas alanının kullanılabilecek azami boyutu mimariye bağlıdır. Kabaca: bir i386, PPC, m68k, ARM için 2GiB; mips'lerde 512 MiB; alpha'da 128GiB ve bir sparc64'de 3TiB'tır.
Not: Linux 2.1.117'den önce, çekirdek belleğinde her sayfa için bir bayt ayrılırdı, şimdi ise iki bayt ayrılmaktadır. Bu yüzden, 2GiB'lık bir takas alanı kullanımı, 2MiB'lık bir çekirdek belleği gerektirebilir.
Şu an, Linux 8 adet takas alanına izin vermektedir. Kullanımdaki takas alanlarını /proc/swaps dosyası içinde görebilirsiniz (Linux−2.1.25'den beri).
mkswap 10 sayfadan daha küçük alanları kabul etmez.
Şayet makinanızın kullandığı sayfa boyutunu bilmiyorsanız, cat /proc/cpuinfo komutu ile bunu öğrenebilirsiniz (veya öğrenemezsiniz. Bu dosyanın içeriği kullandığınız çekirdek sürümüne ve mimariye göre değişiklik gösterebilir).
Bir takas dosyası oluşturmak için, mkswap ile başlatmadan önce aşağıdakine benzer bir komutla önce bir dosya oluşturmalısınız:
# dd if=/dev/zero of=swapfile bs=1024 count=65536
Not: Bir takas dosyası kesintisiz, tek parça olmalıdır. Bu nedenle cp(1) komutu ile oluşturulmuş bir takas dosyası kabul edilmez.
SEÇENEKLER
−c |
Takas alanı oluşturmadan önce aygıtı bozuk bloklar için (bir blok aygıtı ise) tarar ve bozuk blok varsa sayısını gösterir. | ||
−f |
Baskıcı kiptir. Verilen komut salakça olsa bile, yapılmasını sağlar. İçinde bulunacağı dosya ya da bölümden daha büyük bir takas alanı oluşturulmasını sağlar. SPARC'larda, takas alanının oluşturulmasını zorlar. Bu seçenek olmadan, mkswap geçerli bir SPARC süperbloklu aygıtta bir v0 takasını oluşturmayı reddecektir (bu komut bölüm tablosunu silmek gibi algılanacağı için). |
−p sayfa_boyu
Kullanılacak sayfa boyu belirtilir.
−v0 |
Eski tarz takas alanı oluşturur. |
|||
−v1 |
Yeni tarz takas alanı oluşturur. |
Şayet −v seçeneği belirtilmemişse mkswap, yeni türde bir takas alanı oluşturur, ancak kullanılan çekirdek 2.1.117 sürümünden daha eski ise (ayrıca, PAGE_SIZE < 2048 ise) eski tarz takas alanı oluşturur. Yeni tarz başlıklar ilk bloğu kullanmazlar, bu nedenle önyükleyici veya disk etiketi için burası kullanılacaksa tercih edilebilirler. Eğer hem 2.0 hem de 2.2 çekirdek kullanmak zorunda iseniz, takas alanını oluştururken −v0 seçeneğini kullanın.
İLGİLİ BELGELER
ÇEVİREN
Yalçın Kolukısa <yalcink01 (at) yahoo.com>, Ocak 2004