İçerik Menüsü

14.Doküman

Disk İşlemleri

Konu Etiketleri

fdisk , primary partition , extended partition , cfdisk , badblocks , fsck , df , gparted , umount , mount

Disk İşlemleri

Disk ile ilgili yapabileceğimiz bölümleme, formatlama, bölüm oluşturma, tarama, düzeltme ve benzeri diğer işlemleri gerçekleştirebileceğimiz çeşitli komutlar var. Bu bölümde bu komutları ve işlevsel yanlarını ele alacağız. Konumuza ilk olarak daha önce de kullanmış olduğumuz fdisk komutu ile başlayalım.

Komutlara geçmeden önce disk üzerinde yapacağımız işlemlerde son derece dikkatli olmamız gerektiğini aklınızdan çıkarmayın lütfen. Yapacağımız yanlışlar dosyalarımızın kalıcı olarak silinmesine ve daha farklı sorunlara yol açabilir.

Eğer mümkünse özellikle bu konuda sanal makine üzerinden çalışmanız ve buradaki komutları denemeden önce sanal makine üzerinden sistem yedeğini(snapshot-clone) almanızı tavsiye ederim.

Ayrıca bir hatırlatma daha; Disk üzerinde işlem yapabilmeniz için o diskin biz işlem yapıyorken sistem tarafından kullanılmıyor olması gerekiyor. Çünkü biz işlem yapmaya çalışıyorken disk sistem tarafından kullanıldığı için doğal olarak bizim disk üzerinde işlem yapmamız mümkün olmuyor. Bunun için eğer yapacağımız disk işlemleri Linux işletim sistemimizin kurulu olduğu disk alanı içinse, diskte kurulu olan sistemi kullanmadan işlemleri diskten bağımsız şekilde yapmamız gerekiyor. Bunu da kurulum aşamasında göstermiş olduğum Linux işletim sisteminin USB üzerinden live olarak çalıştırılması ile gerçekleştirebiliriz.

Yani bu kısımda öğreneceğimiz bilgileri Linux işletim sisteminin kurulu olduğu disk alanında uygulamak için, sistemi başlatmadan Linux Live seçeneği ile çalışın.

fdisk

İsminden de anlaşılacağı üzere komutumuz çeşitli disk işlemleri yapılmak üzere kullanılıyor.

Komutun aldığı temel parametreleri ele alarak konumuza devam edelim.

İlk olarak sistemimizde bulunan disk bölümlerini listeleyelim. Bunun için l parametresini kullanıyoruz.

fdisk -l : disk bölümlerini listeler.

Gördüğünüz gibi disk bölümleri listelenmiş oldu.

Komutumuzu fdisk /dev/sda şeklinde parametresiz olarak vermemiz durumunda konsol bizden komut bekler. Burada ki /dev/sda genel disk alanını temsil ediyor. Biz de disk üzerinden işlem yapacağımız için komutumuzu bu şekilde girdik.

Hazır komutumuzu parametresiz kullanmışken bizden komut bekleyen konsola girebileceğimiz parametreleri ele alalım.

m : yardım menüsünü açar. Burada fdisk komutu ile kullanabileceğimiz parametreler listelenir.

Çıktıda görüldüğü üzere fdisk komutu disk konusunda çok fazla işleve sahip. Ancak biz sadece birkaç temel işlevini göreceğiz.

p : disk bölümleme tablosunu gösterir.

Çıktımız tıpkı komutu fdisk -l şeklinde kullandığımızdaki gibi oldu.

l : disk bölümlerini listeler.

d : bölüm silmek için kullanılır.

Ben p parametresi ile listelediğim disk bölüm tablosundan 3. bölümü yani /dev/sda3 bölümünü silmek üzere d parametresini vererek Partition number kısmını 3 olarak belirttim.

Çıktıda da görüldüğü gibi seçili alan silinmiş oldu. Artık diskte alan açıldığına göre yeni bir disk bölümü oluşturabiliriz.

n : yeni disk bölümü oluşturur.

n parametremiz ile diskte yeni bir alan oluşturabiliriz. n parametresini girince bize bölümleme tipinin öncelikli(primary) mi yoksa genişletilmiş(extended) mi olması gerektiğini soruyor. Aralarındaki farklar nedir diyecek olursanız:

Primary Partition denilen kısım; işletim sistemlerini kurduğumuz sabit disk bölümüdür. Bir sabit diskte maksimum 4 tane primary partition olabiliyor ve bunlardan bir tanesinin mutlaka aktif partition olması gerekiyor ki işletim sisteminiz boot işlemi sırasında çalıştırılabilsin.

Extended Partition ise aktif primary partition çıkarıldığında geriye kalan tüm sabit disk alanımızdır, bu alanın içine pasif primary partitionlar da dahildir.

Bu açıklama yeterli gelmemiş dolayısı ile anlamamış olabilirsiniz ancak kafa karışıklığına sebep olmamak için ayrıntıya girmiyorum. Merak eden arkadaşlar kısa bir araştırma sonucu istediklerinden de fazla bilgiye ulaşabilirler. Şimdi konumuza devam edelim.

