Видалили важливий файл і вже чуєте внутрішнє "ой"? Спокійно: шанси на відновлення є, якщо діяти правильно і не записувати нічого на постраждалий розділ. Нижче — зрозумілий гайд для відновлення у файлових системах ext4 і NTFS, використовуючи testdisk, photorec, extundelete та ntfsundelete. Ми працюватимемо через термінал Linux і трохи торкнемося GUI-варіантів.

Швидкі дії після видалення (критично важливо)

  • Негайно припиніть запис на диск/розділ, де було видалення. Не завантажуйте туди програми, не копіюйте файли, не розпаковуйте архіви.
  • Якщо це не системний розділ, відмонтуйте його й підключіть у режимі лише для читання.
  • За можливості використовуйте LiveUSB, щоб не чіпати оригінальний диск під час відновлення.

Корисні команди для перевірки та безпечного підключення:

# Дізнатися розділи та ФС
lsblk -f

# Відмонтувати (приклад)
sudo umount /dev/nvme0n1p3

# Підключити лише для читання (папку призначення створіть заздалегідь)
sudo mkdir -p /mnt/recovery
sudo mount -o ro /dev/nvme0n1p3 /mnt/recovery

Перед роботою встановіть потрібні утиліти (приклад для Debian/Ubuntu):

sudo apt update
sudo apt install testdisk extundelete ntfs-3g gddrescue

Покрокове відновлення

ext4: extundelete (відновлення з журналу)

  1. Переконайтеся, що розділ ext4 відмонтований. Якщо це ваш поточний кореневий розділ, завантажтеся з LiveUSB.
  2. Запустіть відновлення. Якщо знаєте точний шлях до файлу у файловій системі — використовуйте --restore-file. Якщо ні — спробуйте --restore-directory або навіть --restore-all.
# Відновити конкретний файл (шлях у ФС, а не у /mnt!)
sudo extundelete /dev/nvme0n1p3 --restore-file home/user/Documents/report.docx

# Відновити каталог
audio; sudo extundelete /dev/nvme0n1p3 --restore-directory home/user/Pictures

# Спробувати все (буде створено каталог RECOVERED_FILES у поточній директорії)
sudo extundelete /dev/nvme0n1p3 --restore-all

Якщо шлях невідомий, можна пошукати inode файла через debugfs, але це вже просунутий сценарій. Так чи інакше, результати зберігаються в поточній директорії (перейдіть перед запуском в окрему папку, щоб не змішати все в одну купу).

NTFS: TestDisk (Undelete)

  1. Запустіть sudo testdisk у терміналі Linux.
  2. Обирайте диск, потім тип таблиці розділів (зазвичай TestDisk визначає автоматично), далі розділ NTFS.
  3. Перейдіть у Advanced → Undelete (для NTFS). Ви побачите список видалених файлів.
  4. Позначте потрібні та натисніть C (Copy), виберіть директорію призначення на іншому диску.
sudo testdisk

Перевага TestDisk — він працює обережно і дозволяє копіювати файли без запису на вихідний розділ. Це зручно для базового управління файлами під час рятувальних операцій.

Будь-яка ФС: PhotoRec (file carving)

PhotoRec ігнорує файлову систему, сканує "сирі" дані та відновлює за сигнатурами. Недолік — втрачаються оригінальні шляхи/імена, але часто це єдиний шанс.

  1. Запустіть photorec, оберіть диск і розділ.
  2. Вкажіть тип файлової системи: для NTFS/FAT — "Other", для ext — "ext2/ext3".
  3. Налаштуйте типи файлів (Options → File Opt) — так зекономите час і місце.
  4. Обов'язково вкажіть теку призначення на іншому фізичному диску.
sudo photorec

NTFS: ntfsundelete (швидко з консолі)

ntfsundelete із пакета ntfs-3g часто рятує прості випадки на NTFS без запуску повноцінних сканерів.

# Подивитися, що можна відновити
sudo ntfsundelete /dev/sdb2 -l

# Відновити усі *.docx з високими шансами (мають >80% integrity)
sudo ntfsundelete /dev/sdb2 -u -m '*.docx' -i 80 -d recovered_ntfs

