Hızlı cevap: Bir sabit diskte dosyayı sildiğinizde veri, üzerine yazılana kadar fiziksel olarak diskte kalır ve kurtarma yazılımları bu yüzden işe yarar. SSD'de ise durum tersidir: işletim sistemi silme sonrası TRIM komutuyla hangi blokların boş olduğunu kontrolcüye bildirir, kontrolcü de bu blokları çöp toplama (garbage collection) sırasında fiziksel olarak siler. TRIM etkin, sağlıklı bir dahili SSD'de bu süreç çoğu zaman saniyeler ila dakikalar içinde işler ve silinen veri geri gelmez biçimde yok olur. Bu yüzden SSD'de silinen dosya için ilk kural, cihazı hemen kullanmayı bırakmaktır; çünkü çöp toplama disk boştayken bile çalışır. Veri yine de şu durumlarda kurtarılabilir: TRIM devre dışıysa (bazı USB kutuları, köprüler ve RAID yapılandırmaları TRIM'i geçirmez), TRIM henüz işlenmediyse veya arıza fiziksel kontrolcü kaynaklıysa.

SSD'ler sabit disklerin yerini aldıkça, kullanıcıların sildikleri dosyaları geri getirme beklentisi de geride kaldı. Bir SSD'de yanlışlıkla silinen bir dosya çoğu zaman klasik kurtarma yazılımlarıyla geri gelmez ve bunun nedeni SSD'nin iç mimarisidir. Bu rehber, flash çeviri katmanı, wear leveling, TRIM ve çöp toplama mekanizmalarının silinen veriyi neden ve ne zaman yok ettiğini, kurtarmanın hangi dar pencerede mümkün olduğunu ve hangi fiziksel arıza senaryolarının hâlâ umut taşıdığını uzman seviyede anlatır.

NAND flash neden farklı yazar

Bir sabit disk, bir sektörün üzerine doğrudan yeni veri yazabilir. NAND flash bunu yapamaz. Flash bellekte veri sayfalar (page) halinde yazılır ama silme yalnızca çok daha büyük bloklar (block) halinde yapılabilir. Bir sayfayı güncellemek için önce içeriği başka yere taşınır, sonra tüm blok silinir. Ayrıca her NAND hücresi sınırlı sayıda program ve silme döngüsüne dayanır.

Bu iki kısıt, SSD'nin kullanıcıya gösterdiği mantıksal adres ile verinin gerçekte durduğu fiziksel konum arasında bir çeviri katmanı gerektirir.

Flash çeviri katmanı (FTL) ve wear leveling

Flash çeviri katmanı (FTL), kontrolcü içinde çalışan ve mantıksal blok adreslerini (işletim sisteminin gördüğü) fiziksel NAND konumlarına eşleyen haritadır. Bir dosyayı güncellediğinizde FTL çoğu zaman veriyi eski yerine yazmaz; yeni, boş bir sayfaya yazar ve haritayı günceller. Eski sayfa artık geçersiz (invalid) olarak işaretlenir.

Wear leveling, hücre aşınmasını dengelemek için veriyi fiziksel olarak sürekli taşır. Çok yazılan bir blok yorulmasın diye kontrolcü, az kullanılan blokları da döngüye sokar. Sonuç olarak aynı mantıksal adresteki veri, zaman içinde farklı fiziksel hücrelerde bulunabilir ve bu hareket tamamen kontrolcü kontrolündedir.

Bu mimarinin kurtarma açısından iki önemli sonucu vardır. Birincisi, mantıksal adresten fiziksel konuma ulaşmak FTL haritasını bilmeyi gerektirir; harita olmadan ham NAND okuması dağınık ve anlamsızdır. İkincisi, SSD veriyi arka planda kendi kararıyla taşıdığı ve sildiği için, kullanıcı hiçbir şey yapmasa bile silinen veri yok olabilir.

TRIM: silinen veriyi yok eden komut

TRIM, SSD kurtarmasının kalbindeki mekanizmadır. Bir dosyayı sildiğinizde dosya sistemi, o dosyanın kapladığı blokları boş olarak işaretler. TRIM komutu, bu boş blokların listesini SSD kontrolcüsüne bildirir: artık bu mantıksal adreslerde geçerli veri yok, istediğin zaman temizleyebilirsin.

