Linux Mount Komutu ile USB ve Disk Bağlama

Linux sistemlerinde, dosya sistemleri veya depolama cihazları belirli dizinlere bağlanarak (mount) sistemde kullanılabilir hale getirilir. Bağlama işlemi, Linux’un temel işleyişini sağlamak için oldukça önemlidir, çünkü cihazlar, sabit disk bölümleri, USB sürücüler, ağ paylaşımları ve ISO dosyaları gibi kaynaklara erişim sağlamak bu işlemle mümkün olur. Bu rehberde, Linux sisteminde dosya sistemlerini bağlamayı, detaylı komutları ve çeşitli kullanım örneklerini adım adım inceleyeceğiz.

1. Dosya Sistemleri ve Bağlama (Mount) Nedir?

Linux işletim sisteminde, her şey bir dosya olarak kabul edilir; bu sadece belgeleri veya dizinleri değil, aynı zamanda cihazları ve hatta işlemleri de içerir. Dolayısıyla, sabit diskler, USB sürücüler veya ağdaki uzak paylaşımlar, öncelikle bağlama işlemiyle bir dizine erişim sağlanarak kullanılabilir hale getirilir. Bağlama işlemi yapılmadan, bu cihazlara doğrudan erişim sağlanamaz.

Bir dosya sistemini bağlamak, genellikle iki temel adımı içerir:

  1. Bağlama noktasının belirlenmesi veya oluşturulması.
  2. mount komutu ile dosya sisteminin belirli bir dizine bağlanması.

Bağlama işlemi, genellikle sistem açılışında otomatik olarak gerçekleştirilir, ancak kullanıcı gerektiğinde belirli cihazları manuel olarak bağlayabilir.

2. Mevcut Bağlanmış Dosya Sistemlerini Görüntüleme

Linux sisteminde, mevcut olarak bağlanmış tüm dosya sistemlerini görüntülemek için mount komutunu tek başına kullanabilirsiniz. Bu komut, hangi cihazların hangi noktalara bağlı olduğunu ve bu bağlantıların nasıl yapılandırıldığını gösterir:

$ mount

Bu komutun çıktısı genellikle şu şekildedir:

/dev/sda1 on / type ext4 (rw,noatime,errors=remount-ro)
/dev/sdb1 on /data type ext4 (rw,noatime)
/dev/sdc1 on /backup type ext4 (ro,relatime)

Her satırdaki bilgiler şu şekildedir:

  • (1) Bağlanan cihaz veya dosya sisteminin adı (örneğin /dev/sda1).
  • (2) Bağlantı noktası, yani cihazın bağlandığı dizin (örneğin / veya /data).
  • (3) Dosya sistemi türü (örneğin ext4).
  • (4) Bağlama seçenekleri; burada rw, ro, noatime gibi seçenekler dosya sisteminin okuma-yazma veya salt okunur olup olmadığını belirtir.

Alternatif olarak, df -h komutunu kullanarak da bağlanmış dosya sistemlerinin bir listesini daha okunabilir bir formatta görebilirsiniz:

$ df -h

Bu komut, kullanılan alan, boş alan ve bağlanma noktalarını gösterir.

3. Dosya Sistemi Bağlama

Bir dosya sistemini bağlama işleminde dikkat edilmesi gereken adımlar ve seçenekler vardır. Örneğin, bir USB sürücüsü veya ağ paylaşımı bağlamak için farklı yöntemler gerekebilir.

3.1. Basit Bir Cihaz Bağlama

Bir cihazı bağlamak için şu adımları izleyin:

  1. Bağlama Noktası Oluşturma: Öncelikle cihazın bağlanacağı bir dizin oluşturmalısınız. Örneğin:
sudo mkdir /mnt/mydisk
  1. Bağlama İşlemi: Şimdi cihazı mount komutu ile oluşturduğunuz dizine bağlayabilirsiniz. Örneğin:
sudo mount /dev/sdb1 /mnt/mydisk
  1. Bağlantıyı Kontrol Etme: Bağlantının başarılı olup olmadığını kontrol etmek için:
mount | grep mydisk

3.2. ISO Dosyalarını Bağlama

ISO dosyaları, optik disklerin (CD/DVD) dijital bir kopyası olarak saklanır ve sistemde “loop” cihazı kullanılarak bağlanabilir. Bu dosyalar çoğunlukla salt okunur (read-only) olarak bağlanır.

ISO dosyasını bağlamak için:

  1. Bağlama Noktası Oluşturma: Öncelikle bir dizin oluşturun:
sudo mkdir /mnt/iso
  1. ISO Dosyasını Bağlama: ISO dosyasını bu dizine bağlayın:
sudo mount -o loop /path/to/your.iso /mnt/iso
  1. Bağlantıyı Kontrol Etme: Bağlanmış ISO dosyasını görmek için:
mount | grep /mnt/iso

3.3. USB Sürücüleri Bağlama

USB cihazları, çıkarılabilir olması nedeniyle özellikle sık kullanılan depolama cihazlarıdır. Sisteme bir USB takıldığında, genellikle /dev/sdX biçiminde bir cihaz adı atanır. Cihazın bağlanması için öncelikle lsblk komutu ile cihaz adını öğrenebilirsiniz:

lsblk

Cihaz adını öğrendikten sonra:

  1. Bağlama Noktası Oluşturma: Örneğin:
sudo mkdir /mnt/usbdrive
  1. USB’yi Bağlama: USB cihazını bağlayın:
sudo mount /dev/sdb1 /mnt/usbdrive
  1. Kullanım: Artık /mnt/usbdrive dizini üzerinden USB içeriğine erişebilirsiniz.

3.4. Ağ Paylaşımlarını Bağlama

Ağ üzerindeki dosya paylaşımlarına erişmek için NFS veya CIFS gibi protokoller kullanılır. Aşağıda bu protokolleri kullanarak bağlantı kurma işlemlerini inceleyeceğiz.

3.4.1. NFS Paylaşımını Bağlama

NFS (Network File System), ağdaki paylaşımlara erişmek için kullanılan bir dosya sistemi protokolüdür. NFS kullanarak bir dizini bağlamak için:

  1. Bağlama Noktası Oluşturma: Örneğin:
sudo mkdir /mnt/nfsshare
  1. NFS Paylaşımını Bağlama: NFS sunucusundaki bir dizini bağlamak için:
sudo mount -t nfs 192.168.1.100:/shared/folder /mnt/nfsshare
3.4.2. Samba Paylaşımını Bağlama (CIFS)

Samba, Linux ve Windows sistemleri arasında dosya paylaşımını sağlar. CIFS (Common Internet File System) protokolü kullanarak Samba paylaşımlarına bağlanabiliriz.

  1. Bağlama Noktası Oluşturma: Örneğin:
sudo mkdir /mnt/sambashare
  1. Samba Paylaşımını Bağlama: CIFS protokolü ile bir Windows paylaşımını bağlamak için:
sudo mount -t cifs //192.168.1.10/shared /mnt/sambashare -o username=yourusername,password=yourpassword

4. Bağlama Seçenekleri

mount komutu birçok ek seçeneğe sahiptir. Bunlardan bazıları şunlardır:

  • -o rw: Dosya sistemini okuma-yazma olarak bağlar.
  • -o ro: Dosya sistemini salt okunur olarak bağlar.
  • -o loop: Bir dosya imajını, örneğin bir ISO dosyasını bağlamak için kullanılır.
  • -o noatime: Dosya sisteminde dosyaların son erişim zamanlarını kaydetmeyi devre dışı bırakır ve disk erişim performansını artırabilir.

5. /etc/fstab Dosyasını Kullanarak Otomatik Bağlama

Sistem açıldığında bazı dosya sistemlerinin otomatik olarak bağlanmasını sağlamak için /etc/fstab dosyası kullanılır. Bu dosyada her satır, bir dosya sisteminin hangi dizine nasıl bağlanacağını tanımlar. Örneğin, /dev/sdb1 cihazını /data dizinine otomatik bağlamak için /etc/fstab dosyasına şu satırı ekleyebilirsiniz:

/dev/sdb1   /data   ext4    defaults    0  0

Bu yapılandırma dosyasını düzenledikten sonra mount -a komutunu kullanarak tüm dosya sistemlerini tekrar bağlayabilirsiniz.

6. Dosya Sistemini Bağlantıdan Çıkarma

Bağlanmış bir dosya sistemini bağlantıdan çıkarmak için umount komutu kullanılır. Bu işlem, dosya sistemini güvenli bir şekilde bağlantıdan çıkarır.

Örneğin, /mnt/mydisk bağlama noktasını çıkarmak için:

sudo umount /mnt/mydisk

Alternatif olarak, cihaz adı ile de bağlantıyı kaldırabilirsiniz:

sudo umount /dev/sdb1

Sonuç

Linux sistemlerinde dosya sistemlerini bağlama işlemi, sistemin günlük kullanımında önemli bir yer tutar. USB sürücülerden ağ paylaşımlarına, ISO dosyalarından sabit disk bölümlerine kadar birçok kaynağı sisteme erişilebilir hale getiren bu süreç, özellikle sistem yöneticileri ve ileri seviye kullanıcılar için bilinmesi gereken temel bir konudur.


Linux’ta Bağlantı Noktası Kontrolü: Mount Edilmiş Dizini Tespit Etme ve Otomatik Bağlama

Linux sistemlerde, bir dizinin “mount” edilip edilmediğini belirlemek birçok durumda oldukça önemlidir. Bu rehberde, mount, mountpoint, findmnt komutlarını ve /proc/mounts dosyasını kullanarak bir dizinin mount durumunu nasıl kontrol edebileceğimizi ele alacağız. Örnek olarak /mnt/backup dizininin mount durumunu kontrol edecek ve eğer mount edilmemişse otomatik olarak mount edeceğiz.

İçeriğimizde ayrıca, bu işlemleri otomatikleştiren küçük bir Bash betiği oluşturacağız. Bu betik, belirli bir dizinin mount edilip edilmediğini kontrol edecek ve gerektiğinde bu dizini otomatik olarak bağlayacaktır. Adım adım açıklamalarla, hem manuel hem de script tabanlı yöntemleri inceleyeceğiz.


1. mount Komutunu Kullanarak Mount Durumunu Kontrol Etme

mount komutu, mevcut durumda mount edilmiş tüm dosya sistemlerini listelemek için kullanılır. Bu listeyi belirli bir dizin için filtreleyebiliriz. Örneğin, /mnt/backup dizininin mount durumunu kontrol etmek için aşağıdaki komut kullanılabilir:

$ mount | awk '{if ($3 == "/mnt/backup") { exit 0}} ENDFILE{exit -1}'

Bu komut, /mnt/backup dizini bağlıysa 0 koduyla, bağlı değilse -1 hata koduyla sonuç döner. Ancak bu yöntemin dezavantajı, dizin adında boşluklar olması durumunda düzgün çalışmamasıdır.

Örnek olarak, /mnt/backup dizinini mount etme işlemi:

$ {
    if mount | awk '{if ($3 == "/mnt/backup") { exit 0}} ENDFILE{exit -1}'; then
        echo "/mnt/backup zaten bağlı"
    else
        mount /dev/sdc1 /mnt/backup
    fi
}

Bu işlemi daha taşınabilir hale getirmek için bir fonksiyon oluşturabiliriz:

$ is_mounted() {
    mount | awk -v DIR="$1" '{if ($3 == DIR) { exit 0}} ENDFILE{exit -1}'
}

Artık bu fonksiyonu kullanarak mount durumunu kontrol edebiliriz:

$ {
    if is_mounted "/mnt/backup"; then
        echo "/mnt/backup zaten bağlı"
    else
        mount /dev/sdc1 /mnt/backup
    fi
}

