Linux'da Bölüm Eşleme (Mounting)

Eyl 06, 2013
Bilindiği gibi Linux işletim sisteminin dosyalama sistemi Windows'tan çok farklıdır. Diğer bir deyişle Linux, dosyalarını ayrı yöntemlerle düzenler. Windows kullanıcısı, Linux’un kaynak yapısını garip bulabilir. Yine Windows İşletim sisteminden Linux kullanmaya geçen bir kullanıcı; şimdiye kadar C, D gibi disklere Bilgisayarım üzerinden rahatça ulaşabildikten sonra, bu disklere Linux sisteminde erişebilmek için onları ayrıca kendi dizinine ekleme gibi artı bir işlem yapması gerekir.

Mount; bağlanmak, takmak anlamındadır. Sistemin yüklü olduğu dosya sisteminin dışında ikinci bir disk, CDROM, disket vs. (a second hard-drive) ne olursa olsun, bu parçaya erişmeden önce, sistemde var olan bir dizine iliştirilmesi gerekir. Bu iliştirmeye bölüm eşleme denir. Aygıtın bağlandığı dizine ise bağlanma noktası veya "mount noktası" denir.

Ancak bu bağlanma/takma işleminden sonra kullanılan ikincil aygıta bağlanma noktası üzerinden erişebilir. Kullanılan aygıt çıkarılacağı zaman bağlantının sonlandırılması, yani koparılması gerekir. Bu yüzden aygıt uzaklaştırılmadan önce "unmount" işlemi yapılır, bağlantı kesilir.

Bağlamanın Yapılması

Linux’ta mount adlı komut kullanılır. mount komutu, mevcut bir dizine takılacak olan yeni aygıtın adresi, ve bağlanma noktası ile birlikte kullanılır. Standart komut kalıbı şu şekildedir: $ mount -t  tip aygıt    dizin.

     $ mount /dev/fd0 /mnt/floppy

Yukarıdaki komutta /dev/fd0: disket sürücüsü, /mnt/floppy: bağlanma noktası adresleridir. Bu komutun işletilmesinden sonra /mnt/floppy üzerinden disket sürücüsüne erişilebilir.

"fstab" Dosyası, Ayrıntılı Mount Etme Seçenekleri

fstab, bilgisayardaki tüm bölümler ve depoolama aygıtlarıyla ilgili bilgilerin bulunduğu bir biçimlendirme dosyasıdır. /etc dosyasının altında bulunan dosya için adres: /etc/fstab dır.
Düz bir yazı dosyası özelliğinde olan /etc/fstab, disk bölümlerinin ve diğer harici depolama aygıtlarının hangi bağlanma noktalarına nasıl bağlanacakları bilgilerini içerir. fstab dosyası değiştirilebilir bir yazı dosyası olduğunda bölüm eşleme ile ilgili herhangi bir sorun, bu dosyadaki bilgileri tekrar düzenleyerek giderilebilir.
fstab dosyası farklı özellikte bölümlere sahip her makina için farklı içerikte olacaktır; fakat burada incelendiği gibi basit yapısı hep aynıdır.
Aygıt ismi   Bağlanma Noktası Dosya Sistemi Türü  Mount Seçenekleri   
/dev/hda2  /  ext3  defaults 1 1 
/dev/hdb1 /home  ext3  defaults 1 2 
/dev/cdrom  /media/cdrom   auto  ro,noauto,user,exec 0 0 
/dev/fd0  /media/floppy   auto  rw,noauto,user,exec 0 0 
Proc  /proc  proc  defaults 0 0
/dev/hda1 swap   swap  pri=42 0 0 

Aygıt İsmi, Bağlanma Noktası Kolonlarına Yakın Bir Bakış

Bu kolonlar, mount komutuna, ‘$ mount -t  tip aygıt    dizin’  şablonu elle girildiğinde yaptırdığının tamamen aynısını yaptırırlar. Bir aygıt için, fstab dosyasındaki bağlanma noktası onun varsayılan bağlanma noktasıdır. Yani özel olarak komutla mount edilmemişse, dosyada belirtilen dizin, bağlanma noktası olarak kabul edilir, aygıt o noktadan ana dizine bağlanır. Bunun sonucu olarak örneğin;

     $ mount   /dev/fd0

komutu girildiğinde, fstab dosyasında  /dev/fd0 ın sırasındaki bağlanma noktasına disket bağlanacaktır; çünkü disket için varsayılan mount edilme noktası orasıdır.
Genelde, bağlanma noktaları, /mnt gibi özel bir dosyanın altındadır. Bazı Linux çeşitlerinde ise (örneğin SuSE) yukarıdaki fstab dosyası örneğindeki gibi bağlanma noktaları /media’nın altındadır.
Şöyle bir fstab dosyası satırında,

     $ mount /dev/cdrom /media/cdrom auto ro,noauto,user,exec 0 0

CDROM’un otomatik olarak /media/cdrom dizinine bağlanması sağlanır. user seçeneği, CD'yi normal bir kullanıcı gibi bağlanmaya izin verir. ro seçeneği, (readonly) CD'ye yazma yapılamayacağı için dizine sadece okuma erişimi izin verilmesini ayarlar. exec seçeneği ise kullanıcı CD'den bir program çalıştıracaksa yazmalıdır. Son olarak noauto seçeneği, sistem başlarken otomatik mount etmeyi engeller. Bu özellik, CDROM ve disket için kullanılır; çünkü bilgisayar her açıldığında içinde CDROM veya disket olmayabilir.