First sector alanını enter ile geçip, Last sector alanına +1G olarak girdim ve 1GB boyutunda bir bölüm oluşturmuş olduk. Bunu teyit etmek için p parametresini kullandık.

Çıktıda /dev/sda4 ayarladığımız gibi yani 1GB olarak gözüküyor.

w : değişiklikleri kaydedip çıkar.

Gerekli ayarlamaları ve işlemleri gerçekleştirdikten sonra fdisk aracını kaydederek kapatmak istersek w parametresini kullanmamız yeterli.

q : çıkış yapar

q parametresi direk olarak yapılan değişiklikleri kaydetmeden fdisk aracı konsolundan çıkış yapar.

cfdisk

fdisk aracının görsel arayüze sahip versiyonudur. Açmak için cfdisk komutu yeterli olacaktır.

Ayrıca benden bir tavsiye, fdisk'in kullanımı cfdisk'e oranla biraz zordur, dolayısıyla kolayca hata yapabilir ve istenmeyen durumlarla karşı karşıya kalabilirsiniz. Etkileşimli bir arayüzü olan cfdisk'in kullanımı daha kolay olduğundan hata yapma ihtimaliniz daha düşüktür. Kullanımı oldukça kolay olduğundan detaylı anlatımda bulunmuyorum. Sadece disk işlemleri ile ilgili olduğu için bu kısımda değinmek istedim. Yani artık disk işlemlerinde böyle bir aracın varlığından haberdarsınız ve merak ettiğiniz takdirde çok kolay şekilde kendiniz keşfedebilirsiniz.(Disk ile ilgili büyük sorunlara yol açmamak adına keşiflerinizi ana makine haricindeki sanal ortamlarda gerçekleştirmenizi şiddetle tavsiye ederim.)

badblocks

badblocks kısaca, bir aygıtın bozuk bloklarını bulmak için tarama işlemi gerçekleştirme görevindedir.

Sırasıyla kullanım parametrelerine göz atalım:

s : taranan blokların numaralarını çıktı olarak vererek sürecin gelişimini gösterir.

v : süreçle ilgili ayrıntılı bilgi verir.

b : bir blok boyutunu bayt cinsinden belirtebiliyoruz.

c : bir seferde sınanacak blok sayısı belirtilir ve bu sayı öntanımlı olarak tek seferde 16 blok okuyacak şekildedir. Bu sayının arttırılması bu işlemin verimini yani hatalı blokların bulunma ihtimalini artırır, ancak arttırıldığı sayıya bağlı olarak bellek kullanımı da artacağı için bu sayının yüksek tutulması durumunda sistem "tamponları ayırmada bellek yetersizliği" hatasını verecek ve işlemi sonlandıracaktır. Tersi durumda yani bu sayının çok düşük tutulması da hatalı blokların gizli kalmasına neden olarak yapılan işin verimini düşürecektir. Yani dengeli kullanım çok önemlidir.

f : dosya sisteminin zarar görüp sistemin çökebileceği durumlarda badblocks tarama yapmayı reddeder. Ancak siz çoğu durumda önerilmese de yinede tarama yapmaya zorlamak isterseniz f parametresini kullanabilirsiniz.

p : diskin kaç defa taranacağını belirtir öntanımlı olarak bu değer sıfırdır yani ekstra değer belirtilmezse disk yalnızca 1 kez taranır.

Bu parametreler dışında da başka parametreler mevcut. Konsola man badblocks yazarsanız diğer parametreler hakkında da kısaca bilgi sahibi olabilirsiniz.

Neticede badblocks komutu ve parametreleri yardımı ile hatalı blok tespiti yapabiliyoruz. Şimdi de bu hatalı blokları düzeltme kısmına gelelim.

fsck

Komutun işlevi diskteki hatalı blokları düzeltmeye çalışmaktır. Aslında bu işlem sistemimizi her açışımızda otomatik olarak gerçekleşir. Biz de şimdi örnek olması açısında USB belleği onarmayı deneyelim.

USB belleğimizin disk adını öğrenmek için sistemimizdeki diskleri fdisk -l komutu ile listeleyelim.

Çıktının alt kısımında yer alan /dev/sdb1 USB belleğimizin diskteki adı. Şimdi belleğimizin adını öğrendiğimize göre onarma işlemini deneyebiliriz. Bunun için komut satırına fsck -p /dev/sdb1 komutunu giriyoruz.

Ve USB diskteki hatalı bloklar düzeltilerek işlemimiz başarılı bir şekilde gerçekleşmiş oldu.

df Komutu

df komutu bizlere disklerin; dosya sistemini, boyutunu, doluluk oranını, bağlandığı yeri(mount) gibi bilgileri kısa bir liste halinde verir.

Eğer çıktılar daha okunaklı olsun yani bilgileri MB,GB cinsinden görelim istersek komutumuza ek olarak h parametresini de kullanırız. Komutumu df -h şeklinde yazıyorum. Ve gördüğünüz gibi çıktılar daha okunaklı yani MB,GB cinsinden bana sunulmuş oldu.

