答案是:extundelete可按inode日志还原ext4分区误删文件的原始名与目录结构,需先用df -t .确认文件系统为ext4、立即停写、卸载分区,再通过live环境编译安装并执行--restore-directory或--restore-inode命令恢复,结果存于recovered_files目录且须导出至其他存储设备。

统信UOS误删文件后,若文件存放在ext4分区且尚未被新数据覆盖,可通过extundelete工具按inode日志还原原始文件名与目录结构,这是目前最接近“原样恢复”的开源方案。
确认文件系统类型并立即停写
打开终端,执行df -T .(注意空格和英文句点),查看当前目录所在分区的文件系统类型。输出中若显示ext4,才可继续使用extundelete;若为btrfs、xfs或ntfs,则此工具完全不适用。【必须立刻停止向该分区写入任何内容——包括保存文档、下载文件、甚至打开大型软件,否则残留inode可能被覆盖】。如果误删的是桌面或/home下的文件,且该分区正是根分区(/),请直接关机,用Live UOS启动盘引导进入救援环境再操作。
安装并准备extundelete
在Live环境或非目标分区的终端中执行以下命令:
第一步:更新源并安装基础依赖:sudo apt update && sudo apt install -y e2fsprogs。
第二步:下载、解压、编译extundelete源码(UOS官方源默认不提供):wget https://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2 && tar -jxvf extundelete-0.2.4.tar.bz2 && cd extundelete-0.2.4 && sudo ./configure && sudo make && sudo make install。
这一步耗时约1~3分钟,编译成功后输入extundelete --version应返回0.2.4版本号。若提示command not found,说明未正确安装,需重做第二步。
卸载目标分区并执行恢复
方法一:恢复指定路径下的全部文件
先确认目标分区设备名,例如执行df .显示挂载点为/dev/sda5,则运行:sudo umount /dev/sda5。若提示“device is busy”,说明有进程正在访问该分区,此时必须重启进Live环境再试。
执行恢复命令:sudo extundelete /dev/sda5 --restore-directory /home/user/Documents。该命令会将该路径下所有已删除但inode完好的文件,恢复到当前终端所在目录下的RECOVERED_FILES子目录中。
方法二:预览可恢复文件再精准选取
先用sudo extundelete /dev/sda5 --inode 2列出根目录inode信息,找到目标文件所在目录的inode编号(如123456),再执行:sudo extundelete /dev/sda5 --restore-inode 123456。这种方式能避免恢复大量无用文件,但要求你清楚原始目录的inode位置。
【恢复出的文件默认保存在当前工作目录的RECOVERED_FILES文件夹内,切勿将其保存到原分区,否则必然覆盖残留数据】。
检查与导出恢复结果
执行完恢复命令后,终端会提示“Recovered N files”,此时输入ls -R RECOVERED_FILES查看恢复结构。若发现文件名乱码(如file.98765),说明inode中文件名信息已损坏,但内容通常完好,可用file RECOVERED_FILES/file.98765确认文件类型。
将整个RECOVERED_FILES文件夹复制到U盘或另一个硬盘分区:cp -r RECOVERED_FILES /media/user/USB_DRIVE/。完成复制后,即可安全关闭Live环境,重启回原系统。











