# 检查文件系统错误
sudo fsck /dev/sdXN # X为磁盘字母,N为分区号
# 强制检查并修复
sudo fsck -y /dev/sdXN
# 对于已挂载的文件系统(危险操作,可能导致数据丢失)
sudo umount /dev/sdXN
sudo fsck -y /dev/sdXN
# 安装extundelete(适用于ext文件系统)
sudo apt-get install extundelete # Debian/Ubuntu
sudo yum install extundelete # RHEL/CentOS
# 恢复文件
sudo extundelete /dev/sdXN --restore-file /path/to/file
sudo extundelete /dev/sdXN --restore-all # 恢复所有可恢复文件
# 使用testdisk(更通用的工具)
sudo apt-get install testdisk
sudo testdisk
# 使用ddrescue从损坏磁盘复制数据
sudo apt-get install gddrescue
sudo ddrescue /dev/sdXN /path/to/output.img /path/to/logfile.log
# 查看文件系统日志
sudo dumpe2fs /dev/sdXN | grep 'Journal'
# 从日志恢复
sudo e2fsck -fy /dev/sdXN
# 使用rsync备份
rsync -avz --delete /source/directory /backup/location
# 使用tar创建完整备份
sudo tar -cvpzf backup.tar.gz --exclude=/backup.tar.gz --one-file-system /
bash
sudo smartctl -a /dev/sdX # 查看磁盘SMART状态
sudo badblocks -v /dev/sdXN > bad-blocks.txt # 检查坏道
bash
# 修改/etc/fstab,添加或修改挂载选项
/dev/sdXN /mountpoint ext4 defaults,auto_da_alloc,errors=remount-ro 0 2
使用debugfs:直接访问文件系统底层结构
sudo debugfs /dev/sdXN
debugfs: lsdel # 列出已删除文件
debugfs: dump <inode> /recovery/path # 恢复指定inode文件
专业数据恢复服务:当软件方法无效时考虑
/var/log/messages
, dmesg
)以发现早期问题通过以上方法和工具,大多数Linux文件系统问题都可以得到有效解决。预防胜于治疗,建立完善的备份和监控机制是保障数据安全的最佳实践。