Linux之恢复误删除文件

嘿,Linux 这个东西有时会令人困惑。
如果文件被删除,似乎有办法将其恢复。
尤其是被进程占用时,恢复成功率更高。

我们先来说说如何处理。
您需要验证该文件是否被进程占用。
使用此命令:lsof | grep /路径/到/已删除/文件。
检查输出是否显示文件状态已删除。
如果有,则说明该文件已被删除,但仍有进程在使用它。
例如,您看到进程 1 3 06 7 仍在占用该文件,文件描述符为 8 6
接下来,您需要查看该进程处理的文件描述符。
使用此命令:cat /proc/[进程号]/fd/[文件描述符]。
例如,cat /proc/1 3 06 7 /fd/8 6 这样您就可以查明文件内容是否仍然完整。

最后一步是使用 I/O 重定向来恢复文件。
命令为:cat /proc/[进程号]/fd/[文件描述符] > /path/to/restored/file。
例如,cat /proc/2 3 7 7 8 /fd/8 6 > /root/selenium/Spider/MySql.Data.dll。
恢复完成后,使用 ls -l 查看权限和文件大小是否正确。

那为什么还能恢复呢?原理其实很简单。
在Linux中删除文件时,rm -f所做的就是删除该文件的目录索引节点(inode),使文件系统认为该文件已经消失了。
但如果文件被进程占用,操作系统会保留其数据块和文件描述符,进程也可以使用这些描述符来读写文件。

/proc 文件系统也发挥着作用。
/proc/[进程号]/fd/目录包含该进程打开的所有文件描述符。
即使文件被删除,描述符仍然指向原来的数据块。
当你读取描述符时,你可以得到文件中未被覆盖的内容。

当然,这个方法并不是万能的。
您需要使用正确的场景。
例如,一个文件被删除,但是仍然有进程在使用它(比如程序使用的库文件、日志等)。
还需要文件系统不要写入新的数据,否则数据会被覆盖。

但有一些限制需要注意。
如果占用该文件的进程被终止,文件描述符将会丢失,并且数据可能无法恢复。
文件系统类型也必须正确,例如ext4 ,并且atime或relatime不能打开。
您必须具有权限,并且您必须是 root 才能访问 /proc/[进程号]/fd/ 目录。

如果此方法不起作用且文件未被进程占用,可以尝试其他工具。
与extundelete一样,它适用于ext3 /ext4 文件系统,可以分析文件系统日志来恢复已删除的文件。
测试盘也是个好东西。
它支持多个文件系统,并且可以扫描磁盘分区以查找恢复的文件。

最后,如果文件太重要,以上方法都不管用,那就找专业的机构,可以对硬盘进行物理扫描并恢复数据。

还必须采取预防措施。
不要盲目使用rm命令。
删除之前使用 ls 验证路径。
您可以创建别名 rm='rm -i' 并在删除时给出交互式提示。
定期备份也很重要。
使用 rsync 或 BorgBackup 等工具定期备份数据。
如果文件系统支持,例如LVM或ZFS,则可以使用快照功能快速恢复到删除文件之前的状态。

简而言之,如果文件被删除,不要惊慌,立即停止写入,并首先尝试使用进程描述符恢复它。

linux系统文件丢失

说实话,丢失Linux系统文件是很烦人的,但幸运的是有很多解决方案。
关键在于你如何期望它。
我之前曾遇到过服务器崩溃的情况,并且由于分区错误而丢失了所有数据。
幸运的是,我用了正确的方法找到了它。

首先我们来谈谈数据恢复。
以 extundelete 为例。
我去年在测试环境中尝试过。
当时删除了一个重要的日志文件,恰好是Ext 4 系统。
我记得很清楚。
我很快使用 mount -o remount,ro/dev/sda1 将分区挂载为只读,然后安装了 extundelete 和 extundelete/dev/sda1 --restore-all。
恢复的文件其实就在当前目录的RECOVERED_FILES文件夹中,非常方便。
但请注意,这并不是万能的,尤其是文件写入的话,基本上是无药可救的。

有趣的是,该工具的测试盘还有附加功能。
我曾经帮助一个朋友修复了一个不小心格式化的U盘。
USB 闪存驱动器为 FAT3 2 我使用Test Disk选择Intel的分区表,深度扫描发现文件放置正确。
但要小心,尤其是在选择恢复方法时,不要混合分区。

说到备份和恢复,这绝对是一张应急王牌。
我自己的习惯是每天使用rsync与另一台服务器同步关键目录。
当时,一位同事不小心删除了该项目的整个代码库。
我们直接从备份中恢复它,这比搜索丢失的文件容易得多。
使用Rsync时记得添加--Delete参数,否则备份将被存储。

在修复系统文件时,我遇到过一次问题。
当时系统fsck无法找到特定模块。
检查日志后发现/etc/fstab中的挂载点写错了。
还好有备份,复制回来。
没有像/etc/passwd这样的备份,基本可以自己重建,需要经验才能玩。

我不经常使用文件系统修复,但上次我修复了坏扇区。
当时系统连启动都无法启动,最后我用fsck -y /dev/sda1 强制修复。
过程很很有趣,错误日志在屏幕上闪烁。
最终修复成功。
最主要的是要在单用户模式下工作,否则系统会死机。

为了预防措施,我建议使用像 BorgBackup 这样的高级备份工具,它比 rsync 更稳定,还可以复制压缩。
对于我的数 TB 数据来说使用起来非常方便。
还有,之前不能用UPS,吃了不少苦头。
有一次,半夜突然停电了。
多个虚拟机崩溃,文件系统损坏。
花了很长时间才恢复过来。

说实话,科技用多了,你就会发现什么都没有。
主要还是根据实际环境灵活应对。
当我恢复文件时,我将整个分区克隆到新磁盘。
它很慢但很可靠。

linux删除的文件怎么恢复

你好,说到Linux系统文件恢复,我在这方面有一些经验。
我记得有一次,一个朋友不小心删除了一个重要的文档。
他感觉自己好像丢了钱包。
我当时就告诉他,别担心,我们试试看能不能恢复。

首先我告诉他使用一个叫做debugfs的工具。
这个东西就像一个侦探,能够深入到文件系统的底层,寻找被删除文件的线索。
就好像用特殊的方法在茫茫人海中寻找失踪的人一样。
不过,这需要一定的技术能力,并不是每个人都能掌握。

然后我给他推荐了一些数据恢复工具,比如extundelete、testdisk或者photorec。
这些工具就像神奇的画笔一样,可以帮助您扫描磁盘并检索已删除的文件。
记得用测试盘恢复了一个误删的镜像文件,效果还不错。

另一个技巧是使用 dd 命令来恢复特定的数据块。
这就像拿起铲子去挖掘你知道埋在地下的宝藏。
然而,这种方法考验的是你对文件系统结构的理解。
您需要知道文件的大致位置以及数据块有多大。
我尝试过一次,它恢复了一些数据,但文件可能不完整,有点像拼图。

但说到底,及时止损才是最重要的。
当发现文件被删除时,立即停止所有对磁盘的写操作。
这就像拯救病人一样。
时间至关重要。
而且,数据恢复成功率并不是1 00%,尤其是在重新分配磁盘空间或写入新数据时。

最后,我必须强调,定期备份绝对是防止数据丢失的最佳实践。
就像我的日常工作一样,我每天都会备份重要数据,以防万一。
这样,即使出现问题,也可以快速恢复,减少损失。