Альтернативні способи і корисні патерни

  • Працюйте з образом диска. Якщо диск "сиплеться" або важливі дані, спочатку зробіть образ і вже з ним працюйте:
# Створити образ і карту секторів (мінімальний прохід)
sudo ddrescue -f -n /dev/sdX image.img mapfile

# Дочитати проблемні місця
sudo ddrescue -d -r3 /dev/sdX image.img mapfile

# Далі запускайте photorec/testdisk по image.img (меню дозволяє обрати файл-образ)
  • ext4magic — альтернатива extundelete для ext4. На деяких дистрибутивах доступна як окремий пакет.
  • Фільтруйте типи файлів у PhotoRec, щоб не отримати тисячі зайвих JPEG/PNG.
  • Згадайте про резервне копіювання системи: регулярні бекапи знімуть більшу частину ризиків. Це не просто порада — це обов'язкова звичка у Linux-щоденності.

GUI-спосіб: QPhotoRec

Якщо не любите TUI, спробуйте QPhotoRec — графічну оболонку для PhotoRec (часто постачається у тому ж пакеті з testdisk).

  1. Запустіть qphotorec (може називатися QPhotoRec у меню).
  2. Оберіть диск/розділ і тип файлової системи.
  3. Налаштуйте типи файлів для пошуку, щоб звузити результат.
  4. Вкажіть теку призначення на іншому диску і стартуйте відновлення.

Нагадування: навіть у GUI завжди зберігайте результати на інший фізичний носій. Це базова гігієна управління файлами.

FAQ

Чи гарантується відновлення?
Ні. Якщо сектори перезаписані або SSD виконав TRIM, шанс падає майже до нуля.

SSD і TRIM: чи є шанси?
Якщо TRIM спрацював, видалені блоки позначені під очищення контролером SSD. У таких випадках пробуйте одразу PhotoRec, але чудес не обіцяю.

Помилка "device is busy" при відмонтуванні?
Перевірте, хто тримає файлову систему: sudo lsof +f -- /mnt/recovery або sudo fuser -vm /dev/sdXN, закрийте процеси й повторіть.

extundelete каже, що потрібна журналювана ФС?
extundelete працює з журналом ext3/ext4. Якщо журнал недоступний або сильно фрагментований, шанс падає. Спробуйте PhotoRec або ext4magic.

TestDisk/PhotoRec не знаходять диск?
Запустіть їх з sudo, перевірте, чи бачить систему lsblk -f. Для LUKS-шифрування спочатку розблокуйте том: sudo cryptsetup open /dev/sdXn vault.

Куди зберігаються відновлені файли?
TestDisk/PhotoRec запитують директорію призначення. extundelete створює каталог на поточному шляху (наприклад, RECOVERED_FILES). Завжди використовуйте інший диск.

Як встановити утиліти в інших дистрибутивах?
Для Fedora: sudo dnf install testdisk ntfs-3g; для Arch: sudo pacman -S testdisk ntfs-3g. extundelete може ставитися як окремий пакет.

Чи можна відновити після перезавантаження?
Так, якщо дані не були перезаписані. Але кожна зайва хвилина активного користування диском зменшує шанси.

Порада від Kernelka

Заведіть просте правило: перш ніж натискати Shift+Delete, ввімкніть резервне копіювання системи (навіть найпростішу копію важливих тек). А для ризикованих дій тримайте напоготові LiveUSB з testdisk/photorec — це ваша чарівна паличка 🪄. Маленький чекліст на холодильник: unmount → read-only → образ → відновлення → перевірка ✅

Підсумок

  • Зупиніть запис на постраждалий розділ і, по можливості, відмонтуйте його.
  • Для ext4 починайте з extundelete; якщо не вийшло — переходьте до PhotoRec.
  • Для NTFS зручно почати з TestDisk (Undelete) або ntfsundelete, а потім — PhotoRec.
  • Краще працювати з образом диска через ddrescue, особливо якщо є апаратні проблеми.
  • Зберігайте відновлені файли на інший фізичний носій.
  • Регулярні бекапи і здорові поради Linux економлять нерви і час 🙂