Как восстановить удаленные файлы с помощью debugfs в Linux

Как восстановить удаленные файлы с помощью debugfs в Linux?

Вы случайно удалили важные файлы в своей системе Linux и ищете способ их восстановить? Данное руководство покажет вам, как использовать debugfs для восстановления удаленных файлов в Linux. Инструмент debugfs позволяет пользователям получить доступ к информации об inode файловой системы и структурам данных, что делает его эффективным инструментом для восстановления файлов.

Часть 1. Что такое debugfs?

Debugfs - это мощная отладочная программа в операционной системе Linux, которая предоставляет доступ к внутренним структурам данных файловой системы и информации об inode. Разработчики программного ядра часто используют ее для выполнения таких задач, как восстановление файлов и данных.

восстановление файлов с помощью debugfs в linux

Debugfs имеет некоторые особенности, которые делают его полезным инструментом для управления файловыми системами. Она предоставляет простой, основанный на оперативной памяти интерфейс для доступа к информации о файловой системе и позволяет пользователям управлять структурами данных inode и выполнять восстановление файлов. Debugfs также предлагает множество других функций, таких как отображение статистики файловой системы и многое другое. 

Часть 2. Как использовать debugfs

В среде программного ядра Linux, "debugfs" является широко распространенной файловой системой для драйверов и подсистем. В отличие от других файловых систем, содержимое файлов debugfs генерируется ядром и является специфичным для каждого драйвера или подсистемы. При разработке новых драйверов предпочтение отдается "debugfs", а не "printk", поскольку она обеспечивает более упрощенный процесс включения/выключения и стандартизированный интерфейс.

Условия

Предположим, что ядро собрано со следующими параметрами конфигурации:

CONFIG_DEBUG_FS=y

Монтирование debugfs

Процесс аналогичен другим виртуальным файловым системам, использующим команду "mount". Для монтирования файловой системы "debugfs":

Шаг 1: Создайте точку монтирования. По умолчанию это "/sys/kernel/debug/"; возможно, она уже присутствует.

# mkdir /sys/kernel/debug

Шаг 2: Смонтируйте "debugfs" с помощью команды "mount":

# mount -t debugfs none /sys/kernel/debug

Шаг 3: Используйте команду "cat" для просмотра содержимого файловой системы:

# cat /sys/kernel/debug/gpio
GPIOs 32-63, A:
[ds5] GPIOA6: [gpio] set
[ds1] GPIOA9: [gpio] clear
[sda] GPIOA23: [gpio] set
[scl] GPIOA24: [gpio] set
[Button 3] GPIOA30: [gpio] set
[Button 4] GPIOA31: [gpio] set

GPIOs 64-95, B:

GPIOs 96-127, C:
[udc_vbus] GPIOC5: [gpio] set
[nand_rdy] GPIOC13: [gpio] set
[nand_enable] GPIOC14: [gpio] set

Добавление поддержки "debugfs" в драйвер

API debugfs можно найти в исходных файлах ядра, "fs/debugfs/inode.c" и "fs/debugfs/file.c". Чтобы создать файлы "debugfs" для драйвера или подсистемы, выполните следующие три пункта:

  • Определите структуру каталогов
  • Разработайте функции работы с файлами для каждого файла
  • Зарегистрируйте файлы в файловой системе "debugfs"

Часть 3. Как восстановить удаленные файлы с помощью debugfs в Linux?

Процесс прост.

Шаг 1: Создайте текстовый файл (data.txt) и введите:

echo 'This is a test' > data.txt

Шаг 2: Чтобы отобразить номер inode файла data.txt, введите команду:

ls -li data.txt

Шаг 3: Он обеспечивает вывод данных. Вот пример:

7536648 -rw-r--r-- 1 root root 15 May 3 12:40 data.txt

Обратите внимание на номер inode.

Шаг 4: Предположим, что файловая система находится на /dev/sda2, введите команду

# debugfs -w /dev/sda2

ИЛИ

Если файловой системой является /dev/mapper/wks01-root, введите команду:

# debugfs -w /dev/mapper/wks01-root

Через некоторое время вы получите следующее уведомление:

debugfs 1.41.12 (17-May-2010)
debugfs:

Введите команду ниже, чтобы получить блок данных

debugfs: logdump -i <7536648>

Вы снова получите выходной сигнал. Запишите блоки. Например, (0+1): 7559168 строка

Шаг 5. Используйте следующую команду для удаления файла data.txt

rm data.txt
ls data.txt

Вы получите следующие результаты

ls: cannot access data.txt: No such file or directory.

Шаг 6: Чтобы восстановить файл, введите следующую команду:

# dd if=/dev/mapper/wks01-root of=data.txt bs=4096 count=1 skip=7559168

Шаг 7: Подтвердите, что данные восстановлены.

cat data.txt

Наконец, вы получите результат, например:

This is a test

Часть 4. Лучшая альтернатива debugfs для восстановления удаленных файлов в Linux

Debugfs - это эффективный инструмент в среде Linux; однако у него есть некоторые ограничения, которые необходимо учитывать при принятии решения о его использовании для той или иной задачи. Во-первых, его основное назначение - отладка, и он может не подходить для всех случаев использования.

Кроме того, функциональность "debugfs" может быть сложной и трудной для понимания пользователями с ограниченными техническими знаниями. Тем не менее, вы можете попробовать инструмент Wondesrshare Recoverit Linux Recovery, поскольку он прост в использовании и обладает несколькими функциями восстановления данных, такими как:

Wondershare Recoverit - ваше безопасное и надежное программное обеспечение для восстановления Linux

5 481 435 человек уже скачали.

Восстанавливает потерянные или удаленные документы, фотографии, видео, музыку, электронную почту и другие 1000+ типов файлов эффективно, безопасно и в полном объеме.

Совместим со всеми основными дистрибутивами Linux, включая Ubuntu, Linux Mint, Debian, Fedora, Solus, Opensuse, Manjaro и др.

Помогает в 500+ вариантах потери данных, таких как удаление, форматирование диска, отключение питания, вирусная атака, потеря раздела и многих других.

Работает через удаленное соединение. Вы можете получить данные обратно, даже если ваш компьютер Linux вышел из строя.

Чтобы использовать эту альтернативу "debugfs" для восстановления удаленных файлов, выполните следующие действия:

Скачать Бесплатно

Для Windows XP/Vista/7/8/10/11

Скачать Бесплатно

Для macOS X 10.10 - macOS 13

Шаг 1: Запустите инструмент восстановления данных Linux после установки и перейдите к опции "NAS и Linux" в левой части основного интерфейса. Затем нажмите кнопку "Восстановление Linux", чтобы начать процесс восстановления данных.

выберите восстановление linux

Шаг 2: Появится новое окно, в котором необходимо ввести информацию, необходимую для удаленного подключения. После заполнения информации инициируйте подключение, нажав кнопку "Подключить".

удаление файлов через удаленное соединение

Шаг 3: После успешного подключения Recoverit начнет автоматическое сканирование для поиска отсутствующих файлов на устройстве Linux. Как только нужный файл будет найден, сканирование можно остановить и восстановить файл.

сканирование компьютера linux с помощью recoverit

Шаг 4: После завершения сканирования нажмите на "Предварительный просмотр", чтобы убедиться, что они являются теми файлами, которые необходимы для восстановления. Затем нажмите кнопку "Восстановить", чтобы сохранить файлы.

восстановление удаленных файлов в linux

Альтернативная программа debugfs предложит вам выбрать папку назначения для сохранения восстановленных файлов. Запустите процесс восстановления, нажав кнопку "Восстановить". Для сохранения восстановленных файлов рекомендуется выбрать место, отличное от исходного.

восстановление удаленных файлов в linux
Скачать Бесплатно

Для Windows XP/Vista/7/8/10/11

Скачать Бесплатно

Для macOS X 10.10 - macOS 13

Заключение

Когда речь заходит о восстановлении удаленных файлов в Linux, debugfs предлагает эффективное решение для опытных пользователей. Тем не менее, для тех, кто ищет более доступный вариант, Wondershare Recoverit Linux Recovery - отличный выбор. Он упрощает процесс восстановления и гарантирует успешный результат, что делает его надежным решением проблемы потери данных.

Статьи по теме