Giriş

Fstab Nedir?

Fstab sabit diskinizdeki bolumleri sisteminize bağlama (mount) işleminin otomatik olarak yapılabilmesi icin gerekli bir ayar dosyasıdır.

Mount Etmek (bağlamak) Ne Demektir?

Mount etmek (bağlamak) sabit diskinizdeki bir bolumun, dosya sisteminizde oluşturulan bir klasor (mount point - bağlama noktası) uzerinden erişime acılması işleminin adıdır.


Fstab, dahili suruculeri, CD/DVD suruculerini ve ağ dosya paylaşımını (samba/nfs/sshfs) duzenler. Flash bellekler gibi taşınabilir cihazlar da fstab uzerinden sisteminize bağlanabilir, ancak varsayılan halde bu cihazlar gnome-volume-manager tarafından otomatik bağlanacaktır. (gnome-volume-manager bu yazının konusu değildir.)
"mount" komutu ve fstab dosyasının ayarları cok benzerdir.
fstab dosyasında belirtilmiş suruculer ve bolumler, sistem acılışında (boot) otomatik olarak bağlanmak uzere ayarlanabilirler.
Bir surucu veya bolum fstab dosyasından bağlanmamışsa, mount komutuyla elle bağlama işlemini yalnızca "root" yetkilerine sahip kullanıcılar yapabilir.



Fstab Dosyasında Ayarlar

Sozdizimi (syntax)

Bir fstab girisinin sozdizimi şu şekilde olmalıdır.

Kod:
[Aygıt] [Bağlama Noktası] [Dosya Sistemi] [Ayarlar] [Dump] [Pass]

Değişkenler

Acıklamaları




Sabit disk ya da bolumleme - /dev klasorundeki yeri ya da UUID olarak yazılabilir.



Bağlamak istediğiniz sabit disk ya da bolume dosya sisteminizden erişimi sağlayacağınız klasor. NOT: takas alanının (swap) bağlama noktasına ihtiyacı yoktur. NOT2: Bağlama noktası olacak klasorlerin isimlerinde boşluk olmamalıdır.




Sabit disk ya da disk bolumunun dosya sistemi



Sabit disk ya da bolumun bağlama ayarları



Sabit disk ya da bolumun "dump" komutu kullanılarak yedeklenmesini ayarlar. Bu değişken genelde "0"dır ve bu haliyle yedekleme devre dışıdır.





Sistem acılışı (boot) sırasında fsck'nin bağlı surucu ya da bolumleri kontrol sırasını belirler. Kok dizinin bulunduğu surucu/bolum 1 olmalıdır. Diğer suruculer/bolumler 2 olabilir, ya da 0 yapılarak devredışı bırakılabilir.


Ornek fstab dosyaları icin aşağıdaki ornekler bolumune bakın. Şimdi de her değişkeni detaylı olarak acıklayalım.

Aygıt

Ubuntu bolumleri ve aygıtları varsayılan olarak UUID kullanarak isimlendirir. UUID "xxx.yyy.zzz" gibi bir gorunume sahiptir. Sisteminize bağlı cihazları UUID'lerine gore sıralamak icin aşağıdaki komutu kullanabilirsiniz.

Kod:
sudo blkid
Bunun yanında bolumlerinizı ve aygıtlarınızı,

