· Tomasz Siroń · Zarządzanie Ryzykiem / Infrastruktura IT
Jak odzyskać usunięty plik dysku VM na Linux? Case Study SparkSome
Czasem trafiają do nas zadania, które wydają się na pierwszy rzut oka beznadziejne. W SparkSome wierzymy jednak, że kreatywność połączona z głęboką wiedzą o architekturze systemów Linux to nasza największa przewaga rynkowa.
Takie sytuacje przypominają, że odzyskiwanie danych to nie tylko operacja techniczna, ale też część dużo szerszej historii odporności IT. Jeden z najbardziej niezwykłych przykładów opisaliśmy w tekście Odzyskiwanie danych po atakach na World Trade Center – technologia Blue Laser i lekcje dla współczesnego IT.
Dziś podzielimy się przypadkiem, w którym odzyskaliśmy dane z pracującej maszyny produkcyjnej, mimo że jej plik obrazu został fizycznie usunięty z systemu plików.
Scenariusz: Wyrok, który udało się odroczyć
Zgłosiła się do nas firma, w której pracownik omyłkowo wydał polecenie usunięcia pliku z obrazem dysku pracującej maszyny wirtualnej. Sytuacja była krytyczna z trzech powodów:
- Brak aktualnej kopii: Ostatni backup pochodził sprzed roku.
- Brak zaawansowanego wirtualizatora: System nie pracował na Proxmoxie czy ESXi, które mają własne mechanizmy ochrony, lecz na czystym Linuxie.
- Ciągłość produkcji: Maszyna nie mogła zostać po prostu zrestartowana, bo dane znajdowały się tylko w jej pamięci RAM i otwartych deskryptorach procesów.
Dlaczego odzyskanie danych było w ogóle możliwe?
W systemach Linux, gdy plik zostaje usunięty (np. przez rm), system usuwa jedynie wskaźnik (inode) z katalogu. Jeśli jednak proces (w tym przypadku wirtualizator) wciąż ma otwarty ten plik, dane fizycznie pozostają na dysku, dopóki proces nie zostanie zamknięty. To była nasza szansa.
Rozwiązanie krok po kroku: Live Disk Imaging
Naszym celem było wykonanie bitowej kopii całego dysku bez przerywania pracy systemu w sposób, który mógłby nadpisać odzyskane sektory.
1. Zabezpieczenie środowiska
Przełączyliśmy system w tryb read-only tam, gdzie było to możliwe, dbając o to, by proces wirtualizacji nie został przerwany. Każdy zapis na partycji mógłby bezpowrotnie zniszczyć sektory zajmowane przez "usunięty" plik.
2. Transfer danych w locie (Bit-by-bit)
Zamiast szukać pliku lokalnie, co wiązało się z ryzykiem, wykorzystaliśmy narzędzie dd do przesłania całego urządzenia blokowego na zdalny, bezpieczny serwer poprzez tunel SSH:
dd if=/dev/sda bs=1M conv=noerror,sync | ssh user@remote-server "dd of=/mnt/backup/image.img"
Dlaczego ta komenda?
if=/dev/sda: Czytamy bezpośrednio z urządzenia.bs=1M: Optymalny rozmiar bloku dla szybkiego transferu sieciowego.conv=noerror,sync: Kluczowe parametry – pozwalają kontynuować kopiowanie nawet w przypadku napotkania błędów odczytu, wypełniając luki zerami.
3. Weryfikacja spójności (Checksums)
Po zakończeniu transferu obliczyliśmy sumy kontrolne MD5 (oraz dodatkowo SHA-256) dla źródła i uzyskanego obrazu .img. Zgodność wyników potwierdziła, że dane zostały uratowane w 100%.
Często Zadawane Pytania (FAQ)
Czy mogę odzyskać plik, jeśli proces został już zamknięty?
Jeśli proces, który używał pliku, został zamknięty, szanse drastycznie spadają, ponieważ system operacyjny oznacza te sektory jako wolne. Wtedy konieczne jest użycie narzędzi do głębokiej analizy struktur systemów plików, takich jak TestDisk lub PhotoRec.
Czy ta metoda działa na dyskach SSD?
Na dyskach SSD z włączoną funkcją TRIM odzyskanie danych jest znacznie trudniejsze, ponieważ system może automatycznie "wyczyścić" sektory po usunięciu pliku. W przypadku maszyn wirtualnych i systemów enterprise często jednak mamy do czynienia z konfiguracjami, które dają nam niezbędny czas na reakcję.
Jak zabezpieczyć się przed takimi błędami?
Zalecamy przejście na systemy plików z obsługą snapshotów (np. ZFS lub LVM) oraz wdrożenie polityki backupu 3-2-1.
W środowiskach produkcyjnych równie ważna jest dobrze zaprojektowana procedura DR, bo sama możliwość odzyskania pojedynczego pliku nie zastępuje planu odtworzenia całej usługi.
Podsumowanie
Dzięki szybkiej reakcji i niestandardowemu wykorzystaniu standardowych narzędzi Linuxa, firma uniknęła ogromnych strat związanych z przestojem produkcji.
Masz podobny problem, który wydaje się niemożliwy do rozwiązania? Skontaktuj się ze SparkSome. Wykorzystujemy kreatywność i technologiczną biegłość, by ratować Twoją infrastrukturę IT.