5 перевірених способів, як відновити видалені файли в Linux

Пам’ятаєш те жахливе відчуття, коли випадково видалив потрібний файл і його немає навіть в кошику? Аж мурашки по шкірі… Часто цій ситуації передує думка: я знаю, що у мене є копія, тому видалю фінансовий звіт/курсову роботу/перші фото дитини. 

Але замість того, щоб проходити через усі етапи горя, — від заперечення до прийняття, — згадай, що є утиліти відновлення файлів. Такі програми є одними з найважливіших у наборі інструментів Linux-адміністратора. Вони допоможуть відновлювати видалені дані, навіть якщо диск фізично пошкоджений або стертий.

Ми зібрали 5 простих Linux-інструментів, які можна встановити прямо зараз і повернути важливі файли. 

Інтро

Системи Linux пропонують теку «Trash» для програмно видалених даних. Отже, якщо ти випадково позбувся файлів за допомогою кнопки «Видалити», то можеш миттєво відновити їх у кошику.

Однак якщо ти назавжди видалив файли за допомогою Shift + Del, то тут вже знадобиться одна з програм відновлення даних, доступних для Linux. Оскільки різні програми використовують різні методи відновлення, може знадобитися кілька спроб, щоб повернути бажаний файл.

На щастя, навіть у разі остаточного видалення дані не втрачаються відразу. Вони приховані від файлової системи та будуть стерті лише тоді, коли ти перезапишеш їх. 

Отже, перший крок для відновлення втрачених даних із розділу жорсткого диска — зроби розділ доступним лише для читання. Це гарантує, що ти випадково не перезапишеш видалені файли.

Наприклад, якщо видалений документ знаходяться в розділі /dev/sdb1, спочатку потрібно розмонтувати його, а потім повторно встановити як read-only. Це можна зробити за допомогою команд:

sudo umount /dev/sdb1

sudo mount -o ro /dev/sdb1 /media/read-only

Про команди mount та umount читай тут. 

Також корисно клонувати розділ на інший диск. Це гарантує, що ти не втратиш вихідний розділ під час відновлення даних. Можеш використовувати dd для клонування розділів Linux. 

Команда нижче клонує вміст /dev/sdb1 до розділу sda1 /dev/sda іншого диска.

dd if=/dev/sdb1 of=/dev/sda1 bs=1M

Утиліти для відновлення видалених даних у Linux 

[1] TestDisk

TestDisk — це опенсорсна програма для відновлення даних із відкритим кодом, яка може ефективно відновлювати назавжди видалені файли чи розділи. Встановити TestDisk на Linux можна за допомогою таких команд:

# Ubuntu and Debian

sudo apt install testdisk

# RHEL and CentOS

sudo yum install epel-release
sudo yum install testdisk

# Arch Linux

sudo pacman -S testdisk

Після встановлення запусти TestDisk: відкрий термінал і введи команду testdisk.

sudo testdisk

Ти опинишся в інтерактивному вікні підказки TestDisk. Використовуй клавіші зі стрілками на клавіатурі для навігації та натисни Enter, щоб вибрати параметри. Першим доступним варіантом буде створення файлу журналу. Створи один.

На наступному екрані буде список носіїв даних, підключених до твоєї системи. Вибери пристрій, який містить видалені файли. Тут ми використовуємо носій /dev/sdb. Вибери відповідний варіант і натисни Proceed.

На наступному екрані тобі запропонують вибрати тип розділу для диска. Вибери той, що тобі не треба. Зауваж, що TestDisk намагатиметься самостійно визначити правильний тип. Отже, якщо ти не впевнений, вибери тип розділу, визначений програмою.

Далі побачиш кілька доступних опцій. Приміром параметр Analyse корисний для відновлення втрачених розділів. Однак для відновлення видалених файлів ми скористаємося параметром Advanced.

На наступному екрані побачиш список усіх розділів, наявних на обраному пристрої. Вибери розділ, який містить твої видалені дані, а потім — Undelete в нижньому меню.

TestDisk просканує записи MFT на наявність видалених файлів на цьому розділі та перерахує їх тут. Ми шукаємо файл picture.jpg, показаний на цьому екрані.

Ти можеш вибрати/скасувати вибір певних файлів за допомогою : і всіх файлів за допомогою а. Вибравши файли для відновлення, натисни C, щоб скопіювати їх.

Програма запропонує вибрати місце призначення для відновлення. Перейди туди та натисни C, щоб зберегти файл.

[2] PhotoRec

PhotoRec — ще одна потужна програма для відновлення даних, створена розробниками TestDisk. Його розробили, щоб відновлювати видалені фотографії у Linux, але він перетворився на повноцінну програму. Зараз PhotoRec можна використовувати для відновлення всіх видів файлів.

Різниця між TestDisk і PhotoRec полягає в тому, що останній може отримувати файли навіть із дисків, які були пошкоджені без можливості відновлення. Він використовує підписи файлів, щоб виявити видалені. 

Встановити PhotoRec можна на різні дистрибутиви Linux за допомогою тих самих команд, які використовуються для установки TestDisk. Якщо ти вже встановив останній, тобі не потрібно встановлювати PhotoRec, адже вони йдуть одним пакетом. 

sudo photorec

