Skuteczne usuwanie danych z SSD
Dyski półprzewodnikowe są coraz bardziej popularne nie tylko w laptopach, ale także w komputerach stacjonarnych. Jak się okazuje, bezpieczne kasowanie zapisanych na nich informacji za pomocą wymienionych wcześniej metod jest trudniejsze. Przyczyną jest całkiem inna konstrukcja dysku. Sprzętowe metody kasowania danych zachowują swoją wysoką skuteczność, ale co mają zrobić użytkownicy, którzy chcą aby ich dysk nadal działał?
Odpowiedzią jest Secure Erase – czyli zestaw specjalnych instrukcji, umieszczony w oprogramowaniu dysku przez producentów. Służy on do całkowitego usuwania zawartości dysku w taki sposób, aby nie była ona możliwe do odzyskania za pomocą popularnych metod. Do przeprowadzenia tego procesu można wykorzystać oprogramowanie dostarczone wraz z dyskiem lub niezależne aplikacje - HDDErase oraz Parted Magic .
Jak działa Secure Erase?
Programy do kasowania danych usuwają wszystkie pliki oraz nadpisują przestrzeń dyskową, dostępną dla użytkownika. W przypadku dysków SSD oznacza to, że pewna część dysku zostaje „nietknięta” – są to tzw. serwisowe bloki danych: zapasowe, systemowe i zużyte. Informacje pozostawione w tych blokach mogą posłużyć do odtworzenia całej zawartości dysku. Secure Erase przeprowadza procedurę kasowania na poziomie sprzętowym. Oznacza to, że usuwane są dane ze wszystkich bloków, w tym bloków serwisowych. Kontroler dysku po usunięciu danych, oznacza wszystkie bloki jako puste (uwalnia zgromadzone w nich ładunki elektryczne).
Co ciekawe proces ten ma również ciekawy efekt uboczny – przywraca pierwotną wydajność dysku SSD. Spadek wydajności napędów półprzewodnikowych następuje z czasem i jest spowodowany przepełnieniem bloków z komórkami pamięci. Wymazanie danych z dysku resetuje zawartość bloków i niejako przywraca go do ustawień fabrycznych. Dlatego z Secure Erase można skorzystać również w sytuacji, gdy zauważymy widoczny spadek wydajności naszego dysku SSD.
@anon67650823 wydaje mi się, że cytowany przez @m4s autor miał na myśli ten sam efekt, który przynosi trim. Nie znam dokładnie logiki zapisu danych na flash, ale z jakiegoś powodu kontroler przed zapisaniem komórki najpierw ją czyści (o ile pusta nie była) i traci na to czas, przez co dysk nie osiąga deklarowanych przez producenta prędkości. Trim jest cyklicznie uruchamiany i wszystko jest w miarę na bieżąco czyszczone, ale możliwe, że z poziomu trim nie ma dostępu do wszystkich komórek, np. tych oznaczonych jako uszkodzone.
Jeśli tak, to tym bardziej nie powinien polecać “zerowania” jako panaceum na bolączki związane z kulejącym SSD. Ale może po prostu nie zrozumiał tematu.
Najlepiej wywołać “secure erase” przez kontroler dysku SSD. Oczywiście jak dysk uszkodzony to w niczym to nie pomoże.
Jako root: hdparm -I /dev/sdX | grep frozen
Wynik musi być koniecznie NOT FROZEN!
Potem: hdparm --user-master u --security-set-pass wymyslone haslo /dev/sdX hdparm --user-master u --security-erase wymyslonehaslo /dev/sdX
Po dłuższej chwili kontroler dysku zaora wszystko.
UWAGA! Na lapkach Lenovo nie polecam tego robić. (zła implementacja secure pass w UEFI) https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase
Nie od razu, ale TRIM dość szybko doprowadzi do takiej sytuacji, że i przy pomocy specjalistycznych narzędzi nic nie zrobisz, bo tych danych nigdzie nie będzie.
Tak - funkcja “wypełnij sektory” w narzędziach jest dostępna i w wersji demo.
bez przesady - wrzucając nową zawartość szybko dorobiszsię nowych błędów programowania i nowych problemów z odczytem. Nie ma cudownych programowych metod rozwiązywania problemów sprzetowych. Ale to temat na rozdział do książki, a nie na wpis na forum.
Po pierwsze skupianie się na pojedynczych tranzystorach jest dużym uproszczeniem, a w pewnych sytuacjach wręcz błędem - zapisujemy i czytamy dane całymi stronami, współcześnie o rozmiarach 8 lub 16 kB danych użytkownika + informacja nadmiarowa. Z kolei kasujemy blokami liczącymi wiele stron.
Po drugie - procesy kasowania i zapisu są dość skomplikowane od strony technicznej i wykorzystują fizykę kwantową (tunelowanie Fowlera - Nordheima). Nie mamy możliwości zmiany/edycji już zaprogramowanych obszarów Możemy je co najwyżej skasować i zapisać jeszcze raz.Ale to zabiera czas, dlatego najpierw zapisujemy zawartość w innym fizycznym miejscu, odpowiednio ją przeadresowując w tablicach translacji oprogramowania układowego, a dopiero potem kasujemy zawartość nieaktualną zwalniając miejsce dla innych nowych danych. TRIM przyśpiesza tę operację śledząc wykonywane ruchy. Uszkodzone bloki trafiają na listy defektów i są wyłączane z eksploatacji, ale procedura Secure Erase może je kasować. Tak samo możliwe jest wysłanie do nich odpowiednio zaadresowanego polecenia ONFI Block Erase. Przy czym procedura Secure Erase bywa implementowana w różny sposób - czasem jest to po prostu wygenerowanie nowego klucza szyfrującego i utworzenie nowych tablic translacji.
Ogólnie jeśli problem ma charakter systemowy - sformatowanie patrycji powinno go rozwiązać. Jeśli to problem sprzętowy - rozwiąże go wymiana nośnika, czy to od razu, czy po jego definitywnej awarii. Układy NANDowe zużywają się z każdą operacją kasowania i zapisu, a więc “zerowanie” nie poprawi ich stanu.