rm recuperación de archivos borrados accidentalmente

Descripción del problema

En una instancia de Linux, utilice rm命令误删除文件el siguiente método para recuperar datos 且没有en el disco donde se encuentra el archivo .进行任何写操作

# 执行不成功的
rm -Rf /

## 使用 --no-preserve-root 选项跳过安全模式
rm -rf --no-preserve-root /*

Tres partes del sistema de archivos.

Linuxy consta Windowsde :文件系统三部分

  • Nombre del archivo
  • inodo
  • bloquear
Nombre del archivo Almacenar información de metadatos de archivos realmente almacenar datos
a.txt –>inodo –> bloquear

block块: Dónde se almacenan realmente los datos
逻辑删除: Eliminación falsa (equivalente a simplemente eliminar el índice del libro) ¿
Por qué la eliminación es más rápida que la copia?


El proceso sigue ahí después de eliminar accidentalmente el archivo.

https://www.lxlinux.net/1124.html

# 查看当前正在使用的、已被删除的文件
lsof | grep deleted

imagen.png
Afortunadamente este es el caso 进程还存在, entonces comienzan las operaciones de recuperación.


recuperar

# 恢复命令
cp /proc/pid/fd/1/指定目录/文件名 /tmp/恢复/

Ingrese 进程目录, generalmente ingrese /proc/pid/fd/, copie el archivo a la ubicación especificada

Insertar descripción de la imagen aquí
Operación de recuperación
Insertar descripción de la imagen aquí


Instalar extundelete

Referencia: https://www.lxlinux.net/8012.html
ext4 Para eliminar archivos en el sistema de archivos, puede usar extundeletela recuperación;
ext3para eliminar archivos en el sistema de archivos, puede usar ext3grepla recuperación;
windowspara recuperar archivos eliminados accidentalmente: final data v2.0汉化版yeasyrecovery

extundeleteSitio web oficial: http://extundelete.sourceforge.net/

extundeleteLa herramienta puede recuperarse ext3o ext4particionarse 已删除的文件.
extundeleteCon archivos almacenados en una partición que se han eliminado en el 分区日志中的信息pasado 尝试恢复, no hay garantía de que un archivo eliminado específico pueda recuperarse exitosamente.
extundeleteLa herramienta se recupera temporalmente 不支持del xfssistema de archivos 误删文件, puedes intentar usarla para recuperar archivos borrados TestDiskaccidentalmentexfs


yum instalar extundelete

# 检查是否安装有extundelete工具
rpm -qa extundelete

# yum安装extundelete
yum install -y extundelete

# 查看extundelete版本
extundelete -v

Compilar e instalar extundelete

# 安装依赖包
yum -y install e2fsprogs-libs e2fsprogs e2fsprogs-devel

# 下载压缩安装包
wget http://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2

# 备用下载地址
wget https://raw.githubusercontent.com/omaidb/qiaofei_notes/main/shell_code/extundelete/extundelete-0.2.4.tar.bz2

# 解压
tar -jxvf extundelete-0.2.4.tar.bz2

cd extundelete-0.2.4

# 构建编译选项
./configure

# 编译安装
make && make install

# 检查是否安装成功
extundelete -v

eliminar parámetros comunes

Entre ellos, los parámetros (opciones) son:

parámetro explicar
–versión, -[vV] Mostrar el número de versión del software
-ayuda Mostrar información de ayuda del software
–supermanzana Mostrar información de superbloque
-diario Mostrar información de registro
–después del tiempo Parámetro de tiempo, que indica archivos o directorios que se eliminarán después de un cierto período de tiempo
–antes de la hora Parámetro de tiempo, que indica archivos o directorios que se eliminaron antes de un cierto período de tiempo

Acción:

parámetro explicar
–inodo ino Mostrar información sobre el nodo "ino"
–bloquear negro Mostrar información sobre el bloque de datos "blk"
–restaurar-inodo ino[,ino,…] Parámetro del comando de restauración, que significa restaurar los archivos del nodo "ino". Los archivos restaurados se colocarán automáticamente en la carpeta RESTORED_FILES en el directorio actual, utilizando el número de nodo como extensión.
–restaurar-archivo 'ruta' Parámetros del comando de recuperación, que indican que los archivos en la ruta especificada se recuperarán y los archivos recuperados se colocarán en el directorio RECOVERED_FILES en el directorio actual.
–restaurar-archivos 'ruta' Restaurar parámetros del comando, lo que indica que se restaurarán todos los archivos enumerados en la ruta
-restaura todo Parámetros del comando de recuperación, que indican que se intentará recuperar todos los directorios y archivos
-j diario Indica la lectura del registro extendido del archivo nombrado
-b número de bloque Indica el uso del superbloque previamente respaldado para abrir el sistema de archivos. Generalmente se usa para verificar si el superbloque existente es el archivo requerido actualmente.
-B tamaño de bloque Abra el sistema de archivos especificando el tamaño del bloque de datos, generalmente utilizado para ver archivos cuyo tamaño ya se conoce

Después de eliminar accidentalmente un archivo立即要做的事情

pista:

  • 误删除文件Finalmente, 第一lo primero que debemos hacer 立即停止继续写入数据es 避免eliminar el contenido del archivo por error.被覆盖
  • extundeletey se 不能crean automáticamente al recuperar archivos .空文件目录
  • Instale extundeletela herramienta, 切勿instale extundeletela herramienta en 误删文件所在磁盘. Se recomienda instalarlo 系统盘o instalarlo juntos 新的数据盘.
  • Dado que la operación posterior de usar esta herramienta para restaurar archivos eliminados requiere ejecutar umountun comando para cancelar la operación de montaje de la partición o 只读方式montar la partición, el comando no se puede ejecutar en la partición del disco del sistema umount.
  • 系统盘误删文件La recuperación de datos en el sistema debe montarse liveCDdespués del inicio .只读方式要恢复的系统盘

1. Haga una copia de seguridad de la partición actual mediante el comando dd

Utilice el comando dd para hacer una copia de seguridad de la partición actual y evitar la pérdida de datos causada por una falla de recuperación del software de terceros. Es adecuado para situaciones donde los datos son muy importantes. En esta prueba, no hay copia de seguridad. Si se realiza la copia de seguridad, se pueden considerar los siguientes métodos:

# 通过dd命令对当前分区进行备份
dd if=/path/filename of=/dev/vdc1

2. Desmonte la partición donde se deben recuperar los archivos o móntela en modo de solo lectura

Desmonte la partición del disco donde se encuentran los archivos eliminados.

# 查看当前系统磁盘分区
df -h

# 卸载需要恢复文件的分区
## umount 挂载点
umount /mnt

# 查看谁在占用挂载点
## -m 显示挂载点
## -u 显示用户
## -v 显示详情
fuser -muv /mnt

# 识别和终止正在访问指定文件或文件系统的进程
## -m:指定匹配模式为挂载点,只管挂载点相关的进程
## -v:显示详细信息,包括进程的命令行参数
## -i:交互式模式,要求在终止进程之前进行确认
## -k:终止进程
fuser -m -v -i -k /mnt

# 以只读的方式挂载
## remount 重新挂载
## ro 只读方式挂载
mount -o remount,ro /mnt

3. Verifique el número de inodo

Extensiones:

  • ext4inodeEl valor del directorio raíz de la partición es2
  • xfsinodeEl valor del directorio raíz de la partición es64
    • 本示例se 根分区crea usandoLVM96
# 查看etx4文件系统磁盘的inode值
ls -id /mnt/data/

Insertar descripción de la imagen aquí

# 查看xfs文件系统中/boot的inode值
ls -id /boot/

Insertar descripción de la imagen aquí
定位被误删的文件Si necesita buscar paso a paso, primero puede 根分区 inodebuscar desde

# 查看inode号:
## 常识:每个文件,有一个inode号。
ls -i a.txt

imagen.png

# 查看inode中的文件属性
## 通过stat命令查看inode中包含的内容
stat a.txt

imagen.png


4. Ver información de datos eliminados

https://blog.51cto.com/bosszhang/2069542

# 通过inode结点查看被删除的文件名字:
# 查看sdb1分区根目录下面可被恢复的文件及文件夹
# 查询可恢复的数据,带有Deleted标记的表示已经删除的文件
## --inode 2 显示inode号为2的文件的信息
# extundelete 磁盘设备路径 --inode 2
extundelete /dev/sdb1 --inode 2

La pantalla del sistema es similar a la siguiente:
la de la imagen Deleted状态es 被删除的数据.
Restaurar 被删除数据al RECOVERED_FILES目录siguiente, 该RECOVERED_FILES目录valor predeterminado creado 当前目录a continuación .


Recuperar archivos

https://developer.aliyun.com/article/563603


Restaurar el archivo con el número de inodo especificado

# 恢复对应inode的文件
extundelete 磁盘镜像文件 --restore-inode 21

Restaurar el nombre del archivo especificado

# 指定文件名test.txt尝试恢复
extundelete /dev/sdb1 --restore-file test.txt

Restaurar el directorio especificado

空目录不会被恢复

# 恢复指定目录
extundelete /dev/sdb1 --restore-directory /dir1

Recuperar todos los archivos recuperables

# 恢复该磁盘下的所有可恢复文件
extundelete 磁盘设备路径 --restore-all

La pantalla del sistema es similar a la siguiente:


Recuperar archivos de un tiempo específico

Unix时间戳Conversión: https://tool.chinaz.com/tools/unixtime.aspx


Restaurar archivos eliminados antes de la marca de tiempo especificada

# 恢复指定时间戳之前删除的文件
## --before UNIX时间戳,从1970年1月1日 00:00:00 UTC 起的秒数。
extundelete --before 1451288304 --restore-all /dev/sdb1

Restaurar archivos eliminados después de la marca de tiempo especificada

# 恢复指定时间戳之后删除的文件
## --after UNIX时间戳
extundelete --after 1451288304 --restore-all /dev/sdb1

Ver archivos recuperados

# 查看恢复出的文件
ls RECOVERED_FILES/

Supongo que te gusta

Origin blog.csdn.net/omaidb/article/details/133276923
Recomendado
Clasificación