Ця команда запустить PhotoRec і переведе тебе у меню «Пуск». Макет схожий на TestDisk, як і навігація. Програма запропонує вибрати дисковий носій. Вибери правильний і натисни Proceed.

Потім вибери вихідний розділ, а потім File Opt у нижньому меню.

Тут ти можеш вказати тип видалених файлів. PhotoRec за замовчуванням вибирає всі. Можеш вимкнути цю функцію за допомогою s і вибрати певний тип за допомогою x. Ми вибираємо jpg для відновлення нашого файлу зображення.

Тепер поверніться за допомогою q і виберіть опцію Search, щоб почати відновлення файлів у Linux.

Потім потрібно буде вибрати тип файлової системи. Виберіть Other, якщо вихідний розділ не ext3/ext4.

На цьому етапі вкажи, чи шукати вибрані типи файлів у всьому розділі чи лише у вільному місці. Ми вибираємо варіант Free Space, щоб шукати швидше.

Наступний крок вимагає від користувачів вибору каталогу призначення. Переконайся, що файли не зберігаються на тому самому розділі, який ти скануєш. Перейди до потрібного місця за допомогою клавіш зі стрілками та натисни C, щоб зберегти.

Тепер PhotoRec просканує вільні сектори та збереже відновлені файли у вибране місце призначення. Він збереже їх в каталозі під назвою recup_dir.

[3] Foremost 

Foremost — це безплатний інструмент для відновлення даних для Linux. Він поставляється з простим інтерфейсом CLI. Хоча програмне забезпечення не таке інтерактивне, як TestDisk або PhotoRec, воно все одно корисне для певних сценаріїв. Ти можеш встановити Foremost на Linux за допомогою команд:

# Ubuntu and Debian

sudo apt install foremost

# Fedora

sudo dnf install foremost

# Arch Linux

sudo pacman -S foremost

Після інсталяції користуватися програмним забезпеченням відносно просто. Ти можеш перерахувати всі можливі варіанти для Foremost за допомогою команди:

foremost -h

Ми можемо відновити видалений файл picture.jpg за допомогою наступної головної команди:

foremost -v -t jpg -i /dev/sdb1 -o ~/recovery/

Ця команда шукатиме всі втрачені зображення JPG в /dev/sdb1 і відновлюватиме їх у ~/recovery. Прапорець -v вмикає детальне логування, -i вказує вихідний розділ, -o вказує вихідний каталог.

Параметр -t дозволяє користувачам вказувати, які файли шукати. Foremost підтримує різні типи файлів і може знаходити зображення, відео, текст тощо. 

[4] extundelete

extundelete — це програма для відновлення даних, яка може відновлювати видалені дані з файлових систем ext3/ext4 (їх використовують популярні дистро Linux, такі як Ubuntu). Встанови extundelete за допомогою однієї з наступних команд:

# Ubuntu і Debian

sudo apt install extundelete

# RHEL і CentOS

sudo yum install extundelete

# Arch Linux

sudo yay -S extundelete

Після інсталяції ти можеш продовжити відновлення видалених файлів із системи Linux за допомогою extundelete. Використовуй команду нижче, щоб швидко відновити певний файл. Зауваж, що шлях до файлу вказано відносно кореня розділу.

sudo extundelete --restore-file picture.jpg /dev/sdb1

Наступна команда отримує всі файли з розділу /dev/sdb1. Зміни назву розділу відповідно до джерела.

sudo extundelete --restore-all /dev/sdb1

Якщо хочеш зберегти відновлені файли в певному каталозі, вкажи його за допомогою параметра -o.

sudo extundelete -o ~/recovery --restore-all /dev/sdb1

За замовчуванням extundelete зберігає відновлені файли в підкаталозі RECOVERED_FILES/.

[5] R-Linux

R-Linux — це безплатний інструмент для відновлення даних графічного інтерфейсу користувача для Linux, але не опенсорсний. Він сканує файлові системи ext2/ext3/ext4 на наявність видалених файлів і відновлює втрачені. Ти можеш завантажити двійковий файл R-Linux із вебсайту R-Tools Technology для свого дистрибутиву.

Коли інсталюєш, встанови його за допомогою менеджера пакетів. Після встановлення відкрий ПЗ, перейшовши через меню програм. Введи пароль sudo, коли запросить система.

Тепер вибери вихідний розділ, який містить видалені файли, й проскануй його за допомогою графічного інтерфейсу. Можеш вибрати різні методи сканування.

Зачекай, поки сканування завершиться, щоб побачити список видалених файлів. Вибери ті, які тобі потрібні та віднови їх у верхньому меню.

Післяслово

Завдяки програмам відновити видалені файли в Linux досить легко. Можеш вибрати будь-який із наведених вище інструментів враховуючи тип видаленого файлу та конфігурації розділу твоєї системи. Ми рекомендуємо TestDisk і PhotoRec, оскільки вони забезпечують чітку та просту інтерактивну підказку.

Якщо маєш варіант краще — пиши в коментарях, бо треба ділитися корисним.

Відновлення даних може перетворитися на жахіття, тож завжди зберігай резервні копії на зовнішніх пристроях або в хмарі. Так твої файли навряд зможуть загубитися.

А щоб робота з Linux приносила і користь, і задоволення — пройди курс з адміністрування для новачків

Залишити відповідь

Дякуємо, що поділились