Tek satırda daha pratik bir çözüm olarak:

$ mount | awk '{if ($3 == "/mnt/backup") { exit 0}} ENDFILE{exit -1}' || mount /dev/sdc1 /mnt/backup

2. mountpoint Komutu ile Kontrol Etme

mountpoint komutu, bir dizinin mount edilip edilmediğini kontrol etmenin en basit yollarından biridir. Bu komut doğrudan dizin ismini alır ve mount durumunu ekrana yazdırır.

$ mountpoint /mnt/backup

Aynı işlemi sessiz modda gerçekleştirmek için:

$ {
    if mountpoint -q /mnt/backup; then
        echo "/mnt/backup zaten bağlı"
    else
        mount /dev/sdc1 /mnt/backup
    fi
}

Bu yöntemi de bir fonksiyon haline getirebiliriz:

$ is_mounted() {
    mountpoint -q "$1"
}

Ve tek satır halinde kullanabiliriz:

$ mountpoint -q /mnt/backup || mount /dev/sdc1 /mnt/backup

3. findmnt Komutu ile Kontrol Etme

findmnt komutu, belirli bir dizinin mount durumu hakkında bilgi almak için etkili bir yoldur. Bu komut, belirli bir dizini parametre olarak alır ve sadece o dizinle ilgili bilgileri ekrana getirir.

$ findmnt /mnt/backup

Bu komutu bir if-else yapısında kullanabiliriz:

$ {
    if findmnt /mnt/backup >/dev/null; then
        echo "/mnt/backup zaten bağlı"
    else
        mount /dev/sdc1 /mnt/backup
    fi
}

Bir fonksiyon olarak da kullanabiliriz:

$ is_mounted() {
    findmnt "$1" >/dev/null
}

Ve tek satır halinde:

$ findmnt /mnt/backup >/dev/null || mount /dev/sdc1 /mnt/backup

4. /proc/mounts Dosyasını Okuyarak Kontrol Etme

Linux sistemlerde, mount edilmiş dosya sistemleri /proc/mounts dosyasında listelenir. Bu dosyayı awk ile okuyarak, belirli bir dizinin mount edilip edilmediğini kontrol edebiliriz:

$ awk '{if ($2 == "/mnt/backup") { exit 0}} ENDFILE{exit -1}' < /proc/mounts

if-else örneğini tekrar yapalım:

$ {
    if awk '{if ($2 == "/mnt/backup") { exit 0}} ENDFILE{exit -1}' < /proc/mounts; then
        echo "/mnt/backup zaten bağlı"
    else
        mount /dev/sdc1 /mnt/backup
    fi
}

Bu kodu fonksiyon haline getirebiliriz:

$ is_mounted() {
    awk -v DIR="$1" '{if ($2 == DIR) { exit 0}} ENDFILE{exit -1}' < /proc/mounts
}

Ve tek satır alternatifleri:

$ awk '{if ($2 == "/mnt/backup") { exit 0}} ENDFILE{exit -1}' < /proc/mounts || mount /dev/sdc1 /mnt/backup

Sonuç

Bu rehberde, bir dizinin mount edilip edilmediğini kontrol etmek için çeşitli yöntemleri inceledik ve Bash üzerinde kullanabileceğiniz fonksiyonlar oluşturduk. mount, mountpoint, findmnt ve /proc/mounts dosyasını kullanarak mount kontrolü yapmanın avantajlarını ve sınırlamalarını gösterdik. Artık bir dizinin mount durumu üzerinde tam kontrol sağlayabilir ve ihtiyacınız doğrultusunda otomatik bağlama işlemleri gerçekleştirebilirsiniz.

Önceki Konu

Komut Satırından E-posta Gönderme: curl kullanımı

Sonraki Konu

Linux’ta Inode Sınırlamaları ve Çözümler

Bültenimize Abone Olun 📬

En son gönderilerimizin doğrudan e-posta kutunuza gelmesi için e-posta bültenimize abone olun.
Düşüncelerinizi özgür bırakın ✨