df komutu diskler hakkında genel bilgi edinmek için sık kullanılan bir komuttur. Ayrıca komutla birlikte kullanacağımız m parametresi çıktıları MB cinsinden verirken, k parametresi ile kullanımlarda çıktılar KB cinsinden olacaktır. Bunlar haricinde daha fazla detay almak için man sayfasına bakabilirsiniz.

gparted

Grafiksel basit bir arayüze sahip olmasından dolayı kullanımı en kolay disk aracı denilebilir. Grafiksel arayüze sahip olduğu için açıklamasını burada vermem resimler ile verimsiz ve yetersiz olur. Ancak hazırladığım eğitim kursunda anlatımı videolu şekilde gerçekleştirdim eğer isterseniz kursumu satın alarak hem bana destek olabilir, hem de bu kaynağın açıklamalı anlatımını edinmiş olursunuz. Kursumu satın almak istemezseniz de internetteki Türkçe-İngilizce kaynaklardan kullanımı hakkında bolca bilgiye ulaşabilirsiniz. Açmak için konsola gparted yazmanız yeterli olacaktır.

umount (Diski Ayırmak)

Diski ayırmak gibi bir başlık aklınızda diski bölümlemek gibi bir anlam ifade etmiş olabilir. Ancak buradaki ayırmadan kasıt diskin bağlantısının sistemden koparılması. Yani şöyle ki komutumuz daha önce muhtemelen kullanmış olduğunuz, diskin üzerine sağ tıklayarak "Diski Çıkar" işlemi ile aynı görevdedir.

Aşağıdaki Linux ve Windows sistemlerinde grafiksel arayüz ile disk çıkarma işlemi kolay anımsamanız için görsel olarak verilmiştir.

Hatta bu durumu hemen teyit etmek için USB diskimizi umount komutu ile sistemden ayıralım.

Bu işlem için öncelikle diskimiz hakkında genel bilgi sahibi olmak adına konsola df -h komutunu verelim.

USB diskimin adının /dev/sdb1 ve diskin sisteme bağlandığı konumun da /media/root/GPARTED-LIV dizini olduğunu öğrenmiş oldum. Artık gerekli bilgileri öğrendiğimize göre diski sistemden çıkarmak için konsola umount /dev/sdb1 şeklinde komut verebiliriz.

Diski çıkarma işlemi sonrasında bu işlemi teyit etmek için birde df -h komutunu kullandık. Sonuçta diskimiz sistemden bağını koparmış oldu.

mount (Diski Bağlamak)

Sistemden ayırdığımız diski tekrar bağlamak için mount komutunu kullanırız. Kullanım şekli mount aygıt_adı bağlanacak_konum şeklindedir.

Diski sisteme bağlamadan önce yapmamız gereken şey, diskin bağlanacağı konumu oluşturmaktır. Bunun için ben masaüstüne mkdir USB komutu ile USB adında bir klasör oluşturdum.

USB'nin bağlanabileceği hedef klasör oluştuğuna göre artık USB diskimizi buraya bağlayabiliriz. Bunun için konsola mount /dev/sdb1 /Desktop/USB komutunu veriyorum ve daha sonra diskin durumunu df- h komutu ile sorguluyorum.

Görüldüğü gibi USB disk Desktop/USB konumuna bağlanmış bulunuyor.

Alıştırmalar Hakkında

Öğrendiğiniz bilgilerin kalıcı olması için mutlaka bolca alıştırma yapmalısınız.Burada belirtilen alıştırmalar dışında da kendi kendinize özellikle de zorlandığınız konularda bol bol alıştırmalar yapın. Aksi halde öğrendiğiniz bilgiler kısa sürede unutulup gidecektir. Yani gerçekten öğrenmek istiyorsanız lütfen öğrendiğinizi hissede kadar alıştırmalar yapın.

fdisk komutu ile disk bölümlerini listeleyin.

fdisk komutu ile listelediğiniz disk alanlarından birini silin.

fdisk komutu ile sildiğiniz disk sayesinde açılan boş alana yeni bir disk oluşturun.

Herhangi bir disk alanının bozuk bloklarını tarayın.(Tarama işlemi sırasında komutunuzu işlemleri takip ederek ayrıntılı çıktı alacak şekilde kullanın.)

Herhangi bir disk alanının bozuk bloklarının 3 kez taranmasını sağlayın.

Herhangi bir disk alanının bozuk bloklarını ilgili komutu kullanarak onarmaya çalışın.(Bozuk blok olmasa dahil denemek için ilgili komutu kullanın.)

Sisteme bağlı olan çıkarılabilir bir diski sistemden konsol üzerinden çıkarın.

Konsoldan çıkarmış olduğunuz diski tekrar sisteme bağlayın.

Geri Bildirimde Bulunun

Sizlere daha verimli bir kaynak sunabilmemiz için, uygulamada veya dokümantasyonlarda yer alan tüm hata ve eksiklerimizi bize bildirebilirsiniz.