İ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