Fstab sabit diskinizdeki bölümleri sisteminize bağlama (mount) işleminin otomatik olarak yapılabilmesi için gerekli bir ayar dosyasıdır.
Mount Etmek (bağlamak) Ne Demektir?
Mount etmek (bağlamak) sabit diskinizdeki bir bölümün, dosya sisteminizde oluşturulan bir klasör (mount point - bağlama noktası) üzerinden erişime açılması işleminin adıdır.
Fstab, dahili sürücüleri, CD/DVD sürücülerini ve ağ dosya paylaşımını (samba/nfs/sshfs) düzenler. Flash bellekler gibi taşınabilir cihazlar da fstab üzerinden 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ı çok benzerdir.
fstab dosyasında belirtilmiş sürücüler ve bölümler, sistem açılışında (boot) otomatik olarak bağlanmak üzere ayarlanabilirler.
Bir sürücü veya bölüm 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
Sözdizimi (syntax)
Bir fstab girisinin sözdizimi şu şekilde olmalıdır.
Sabit disk ya da bölümleme - /dev klasöründeki yeri ya da UUID olarak yazılabilir.
<bağlama noktası>
Bağlamak istediğiniz sabit disk ya da bölüme dosya sisteminizden erişimi sağlayacağınız klasör. NOT: takas alanının (swap) bağlama noktasına ihtiyacı yoktur. NOT2: Bağlama noktası olacak klasörlerin isimlerinde boşluk olmamalıdır.
<dosya sistemi>
Sabit disk ya da disk bölümünün dosya sistemi
<ayarlar>
Sabit disk ya da bölümün bağlama ayarları
<dump>
Sabit disk ya da bölümün "dump" komutu kullanılarak yedeklenmesini ayarlar. Bu değişken genelde "0"dır ve bu haliyle yedekleme devre dışıdır.
<pass>
Sistem açılışı (boot) sırasında fsck'nin bağlı sürücü ya da bölümleri kontrol sırasını belirler. Kök dizinin bulunduğu sürücü/bölüm 1 olmalıdır. Diğer sürücüler/bölümler 2 olabilir, ya da 0 yapılarak devredışı bırakılabilir.
Örnek fstab dosyaları için aşağıdaki örnekler bölümüne bakın. Şimdi de her değişkeni detaylı olarak açıklayalım.
Aygıt
Ubuntu bölümleri ve aygıtları varsayılan olarak UUID kullanarak isimlendirir. UUID "xxx.yyy.zzz" gibi bir görünüme sahiptir. Sisteminize bağlı cihazları UUID'lerine göre sıralamak için aşağıdaki komutu kullanabilirsiniz.
sudo blkid
Bunun yanında bölümlerinizı ve aygıtlarınızı,
Aygıt yolunu, (ÖRN: /dev/sdxy ya da /dev/hdax)
Etiketini, (ÖRN: ETİKET=aygıt)
Ağ yolunu, (ÖRN: Samba için -> //server/share, NFS için -> server:/share, SSHFS için -> sshfs#user@share:/share)
kullanarak da tanıtabilirsiniz.
Bağlama Noktası
Bağlama noktası, sabit diskinizi/bölümünüzü bağlamak için kullanılan, kök dizini içerisinde bir klasördür. Ubuntu varsayılan olarak /media klasörünün içinde alt klasörler oluşturur. Buna rağmen dilediğiniz klasörü kullanabilirsiniz.
Bağlama noktasına isim verirken de dilediğiniz ismi seçmekte özgürsünüz, ancak bu isimde boşluk olmamalıdır ve bağlama işlemini gerçekleştirmeden önce bu klasörü oluşturmanız gereklidir.
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 gerçekleşir. Taşınabilir aygıtlar için genellikle "auto" kullanılır. "auto"nun dışında kalan seçeneklerden yaygın olarak kullanılanları:
vfat - FAT dosya sistemi için
ntfs - NTFS dosya sistemlerini yalnızca okunabilir olarak bağlamak için
ntfs-3g - NTFS dosya sistemini okunabilir ve yazılabilir olarak bağlamak için
udf,iso9660 - CD/DVD sürücüler için
swap - Takas alanı bağlamak için
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 önerilerden faydalanabilirsiniz.
Ubuntu 8.04, kök dizinin bulunduğu dosya sistemleri (ext2, ext3 vb.) için varsayılan olarak relatime özelliğini kullanmaktadır. Relatime ile ilgili detaylı bilgiyi burada İngilizce olarak bulabilirsiniz.
defaults = rw, suid, dev, exec, auto, nouser ve async seçeneklerini içerir.
ayrı bir sürücüde /home klasörü kullanmak için ayarlarınız, nodev, nosuid olmalı.
ntfs/vfat için ayarlarınızı yaparken gözönünde 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 tüm dosyalarınız çalıştırılabilir olacaktır. Eğer daha geniş izinlere sahip seçimler arıyorsanız onlar da dmask=000 ve fmask=111 olabilir.
Sambayla paylaşılan dosyaları bağlamak için, bir kullanıcı adı ve şifre oluşturabilirsiniz, ya da daha iyi bir seçim 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 şöyle,
sync/async = Dosya sistemine tüm I/O'lar eşzamanlı/eşzamanlı olmayarak yapılır.
auto = Bağlamak istediğiniz sürücü/bölüm açılış sürecinde otomatik olarak bağlanabilir. Bu seçenek zaten "mount -a" komutunun varsayılan davranışı olduğu için ayrıca belirtmek gereksizdir.
noauto = Sürücü/bölüm açılış sürecinde otomatik olarak bağlanmaz.
dev/nodev = Bilgisi olan bir arkadaştan açıklama bekliyorum buraya.
exec/noexec = İkilik (binary) dosyaların çalışmasına izin ver/verme.
suid/nosuid = SUID ve SGID bit kullanımına izin ver/verme.
ro = Yalnızca okunabilir bağlamak için.
rw = Hem okunabilir hem yazılabilir bağlamak için.
user = Herhangi bir kullanıcının bağlama işlemini gerçekleştirebilmesi için gereklidir, bu seçenek "noexec, nosuid, nodev" seçeneklerini eğer aksi belirtilmemişse kendiliğinden kullanır.
nosuer = Sadece root yetkisine sahip kullanıcının bağlama işlemi gerçekleştirebilmesini sağlar. Bu seçenek varsayılan seçeneklerden birisidir.
defaults = Varsayılan ayarları - rw, suid, dev, exec, auto, nouser, async - kullanır.
_netdev = Ağdan bağlanan sürücüler için kullanılır, bu sürücüleri ağa bağlandıktan sonra sisteminize bağlayın. Sadece "nfs" dosya sistemi için geçerlidir.
Özel dosya sistemleri için farklı ayarlar edinmek isterseniz, bu adreste İngilizce olarak bulabilirsiniz.
Dump
Bu değişken yedekleme aracı olan "dump" komutunun sürücüyü/bölümü yedekleyip yedekleyemeyeceğini belirler. "0" yedekleme yapmaz, "1" yapar. Bu seçenek çok seyrek kullanılır, eğer bu komutla ilgili bir şüpheniz olursa "0" yapmanızda fayda var.
Pass (fsck sırası)
Pass seçeneği fsck komutunun sürücü/bölümleri hangi sırayla kontrol edeceğini belirler. "0" seçilirse kontrol edilmez. Bu değişken genelde kafa karıştırır, işte bu değişkene girebileceğiniz 3 seçenek;
0 = kontrol yapılmaz.
1 = ilk kontrol edilecek bölüm/sürücü.
2 = daha sonra kontrol edilecek bölüm/sürücü.
Kullanımına gelince, "1"i kök dizininin bulunduğu ve "2"yi de geri kalanı için kullanın. "2" ile işaretlenmiş olan sürücüler/bölümler için ayrıca bir sıralama yapmanıza gerek yoktur. Ağdan bağladığınız ve kontrol edilmesini istemediğiniz bölümler için "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 çalışıp çalışmadığını kontrol etmesi açısından önemli olduğu için varsayılan ayarı değiştirmemeniz önerilir.
Aşağıdaki ağ paylaşımındaki bağlama işlemleri (NFS vb.) örneklenirken ağ bağlantılarınızın ayarlı olduğu varsayılmıştır.
# 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,utf8 0 0
# NTFS ~ Bağladığınız bölüm/sabitdisklere yazma izniniz olması için ntfs-3g kullanın)
# /dev/hda1
UUID=12102C02102CEB83 /media/windows ntfs-3g auto,users,uid=1000,gid=100,dmask=027,fmask=137,utf8 0 0
# Zip Drives ~ Linux recognizes ZIP drives as sdx'''4'''
# Ayrı bir başlangıç (/home) klasörü oluşturma
# /dev/sda7
UUID=413eee0c-61ff-4cb7-a299-89d12b075093 /home ext3 nodev,nosuid,relatime 0 2
# Herhangi bir veri bölümü
# /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 klasörün 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 için "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 klasörün adı.
#SSHFS
sshfs#user@server:/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 klasörün adı.
Dosya Sistemleriyle İlgili Örnekler
ext2 ve ext3
ext2 ve ext3 arasındaki temel fark, ext3'ün günlük tutma özelliğine (journaling) sahip olmasıdır. Bu da sistem hatalarında doğabilecek zararları önler. Ubuntu (root) dosya sistemi bağlamak için,
NOT: Sistem dosyalarını düzenlemeden önce 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,
gksu gedit /etc/fstab
Kubuntu kullanıyorsanız,
kdesu kate /etc/fstab
Uçbirimde düzenlemek için aşağıdaki komutu kullanın,
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,
sudo -e /etc/fstab
kullanılabilir.
Konuyla İlgili Faydalı Komutlar
fstab dosyasının içeriğini görmek için,
cat /etc/fstab
Sistemin algıladığı tüm UUID'leri listelemek için (iki komuttan birisini seçmeniz yeterlidir),
sudo blkid
ls -l /dev/disk/by-uuid
Sisteminize bağlı sabit sürücü ve bölümleri listelemek için,
sudo fdisk -l
Fstab dosyasında belirtilmiş tüm bölümleri/sürücüleri bağlamak için,
sudo mount -a
Bağlama noktasında belirtilen klasörün önceden oluşturulması gerektiğini unutmayın, bunun için, aşağıdakilere benzer komutlar kullanabilirsiniz