Fstab

Ubuntu Türkiye Wiki sitesinden
Gezinti kısmına atla Arama kısmına atla

Özet

Fstab sabit diskinizdeki bölümleri sisteminize bağlama (mount) işleminin otomatik olarak yapılabilmesi için gerekli bir ayar dosyasıdır. Bu başlık altında fstab dosyanızı nasıl düzenleyeceğinizi öğreneceksiniz.

  • 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.

Bağlamak (mount etmek) ne demektir?

Mount (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'da söz dizimi (Syntax)

Bir fstab girisinin sözdizimi şu şekilde olmalıdır.

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

Değişkenler ve açıklamaları

  • <aygıt> 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.

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:

Görevi: Diskleri uuid ile listeler.
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.

Görevi: Bir bağlama klasörü oluşturur
mkdir /media/İstediğinizDiskİsmi

Dosya sistemi

Bu değişkeni "auto" olarak tanımlayabileceğiniz gibi kendiniz de belirli bir dosya sistemi yazabilirsiniz. "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ı şunlardır:

  • 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 komutunu kullanarak değiştirilemeyecek 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 bazı diğer ayarlar da şöyledir:

  • sync/async = Dosya sistemine tüm I/O'lar eşzamanlı olarak/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 "ntfs" dosya sistemi için geçerlidir.

Özel dosya sistemleri için farklı ayarlar edinmek isterseniz bu adreste ilgili bir yazı var.

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üler.

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.

Örnek Fstab dosyaları

Dosya İçeriği
Dosya yolu:/etc/fstab

# /etc/fstab: static file system information
#
# <file system> <mount point> <type> <options> <dump> <pass>
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 örneklerde ağ paylaşımındaki bağlama işlemleri (NFS vb.) örneklenirken ağ bağlantılarınızın çalışan bir şekilde ayarlı olduğu varsayılmıştır.

Dosya İçeriği
Dosya yolu:/etc/fstab

# 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


Dosya İçeriği
Dosya yolu:/etc/fstab

# 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


Dosya İçeriği
Dosya yolu:/etc/fstab

# Ayrı bir başlangıç (/home) klasörü oluşturma
# /dev/sda7
UUID=413eee0c-61ff-4cb7-a299-89d12b075093 /home ext3 nodev,nosuid,relatime 0 2


Dosya İçeriği
Dosya yolu:/etc/fstab

# Herhangi bir veri bölümü
# /dev/sda8
UUID=3f8c5321-7181-40b3-a867-9c04a6cd5f2f /media/data ext3 relatime,noexec 0 2


Dosya İçeriği
Dosya yolu:/etc/fstab

# 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ı.


Dosya İçeriği
Dosya yolu:/etc/fstab

#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 ilgili ö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,

  • UUID=30fcb748-ad1e-4228-af2f-951e8e7b56df / ext3 defaults,errors=remount-ro,noatime 0 1

Farklı bir bölüm/sabit disk bağlamak için,

  • /dev/sdb1 /media/disk2 ext2 defaults 0 2

fat16 ve fat 32

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

NTFS Aşağıdaki örnek bir Windows bölümü bağlamak için (normal koşullarda) kullanılabilecek en iyi örnektir.

  • /dev/hda2 /media/windows ntfs-3g defaults,locale=en_US.utf8 0 0

Sisteminizde bulunan locale'leri listelemek için şu komutu kullanmanız gerekir.

Görevi: Locale değerlerini listeler
locale -a

hfs+

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

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

Fstab üzerinde düzenleme yaparken

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,

Görevi: fstab dosyası için gedit açar
sudo gedit /etc/fstab

Kubuntu kullanıyorsanız,

Görevi: fstab dosyası düzenlemek için kate açar
sudo kate /etc/fstab

Uçbirimde düzenlemek için aşağıdaki komutu kullanın,

Görevi: fstab dosyasını düzenlemek için nano kullanır
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 seçim olarak da bunu kullanabilirsiniz,


sudo -e /etc/fstab

Konuyla ilgili faydalı komutlar

  • fstab dosyasının içeriğini görmek için,
Görevi: fstab içeriğini görüntüler
cat /etc/fstab
  • Sistemin algıladığı tüm UUID'leri listelemek için,
Görevi: Diskleri ve uuid bilgilerini gösterir
sudo blkid

veya

Görevi: Diskleri ve uuid bilgilerini gösterir
ls -l /dev/disk/by-uuid
  • Sisteminize bağlı sabit sürücü ve bölümleri listelemek için,
Görevi: sabit sürücü ve bölümleri listeler
sudo fdisk -l
  • Fstab dosyasında belirtilmiş tüm bölümleri/sürücüleri bağlamak için,
Görevi: Bölümleri bağlar
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:
Görevi: bağlama noktası oluşturur
sudo mkdir /media/disk2

Ayrıca bakınız