Bağlantıyı Silme

Kurulu bağlantıyı silmek (unmount etmek) için umount konutu kullanılır. Yukarıdaki örnekte eşlenmiş CDROM’u unmount etmek için aşağıdaki iki komut da kullanılabilir.

     umount /media/cdrom
     umount /dev/cdrom

NTFS Gibi Windows Kaynaklı Dosya Sistemlerinin Linux’ta Bağlanması

NTFS ve Windows gibi farklı işletim sistemi tabanlı dosya sistemlerinin yapıları Linux’tan farklıdır. Bunun için, NTFS dosya sistemi bağlanması için öncelikle Linux için RPM adı verilen paket yöneticisinin sisteme yüklenmiş olması gerekir. Tam olarak doğru paket yöneticisinin yüklenmiş olması dosya sistemini bölüm eşleme sırasında hiçbir aksaklık çıkmaması bakımından önemlidir.

RPM Seçimi, Yüklenmesi ve Kurulumu

İndirilecek RPM’in, kernel’in versiyonu ile tamamen uyumlu olması gerekir. Bulunan sistemin özelliklerini araştırmak için birkaç örnek yol gösterilecektir.

  1. Önce hangi Linux’un kullanıldığı öğrenilir:

     cat /etc/redhat-release

Bu komutun çıktısı, kullanılan sürüme göre şu şekillerde olacaktır:

     Fedora Core release 3 (Heidelberg)
     Fedora Core release 4 (Stentz)
     Fedora Core release 5 (Bordeaux)
     Red Hat Linux release 9 (Shrike)

    2.    İkinci olarak sürüm öğrenilir:

     uname -r

Bu komut ile aşağıdakine benzer bir yanıt alınır:

     2.4.18–3   
     2.4.18-17.7.x
     2.4.22-1.2115.nptl
     2.6.8-1.521

Buna ek olarak sürümün smp (çoklu işlemci kullanıldığının göstergesidir), bigmem, hugemem, BOOT gibi son ekleri olabilir.

    3.    Bir sonraki işlem ne tip işlemci kullanıldığının sorgulanmasıdır, bu komut hangi kernel PRM’inin yüklü olduğunu bulacaktır:

     rpm -q --queryformat "%{ARCH}\n" kernel

İkinci aşamadaki komut, herhangi bir sonek döndürdüyse, ör. smp, bu komut işletilirken sadece kernel yazılmayıp kernel-smp girilir. Son Pentium bilgisayarları i686, athlon ise i586  ya da i386 gibi bir koda sahiptir.

Gereken tüm özellikler sorgulandıktan sonra bir kaynaktan, örneğin Linux’un resmi sitelerinden, doğru sürüm yüklenebilir. Yukarıdaki sorgular sonucu kernel-ntfs-2.4.18-14.i686.rpm RPM paketinin yüklendiğini varsayarak sıradaki direktiflere devam edilecektir. Ancak daha güncel NTFS RPM lerin;       
kernel-module-ntfs-2.6.8-1.541-2.1.17-0.fc.1.2.i586.rpm gibi isimleri vardır.

    4.    Paketin kurulması için sıradaki komut çalıştırılır:

     rpm -ihv kernel-ntfs–2.4.18–14.i686.rpm

Kurulum ekrana şu şekilde yansır:

     Preparing...      ############################### [100%]
       1:kernel-ntfs  ############################### [100%]

Sağlıklı kurulum için # karakterleri haricinde hiçbir hata göstergesi görünmemelidir. NTFS RPM kurulumunda kurulumun tamamlandığını belirten herhangi bir mesaj da çıkmaz.

    5.    Bu sürücü desteği yüklendikten sonra geriye kalan tek şey, aygıtın dizindeki yerini, bağlanma noktasını belirleyip mount komutunu çalıştırmaktır.

     $ mount    -t    /dev/hda2    /mnt

(/dev/hda2 : IDE sürücüyü  belirtir, /dev/sdb1: 2. SCSI hard disk’in ilk bölümünü belirtir vb. )

Kurulum ve mount ile ilgili talimatlar burada tamamlanmıştır. Şimdi çıkabilecek birkaç hata incelenecektir.
 
     error: can't create transaction lock

Daha sık karşılaşılan hatalara geçmeden önce bu hatadan başlanabilir. Unutulmamalıdır ki RPM kurulumu sadece root giriş yapıldığı zaman gerçekleşebilir. Bu tip bir hatada su komutu girilip root şifresi verildikten sonra kurulum tekrar denenir.

     .../ntfs.ko: Invalid module format
     FATAL: ntfs.ko not found 
     Unresolved externals in ntfs.o

Yukarıdaki üç hatada da yanlış formatta RPM kurulumu mesajı verilmektedir. Bu durumda çözüm, mevcut RPM in silinip, uygun olanının tekrar kurulmasıdır.

RPM in silinmesi

Önce makinede yüklü tüm RPM lerin listelenmesi için bu komut yürütülür:

     rpm -qa | grep -i ntfs

Komutun çıktısı rpm –e  silme komut parçasına eklenir. Yüklenen RPM’nin 
kernel-module-ntfs-2.6.9-1.667smp-2.1.20-0.fc.1.2 olması durumunda işletilecek olan komut aşağıdaki gibi olabilir:

     rpm -e kernel-module-ntfs–2.6.9–1.667smp–2.1.20–0.fc.1.2