Kontrolcü bu bilgiyi alınca ilgili fiziksel sayfaları geçersiz işaretler ve çöp toplama sırasında siler. Birçok SSD, TRIM sonrası o adreslerden okuma yapıldığında sabit bir değer (genelde sıfır) döndürür; buna TRIM sonrası belirli okuma (DRAT veya DZAT) denir. Yani veri yalnızca fiziksel olarak silinmekle kalmaz, mantıksal olarak da artık okunamaz hale gelir.

İşte SSD ile HDD arasındaki temel fark budur. HDD'de silinen veri, üzerine yazılana kadar pasif biçimde durur. SSD'de TRIM, silmeyi aktif ve hızlı bir yok etme işlemine çevirir. Bu farkın ömür ve davranış boyutunu HDD ve SSD ömür karşılaştırması yazımızda da ele aldık.

Çöp toplama: pencere neden hızla kapanır

Çöp toplama (garbage collection), kontrolcünün geçersiz sayfalarla dolu blokları temizleyip yeniden kullanılabilir hale getirdiği arka plan işlemidir. Bir blokta hâlâ geçerli veri ile geçersiz veri karışıksa, kontrolcü geçerli sayfaları toplayıp başka bir bloğa taşır, sonra eski bloğu tamamen siler.

Kritik nokta şudur: çöp toplama, bilgisayar açık ve SSD'ye güç geldiği sürece, kullanıcı hiçbir işlem yapmasa bile çalışır. Bu yüzden SSD'de yanlışlıkla silme sonrası kurtarma penceresi saatler değil, çoğu zaman saniyeler veya dakikalardır. Silinen bir veriyi kurtarma şansı, çöp toplama o blokları silmeden önce cihazın kapatılmasına bağlıdır.

Durum HDD TRIM etkin SSD
Dosya silindi veri sektörde kalır TRIM boş işaretler
Üzerine yazılana kadar kurtarılabilir çöp toplama yok eder
Kullanıcı boşta beklerken veri durur arka planda silinir
Kurtarma penceresi uzun (yazana kadar) çok kısa (saniye-dakika)

Veri ne zaman hâlâ kurtarılabilir

Tablo karamsar görünse de SSD'de kurtarma her zaman imkansız değildir. Şu durumlarda umut vardır. TRIM devre dışıysa: bazı USB disk kutuları ve köprüler TRIM komutunu geçirmez, bazı eski işletim sistemi veya dosya sistemi yapılandırmaları TRIM kullanmaz ve harici USB SSD'lerde TRIM çoğu zaman çalışmaz. Bu durumda silinen veri HDD gibi davranır ve kurtarma yazılımı işe yarayabilir. TRIM henüz işlenmediyse: silme ile çöp toplama arasındaki kısa pencerede cihaz kapatıldıysa veri hâlâ fiziksel olarak durabilir. Donanım RAID içindeyse: bazı RAID kontrolcüleri alttaki disklere TRIM geçirmez. Yazılım tabanlı silme değil fiziksel arıza varsa: kontrolcü bozulduysa veri aslında NAND üzerinde durur, sorun ona erişmektir. Formatlama senaryolarını formatlanmış diskten veri kurtarma yazımızda ayrıca ele aldık.

Fiziksel arıza: TRIM'den bağımsız ayrı dünya

Yanlışlıkla silme ile kontrolcü arızası tamamen farklı iki senaryodur ve karıştırılmamalıdır. Bir SSD aniden tanınmıyorsa, kapasitesi yanlış görünüyorsa veya hiç yanıt vermiyorsa, bu çoğu zaman veri silindiği için değil, kontrolcü veya güç devresi arızalandığı içindir. Bu durumda veri hâlâ NAND yongaları üzerindedir; sorun ona ulaşmaktır.

Bu senaryoda kurtarma, kontrolcüyü onarmayı veya NAND yongalarını söküp (chip-off) okumayı gerektirir. Ancak burada iki büyük zorluk vardır. Birincisi, ham NAND okunsa bile veriyi anlamlı hale getirmek için kontrolcüye özgü FTL haritası, karıştırma (scrambling) ve hata düzeltme kodu (ECC) şemasının çözülmesi gerekir. İkincisi, disk kendinden şifreliyse (SED) okunan bitler şifrelidir ve anahtar olmadan çözülemez; bu sınırı SED ve TCG Opal kurtarma yazımızda ele aldık. Kontrolcü ve NAND kurtarmasını NVMe M.2 SSD kurtarma yazımızda ve chip-off tekniğini NAND çıkarma yazımızda ayrıntılandırdık. Marka bazlı SSD kurtarma yaklaşımını Samsung SSD kurtarma yazımızda inceledik.

