Fstab: Revizyonlar arasındaki fark

Ubuntu Türkiye Wiki sitesinden
Gezinti kısmına atla Arama kısmına atla
13. satır: 13. satır:
Bir fstab girisinin sözdizimi şu şekilde olmalıdır.
Bir fstab girisinin sözdizimi şu şekilde olmalıdır.


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


'''Değişkenler ve Açıklamaları'''
'''Değişkenler ve Açıklamaları'''

13.36, 8 Kasım 2009 tarihindeki hâli

Ö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 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'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:

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 bazı diğer ayarlar da şö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 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ı

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

# 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 sdx4 
# 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,

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 (standart durumlarda) 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,

locale -a

komutu yeterli olmalıdır.

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,

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 seçim olarak da bunu kullanabilirsiniz,

sudo -e /etc/fstab

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
sudo mkdir /path/to/mountpoint
sudo mkdir /media/disk2