Linux – FSCK Dosya sistemi Kontrol ve Onarma

fsck diskteki tutarsızlıkları bulmaya ve onarmaya yarar. Dosya sistemi türlü nedenlerden dolayı tutarsız hale gelebilir. Bunlar donanımsal hatalardan kaynaklanan normal olmayan sistem kapanmaları ve güç kaynağındaki oluşan problemlerden kaynaklanan olağandışı kapanmalar olabilir. Bu nedenlerden ötürü file sistem üzerindeki süperbloklar güncellenmeyebilir veya eksik bilgiye sahip olabilir.

Fsck 2 farklı modda çalışabilir. İnteraktif olarak ve noninteraktif olarak.
İnteraktif mod= dosya sistemi kontrol edilir, her hatada durulur, kullanıcıya hata ile ilgili bilgi verilir ve kullanıcıya problemi düzeltmek veya düzeltmeden devam etme ile alakalı soru sorar.
Noninteraktif mod=kullanıcıya soru sormadan bütün dosya sistemi incelenir hatalar düzeltilir. Fakatriskli bir tarafıda önemli olan dosyalarda problem varsa bunlarıda silebilir.
Fsck genel anlamda dosya sisteminin düzgün bir şekilde kontrol edilmesi amacıyla sadece tek kullanıcılı modda çalıştırılmalıdır. Aksi takdirde tutarsızlık oluşup dosya sistemi bozulabilir.

Eğer sistem tek kullanıcılı moda dönüştürülemiyorsa fsck root ve usr partitionları hariç diğer partitionlar umount edildikten sonra çalıştırılmalıdır. Root ve usr partitionları umount edilemez.
Eğer sistem root veya usr dizininden kaynaklanan problemden ötürü açılamadı ise bu partitionlara fsck uygulayabilmek için bootable bir live cd kullanabiliriz.
Komut syntax

fsck [ -F fstype] [-V] [-yY] [-o options] special

-F fstype dosya sistemi tipi ( ufs , vxfs etc)

-V verify the command line syntax but do not run the command

-y or -Y noninteraktif modda çalıştır. Bütün sorulara evet deniliyor.

-o options Three options can be specified with -o flag

b=n where n is the number of next super block if primary super block is corrupted in a file system .

p option used to make safe repair options during the booting process.

f force the file system check regardless of its clean flag.

special – Block or character device name of the file system to be checked/repaired – for example /dev/rdsk/c0t3d0s4 .Character device should be used for consistencies check & repair

fsck 5 safhada dosya sistemini kontrol eder:

** phase 1 – Check Blocks and Sizes
** phase 2 – Check Pathnames
** phase 3 – Check Connectivity
** phase 4 – Check Reference Counts
** phase 5 – Check Cylinder Groups
hata mesajları ve düzeltme
1. Corrupted superblock – fsck fails to run (bozuk süperblok)

eğer süperblok bozuk ise file sistem sonraki süperblok kullanılarakta düzeltilebilir. İlk süperblok numarası 32 ise diğer süperbloklar aşağıdaki komut ile bulunabilir.

newfs -N /dev/rdsk/c0t0d0s6

ilk alternatif süperbloğu kullanarak çalıştırılacak fsck komutu aşağıdaki gibidir.

fsck -F ufs -o b=32 /dev/rdsk/c0t0d0s6

2. Link counter adjustment (link sayacı ayarlaması)

dizinlere verilen linklerde uygunsuzluk oluştuğunda bu hata oluşur. İnteraktif modda sorulan soruya y (yes) denmesinde bir sakınca yoktur.
3. Free Block count salvage (boş blok sayısı kurtar)

fsck sırasında süperblok içerisindeki boş bloklar listelenir ve bu bloklar gerçel ayrılmamış boş bloklar ile eşleşmez. Fsck bu uygunsuz blokları bulur ve kullanıcıya bu blokları süperbloklarla senkronize edilip edilmemesi için soru sorar. Yes denmesinde herhangi bir saknca yoktur.
4. Unreferenced file reconnection ( referanssız dosya bağlantısı )

fsck dosya sistemini kontrol ederken bazı ayrılmış fakar referans veilmemiş yani hiçbir dosyaya attach edilmemiş dosya düğümleri bulur. Sorulan soruya y denirse fsck bu dosyaları lost+found dizinine bu dosyaların dosya düğümleri ve ismleriyle linkler.
lost+found içerisindeki dosyaları file komutu ile dosyanın tipini inceleyip daha sonra bir editör ile açılıp isteğe göre yeniden düzenlenebilir ve tekrardan isimlendirilebilir.