Aygıt yolunu, (ORN: /dev/sdxy ya da /dev/hdax)
Etiketini, (ORN: ETİKET=aygıt)
Ağ yolunu, (ORN: Samba icin -> //server/share, NFS icin -> server:/share, SSHFS icin -> sshfs#[email protected]:/share)

kullanarak da tanıtabilirsiniz.


Bağlama Noktası

Bağlama noktası, sabit diskinizi/bolumunuzu bağlamak icin kullanılan, kok dizini icerisinde bir klasordur. Ubuntu varsayılan olarak /media klasorunun icinde alt klasorler oluşturur. Buna rağmen dilediğiniz klasoru kullanabilirsiniz.
Bağlama noktasına isim verirken de dilediğiniz ismi secmekte ozgursunuz, ancak bu isimde boşluk olmamalıdır ve bağlama işlemini gercekleştirmeden once bu klasoru oluşturmanız gereklidir.

Kod:
mkdir /media/HariciSabitDisk

Dosya Sistemi

Bu değişkeni "auto" olarak tanımlayabileceğiniz gibi, kendiniz de belirli bir dosya sistemi girebilirsiniz. "auto" dosya sistemini kendiliğinden saptayacaktır. Genellikle bu işlem başarıyla gercekleşir. Taşınabilir aygıtlar icin genellikle "auto" kullanılır. "auto"nun dışında kalan seceneklerden yaygın olarak kullanılanları:

vfat - FAT dosya sistemi icin
ntfs - NTFS dosya sistemlerini yalnızca okunabilir olarak bağlamak icin
ntfs-3g - NTFS dosya sistemini okunabilir ve yazılabilir olarak bağlamak icin
udf,iso9660 - CD/DVD suruculer icin
swap - Takas alanı bağlamak icin
ext2, ext3, jfs, reiserfs, vb.


Ayarlar

Girilmesi gereken ayarlar dosya sistemine bağlı olarak değişmektedir. "defaults" yazabilir, ya da aşağıda yazan onerilerden faydalanabilirsiniz.

Ubuntu 8.04, kok dizinin bulunduğu dosya sistemleri (ext2, ext3 vb.) icin varsayılan olarak relatime ozelliğini kullanmaktadır. Relatime ile ilgili detaylı bilgiyi burada İngilizce olarak bulabilirsiniz.
defaults = rw, suid, dev, exec, auto, nouser ve async seceneklerini icerir.
ayrı bir surucude /home klasoru kullanmak icin ayarlarınız, nodev, nosuid olmalı.
ntfs/vfat icin ayarlarınızı yaparken gozonunde bulundurmanız gereken şey, erişim izinlerinin bağlama esnasında (umask, dmask ve fmask kullanarak) belirleneceği ve daha sonra chmod kullanarak değiştirelemeyecek olmasıdır.
Bu konuda benim tavsiyem, dmask=027 ya da fmask=137 kullanmanızdır, eğer umask=000 kullanırsanız tum dosyalarınız calıştırılabilir olacaktır. Eğer daha geniş izinlere sahip secimler arıyorsanız onlar da dmask=000 ve fmask=111 olabilir.
Sambayla paylaşılan dosyaları bağlamak icin, bir kullanıcı adı ve şifre oluşturabilirsiniz, ya da daha iyi bir secim olarak, tanıtım dosyası (credentials file) oluşturabilirsiniz. Bu dosyaya root kullanıcısı, chmod=0400 izinleriyle sahip olmalıdır.

Bunların yanında sık kullanılan ayarlar şoyle,

sync/async = Dosya sistemine tum I/O'lar eşzamanlı/eşzamanlı olmayarak yapılır.
auto = Bağlamak istediğiniz surucu/bolum acılış surecinde otomatik olarak bağlanabilir. Bu secenek zaten "mount -a" komutunun varsayılan davranışı olduğu icin ayrıca belirtmek gereksizdir.
noauto = Surucu/bolum acılış surecinde otomatik olarak bağlanmaz.
dev/nodev = Bilgisi olan bir arkadaştan acıklama bekliyorum buraya.
exec/noexec = İkilik (binary) dosyaların calışmasına izin ver/verme.
suid/nosuid = SUID ve SGID bit kullanımına izin ver/verme.
ro = Yalnızca okunabilir bağlamak icin.
rw = Hem okunabilir hem yazılabilir bağlamak icin.
user = Herhangi bir kullanıcının bağlama işlemini gercekleştirebilmesi icin gereklidir, bu secenek "noexec, nosuid, nodev" seceneklerini eğer aksi belirtilmemişse kendiliğinden kullanır.
nosuer = Sadece root yetkisine sahip kullanıcının bağlama işlemi gercekleştirebilmesini sağlar. Bu secenek varsayılan seceneklerden birisidir.
defaults = Varsayılan ayarları - rw, suid, dev, exec, auto, nouser, async - kullanır.
_netdev = Ağdan bağlanan suruculer icin kullanılır, bu suruculeri ağa bağlandıktan sonra sisteminize bağlayın. Sadece "nfs" dosya sistemi icin gecerlidir.

Ozel dosya sistemleri icin farklı ayarlar edinmek isterseniz, bu adreste İngilizce olarak bulabilirsiniz.


Dump

Bu değişken yedekleme aracı olan "dump" komutunun surucuyu/bolumu yedekleyip yedekleyemeyeceğini belirler. "0" yedekleme yapmaz, "1" yapar. Bu secenek cok seyrek kullanılır, eğer bu komutla ilgili bir şupheniz olursa "0" yapmanızda fayda var.


Pass (fsck sırası)

Pass seceneği fsck komutunun surucu/bolumleri hangi sırayla kontrol edeceğini belirler. "0" secilirse kontrol edilmez. Bu değişken genelde kafa karıştırır, işte bu değişkene girebileceğiniz 3 secenek;

0 = kontrol yapılmaz.
1 = ilk kontrol edilecek bolum/surucu.
2 = daha sonra kontrol edilecek bolum/surucu.

Kullanımına gelince, "1"i kok dizininin bulunduğu ve "2"yi de geri kalanı icin kullanın. "2" ile işaretlenmiş olan suruculer/bolumler icin ayrıca bir sıralama yapmanıza gerek yoktur. Ağdan bağladığınız ve kontrol edilmesini istemediğiniz bolumler icin "0"ı kullanın.

Bunlardan bağımsız olarak, "tune" ile kontrol sıklığını değiştirebilirsiniz. Varsayılanı 30 bağlama işleminde bir defadır, ve bu işlem dosya sisteminizin uyumlu calışıp calışmadığını kontrol etmesi acısından onemli olduğu icin varsayılan ayarı değiştirmemeniz onerilir.



Ornekler

Kod:
# /etc/fstab: static file system information. # #
proc /proc proc defaults 0 0 # /dev/sda5 UUID=be35a709-c787-4198-a903-d5fdc80ab2f8 / ext3 relatime,errors=remount-ro 0 1 # /dev/sda6 UUID=cee15eca-5b2e-48ad-9735-eae5ac14bc90 none swap sw 0 0 /dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0

Aşağıdaki ağ paylaşımındaki bağlama işlemleri (NFS vb.) orneklenirken ağ bağlantılarınızın ayarlı olduğu varsayılmıştır.

Kod:
# FAT ~ Linux FAT dosya sistemini vfat olarak tanır.) # /dev/hda1 UUID=12102C02102CEB83 /media/windows ntfs-3g auto,users,uid=1000,gid=100,dmask=027,fmask=137,ut f8 0 0 # NTFS ~ Bağladığınız bolum/sabitdisklere yazma izniniz olması icin ntfs-3g kullanın) # /dev/hda1 UUID=12102C02102CEB83 /media/windows ntfs-3g auto,users,uid=1000,gid=100,dmask=027,fmask=137,ut f8 0 0 # Zip Drives ~ Linux recognizes ZIP drives as sdx'''4''' # Ayrı bir başlangıc (/home) klasoru oluşturma # /dev/sda7 UUID=413eee0c-61ff-4cb7-a299-89d12b075093 /home ext3 nodev,nosuid,relatime 0 2 # Herhangi bir veri bolumu # /dev/sda8 UUID=3f8c5321-7181-40b3-a867-9c04a6cd5f2f /media/data ext3 relatime,noexec 0 2 # Samba //server/share /media/samba cifs user=user,uid=1000,gid=100 0 0 # "Server" = Samba server (Eğer "hosts" dosyanızda bir isim verdiyseniz o isimle, ya da, IP olarak) # "share" = paylaşılan klasorun adı # "user" = samba kullanıcı adınız # Bu ayarlar bağlama esnasında şifre isteyecektir. Eğer şifreyi otomatik girsin istiyorsanız, tanıtım dosyası (credentials file) kullanın. # Bunun icin "user=user" kısmını "credentials=/etc/samba/credentials" ile değiştirin. Ve credentials file'ına aşağıdaki iki # satırı ekleyin. # user=user # password=password # Dosyayı yandaki komutu kullanarak root kullanıcıya ait yapın (sudo chown root.root /etc/samba/credentials && sudo chmod 400 /etc/samba/credentials) # NFS Server:/share /media/nfs nfs rsize=8192 and wsize=8192,noexec,nosuid # "Server" = Samba server (Eğer "hosts" dosyanızda bir isim verdiyseniz o isimle, ya da, IP olarak). # "share" = Paylaşılan klasorun adı. #SSHFS sshfs#[email protected]:/share fuse user,allow_other 0 0 # "Server" = Samba server (Eğer "hosts" dosyanızda bir isim verdiyseniz o isimle, ya da, IP olarak) # "share" = paylaşılan klasorun adı.
Dosya Sistemleriyle İlgili Ornekler

ext2 ve ext3

ext2 ve ext3 arasındaki temel fark, ext3'un gunluk tutma ozelliğine (journaling) sahip olmasıdır. Bu da sistem hatalarında doğabilecek zararları onler. Ubuntu (root) dosya sistemi bağlamak icin,

Kod:
UUID=30fcb748-ad1e-4228-af2f-951e8e7b56df / ext3 defaults,errors=remount-ro,noatime 0 1
Farklı bir bolum/sabit disk bağlamak icin,

Kod:
/dev/sdb1 /media/disk2 ext2 defaults 0 2
fat16 ve fat 32

Kod:
/dev/hda2 /media/data1 vfat defaults,user,exec,uid=1000,gid=100,umask=000 0 0
Kod:
/dev/sdb1 /media/data2 vfat defaults,user,dmask=027,fmask=137 0 0
NTFS

Aşağıdaki ornek bir Windows bolumu bağlamak icin (standart durumlarda) kullanılabilecek en iyi ornektir.


Kod:
/dev/hda2 /media/windows ntfs-3g defaults,locale=en_US.utf8 0 0
Sisteminizde bulunan locale'leri listelemek icin,

Kod:
locale -a

komutu yeterli olmalıdır.

hfs+

hfs+ dosya sistemi bazı Apple bilgisayarlar tarafından kullanılmaktadır.


Kod:
/dev/sdb1 /media/Macintosh_HD hfsplus rw,exec,auto,users 0 0

Fstab Uzerinde Duzenlemeler Yapmak

NOT: Sistem dosyalarını duzenlemeden once mutlaka yedeklerini alın. Nano'yu "-B" kullanarak başlatırsanız ($ nano -B /dosya/yeri) otomatik olarak yedek alacaktır.

Ubuntu kullanıyorsanız,

Kod:
gksu gedit /etc/fstab

Kubuntu kullanıyorsanız,

Kod:
kdesu kate /etc/fstab
Ucbirimde duzenlemek icin aşağıdaki komutu kullanın,

Kod:
sudo nano -Bw /etc/fstab
-B = dosyayı otomatik olarak yedekleyecektir.
-w = uzun satırların otomatik olarak kısaltılmasını engelleyecektir.

Bir başka komut olarak da,


Kod:
sudo -e /etc/fstab

kullanılabilir.


Konuyla İlgili Faydalı Komutlar

fstab dosyasının iceriğini gormek icin,

Kod:
cat /etc/fstab
Sistemin algıladığı tum UUID'leri listelemek icin (iki komuttan birisini secmeniz yeterlidir),

Kod:
sudo blkid ls -l /dev/disk/by-uuid
Sisteminize bağlı sabit surucu ve bolumleri listelemek icin,

Kod:
sudo fdisk -l
Fstab dosyasında belirtilmiş tum bolumleri/suruculeri bağlamak icin,

Kod:
sudo mount -a
Bağlama noktasında belirtilen klasorun onceden oluşturulması gerektiğini unutmayın, bunun icin, aşağıdakilere benzer komutlar kullanabilirsiniz

Kod:
sudo mkdir /path/to/mountpoint sudo mkdir /media/disk2

Kaynak : ubuntu-tr









__________________