Silinmiş bir Disk Bölümünü Kurtarmak

Aşağıda silinmiş bir disk tablosunu el ile kurtarmanın adımları anlatılmıştır. gpart veya TestDisk gibi bu işlemi oldukça kolay hale getiren uygulamalar vardır. Eğer bunu okuyor ve şansınız hiç kalmadıysa, yapacaklarınız:

  1. İlk disk bölümünüzün büyüklüğü kadar bir disk bölümü oluşturun. Bu kısmı asıl disk bölümünden daha büyük de yapabilirsiniz. Eğer daha küçük yaparsanız, çok hayıflanıp diş gıcırdatacaksınız.

    Command (m for help): n
    Command action
       e   extended
       p   primary partition (1-4)
    p
    Partition number (1-4): 1
    First cylinder (1-23361, default 1): <RETURN>
    Using default value 1
    Last cylinder or +size or +sizeM or +sizeK (1-22800, default 22800): 13032
    
    Command (m for help): w
    

  2. dumpe2fs'i ilk disk bölümünde çalıştırarak blok sayısını bulun.

    Örnek:

    % dumpe2fs /dev/sda1 | grep "Block count:"
    Block count:              41270953
    

    Eğer bu değerden emin değilseniz, 1. Adımı daha büyük bir disk boyutu için tekrarlayın. Eğer blok sayısı değiştiyse, asıl disk bölümü blok sayısını iyi tahmin edememişsiniz demektir. 1. Adımı kararlı bir blok sayı bulana kadar sürdürün.

  3. Yeni oluşturduğunuz disk bölümünü silin.

    Command (m for help): d
    Partition number (1-4): 1
    

  4. Elde ettiğiniz blok sayısına bakarak yeni bir disk bölümü oluşturun. fdisk'e blok sayısı giremediğinizden, kaç tane silindir istendiğini hesaplamanız gerekmektedir. İşte formulü:

    (gerekli silindir sayısı) = (blok sayısı) / (blok büyüklüğü)
    
    (blok büyüklüğü) = (birim büyüklüğü) / 1024
    
    (birim büyüklüğü) = (kafa sayısı) * (sektör/silindir sayısı) * (bayt/sektör sayısı)
    

    1, 2, 4 ve 8 silindirlik 4 birincil disk bölümüne ayrılmış aşağıdaki disk bölümleme örneğine bakınız.

    disk /dev/sda: 16 heads, 63 sectors, 23361 cylinders
    Units = cylinders of 1008 * 512 bytes
    
       Device Boot    Start       End    Blocks   Id  System
    /dev/sda1             1         2       976+  83  Linux
    /dev/sda2             3         5      1512   83  Linux
    /dev/sda3             6        10      2520   83  Linux
    /dev/sda4            11        19      4536   83  Linux
    

    fdisk çıktı başlangıcında ihtiyacım olan ayar bilgisini de sunmaktadır.

    Birim büyüklüğü 516096
      = 16 disk kafası * 63 sektör/silindir * 512 bayt/sektör
    
    Blok büyüklüğü 504
      = 516096 / 1024
    

    Dolasiyle ikinci disk bölümü için gerekli silindir sayısı 3'tür (1512 blok / 504).

    Disk bölümleme tablosu da bunun gerçekten de böyle olduğunu söylüyor: ilk silindir 3, ikincisi 4 ve en sonuncu da 5, toplam 3 silindir.

    Üçüncü disk bölümü için gerekli silindir sayısı da benzer şekilde hesaplanır: 2520 blok / 504 = 5, bunlar da bloklara karşı gelecek şekilde 6,7,8,9,10'dur. Bu hesaplamanın ilk disk bölümünde çalışmayacağına dikkat edin (1008 yerine 976). Artı işareti tüm blokların fdisk uygulamasına katıldıklarını gösterir. Hesaplamayı denediğiniz zaman (976 / 504 ) 1.937 elde edersiniz. Silindir sayısının tamsayı olması gerektiğini bilerek bunu yuvarlayabilirsiniz.

  5. e2fsck'i çalıştırarak yeni disk bölümününün okunup okunamayağına bakın.

  6. 1'den 5'e kadar adımları kalan diğer disk bölümleri için de tekrarlayın.

Disk bölümünüzü tekrar bağlayın. Şaşırtıcı bir şekilde bilgilerinizi orada olduğunu göreceksiniz.

  • jedi sistem yöneticisi ve MGH'nin en iyisi olan Mike Vevea'a, bu ipuçlarını verdiği için teşekkürler.