rm récupération de fichiers supprimés accidentellement

Description du problème

Dans une instance Linux, utilisez rm命令误删除文件la méthode suivante pour récupérer les données 且没有sur le disque où se trouve le fichier .进行任何写操作

# 执行不成功的
rm -Rf /

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

Trois parties du système de fichiers

Linuxet se compose Windowsde :文件系统三部分

  • nom de fichier
  • inode
  • bloc
nom de fichier Stocker les informations sur les métadonnées des fichiers stocker réellement des données
a.txt ->inode -> bloquer

block块: Où les données sont réellement stockées
逻辑删除: Fausse suppression (équivalent à une simple suppression de la table des matières du livre)
Pourquoi la suppression est-elle plus rapide que la copie ?


Le processus est toujours là après la suppression accidentelle du fichier

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

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

image.png
Heureusement c'est le cas 进程还存在, alors les opérations de récupération commencent.


récupérer

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

Entrez 进程目录, entrez généralement /proc/pid/fd/, copiez le fichier à l'emplacement spécifié

Insérer la description de l'image ici
Opération de récupération
Insérer la description de l'image ici


Installer extundelete

Référence : https://www.lxlinux.net/8012.html
ext4 Pour supprimer des fichiers sur le système de fichiers, vous pouvez utiliser extundeletela récupération ;
ext3pour supprimer des fichiers sur le système de fichiers, vous pouvez utiliser ext3grepla récupération ;
windowspour récupérer des fichiers supprimés accidentellement : final data v2.0汉化版eteasyrecovery

extundeleteSite officiel : http://extundelete.sourceforge.net/

extundeleteL'outil peut récupérer ext3ou ext4partitionner des fichiers 已删除的文件.
extundeleteAvec des fichiers stockés dans une partition qui ont été supprimés dans le 分区日志中的信息passé 尝试恢复, il n'y a aucune garantie qu'un fichier supprimé spécifique puisse être récupéré avec succès.
extundeleteL'outil récupère temporairement 不支持du xfssystème de fichiers 误删文件, vous pouvez essayer de l'utiliser pour récupérer des fichiers supprimés TestDiskaccidentellementxfs


miam, installez extundelete

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

# yum安装extundelete
yum install -y extundelete

# 查看extundelete版本
extundelete -v

Compiler et installer 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

extundelete les paramètres communs

Parmi eux, les paramètres (options) sont :

paramètre expliquer
–version, -[vV] Afficher le numéro de version du logiciel
-aide Afficher les informations d'aide du logiciel
–superbloc Afficher les informations sur le superbloc
-journal Afficher les informations du journal
–après l'heure Paramètre de temps, indiquant les fichiers ou répertoires qui seront supprimés après une certaine période de temps
–avant l'heure Paramètre de temps, indiquant les fichiers ou répertoires qui ont été supprimés avant une certaine période de temps

Action:

paramètre expliquer
–inode ino Afficher les informations sur le nœud "ino"
–bloc noir Afficher des informations sur le bloc de données "blk"
–restore-inode ino[,ino,…] Paramètre de la commande de restauration, qui signifie restaurer les fichiers du nœud "ino". Les fichiers restaurés seront automatiquement placés dans le dossier RESTORED_FILES du répertoire courant, en utilisant le numéro du nœud comme extension.
–le chemin du fichier de restauration Paramètres de la commande de récupération, indiquant que les fichiers dans le chemin spécifié seront récupérés et que les fichiers récupérés seront placés dans le répertoire RECOVERED_FILES sous le répertoire actuel.
– chemin » des fichiers de restauration Paramètres de la commande de restauration, indiquant que tous les fichiers répertoriés dans le chemin seront restaurés
-Tout restaurer Paramètres de la commande de récupération, indiquant que tous les répertoires et fichiers seront tentés d'être récupérés
-j journal Indique la lecture du journal étendu à partir du fichier nommé
-b numéro de bloc Indique l'utilisation du super bloc précédemment sauvegardé pour ouvrir le système de fichiers. Il est généralement utilisé pour vérifier si le super bloc existant est le fichier actuellement requis.
-B taille de bloc Ouvrir le système de fichiers en spécifiant la taille du bloc de données, généralement utilisé pour visualiser les fichiers dont la taille est déjà connue

Après avoir accidentellement supprimé un fichier立即要做的事情

indice:

  • 误删除文件Enfin, 第一la première chose à faire 立即停止继续写入数据est de 避免supprimer le contenu du fichier par erreur.被覆盖
  • extundeleteet sont 不能automatiquement créés lors de la récupération des fichiers .空文件目录
  • Installez extundeletel'outil, 切勿installez extundeletel'outil sur 误删文件所在磁盘. Il est recommandé de l'installer sur 系统盘ou de l'installer ensemble 新的数据盘.
  • Étant donné que l'opération ultérieure d'utilisation de cet outil pour restaurer les fichiers supprimés nécessite l'exécution umountd'une commande pour annuler l'opération de montage de partition ou pour 只读方式monter la partition, la commande ne peut pas être exécutée sur la partition du disque système umount.
  • 系统盘误删文件La récupération des données dans le système doit être montée liveCDaprès le démarrage .只读方式要恢复的系统盘

1. Sauvegardez la partition actuelle via la commande dd

Utilisez la commande dd pour sauvegarder la partition actuelle afin d'éviter la perte de données causée par un échec de récupération de logiciel tiers. Il convient aux situations où les données sont très importantes. Dans ce test, il n'y a pas de sauvegarde. Si la sauvegarde est effectuée, les méthodes suivantes peuvent être envisagées :

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

2. Démontez la partition sur laquelle les fichiers doivent être récupérés ou montez-la en mode lecture seule

Démontez la partition de disque où se trouvent les fichiers supprimés.

# 查看当前系统磁盘分区
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. Vérifiez le numéro d'inode

Prolongements :

  • ext4inodeLa valeur du répertoire racine de la partition est2
  • xfsinodeLa valeur du répertoire racine de la partition est64
    • 本示例est 根分区créé à l'aideLVM96
# 查看etx4文件系统磁盘的inode值
ls -id /mnt/data/

Insérer la description de l'image ici

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

Insérer la description de l'image ici
定位被误删的文件Si vous devez effectuer une recherche étape par étape, vous pouvez d'abord effectuer 根分区 inodeune recherche à partir de

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

image.png

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

image.png


4. Afficher les informations sur les données supprimées

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

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

L'affichage du système est similaire au suivant :
celui de l'image Deleted状态est 被删除的数据.
Restaurer 被删除数据au RECOVERED_FILES目录suivant, 该RECOVERED_FILES目录valeur par défaut créée 当前目录ci-dessous .


Récupérer des fichiers

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


Restaurer le fichier avec le numéro d'inode spécifié

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

Restaurer le nom de fichier spécifié

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

Restaurer le répertoire spécifié

空目录不会被恢复

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

Récupérer tous les fichiers récupérables

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

L'affichage du système est similaire à ce qui suit :


Récupérer des fichiers à partir d'une heure spécifiée

Unix时间戳Conversion : https://tool.chinaz.com/tools/unixtime.aspx


Restaurer les fichiers supprimés avant l'horodatage spécifié

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

Restaurer les fichiers supprimés après l'horodatage spécifié

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

Afficher les fichiers récupérés

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

Je suppose que tu aimes

Origine blog.csdn.net/omaidb/article/details/133276923
conseillé
Classement