Dürüst beklenti

Bu konuda net olmak gerekir. TRIM etkin, sağlıklı bir dahili SSD'de yanlışlıkla silinen veya biçimlendirilen veri, çoğu durumda kısa süre içinde kalıcı olarak kaybolur ve hiçbir yazılım onu geri getiremez. Size her SSD'den garantili silinen dosya kurtarma vaat eden araçlar, ya TRIM'in çalışmadığı özel durumları genelliyordur ya da gerçekçi değildir. En iyi savunma kurtarma değil, önlemdir: önemli veriyi düzenli ve farklı ortamda yedeklemek. Fiziksel arıza senaryosu ise ayrıdır ve uzman laboratuvarda sıklıkla kurtarılabilir. Doğru kurtarma yazılımı seçimini en iyi veri kurtarma programları karşılaştırması yazımızda ele aldık; ancak hiçbir yazılım TRIM ile fiziksel olarak silinmiş veriyi geri getiremez.

DSET yaklaşımı

DSET olarak SSD kurtarmalarını Ankara Hacettepe Teknokent laboratuvarımızda, senaryoyu baştan doğru teşhis ederek yürütürüz. Yanlışlıkla silme mi, formatlama mı, yoksa fiziksel kontrolcü arızası mı olduğunu belirleriz; çünkü bunlar farklı yöntemler ve farklı başarı olasılıkları gerektirir. Silme senaryosunda, TRIM'in işleyip işlemediğini ve kurtarma penceresinin açık olup olmadığını değerlendirir, mümkünse cihazı hemen görüntüleriz. Fiziksel arızada kontrolcü onarımı, FTL çözümleme ve gerekirse chip-off uygularız. Hiçbir durumda garantili sonuç sözü vermez, olasılığı dürüstçe paylaşırız. Bir SSD'den veri sildiyseniz, kurtarma penceresi hızla kapandığı için cihazı hemen kapatın ve DSET ile iletişime geçin.

Sık sorulan sorular

SSD'de sildiğim dosyayı kurtarma programıyla geri getirebilir miyim? Çoğu zaman hayır. TRIM etkin, sağlıklı bir dahili SSD'de silme sonrası çöp toplama, blokları saniyeler ila dakikalar içinde fiziksel olarak temizler ve veri geri gelmez. Kurtarma yazılımı yalnızca TRIM'in çalışmadığı özel durumlarda (bazı USB kutuları, köprüler, eski yapılandırmalar) veya cihaz çok hızlı kapatıldıysa işe yarayabilir. En güvenli yol, silmeyi fark eder etmez cihazı kapatmaktır.

Harici USB SSD'de şansım daha mı yüksek? Bazı durumlarda evet. Birçok USB disk kutusu ve köprü TRIM komutunu alttaki SSD'ye geçirmez. Bu durumda silinen veri bir HDD gibi, üzerine yazılana kadar fiziksel olarak durabilir ve kurtarma şansı artar. Yine de kesin değildir; cihaz TRIM destekliyorsa ve komut geçiyorsa veri yine hızla kaybolur. Emin değilseniz cihazı kullanmayı durdurup değerlendirme yaptırın.

SSD aniden tanınmıyor, veri silinmiş olabilir mi? Büyük olasılıkla hayır, bu farklı bir senaryodur. Aniden tanınmayan bir SSD'de sorun genelde silme değil, kontrolcü veya güç devresi arızasıdır. Bu durumda veri hâlâ NAND üzerindedir ve laboratuvarda kontrolcü onarımı veya chip-off ile sıklıkla kurtarılabilir. Disk kendinden şifreli değilse başarı olasılığı daha yüksektir; şifreliyse anahtar gereklidir.

Kaynaklar

  • JEDEC JESD218 ve JESD219, SSD dayanıklılık ve iş yükü standartları.
  • SATA ve NVMe spesifikasyonları, TRIM, Deallocate ve belirli okuma davranışı.
  • NAND flash ve FTL üzerine depolama araştırma literatürü, wear leveling ve çöp toplama.
  • DSET blog: NVMe M.2 SSD kurtarma ve SED ve TCG Opal donanım şifreli SSD kurtarma.