İ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¶
fdisk(8),
swapon(8).
ÇEVİREN¶
Yalçın Kolukısa <yalcink01 (at) yahoo.com>, Ocak 2004