Debian Overlay恢复方法
/var/lib/overlay2/upper、/var/lib/overlay2/work、/var/lib/overlay2/lower)及配置文件(如/etc/fstab)可访问。/etc/fstab文件定义了系统启动时的自动挂载信息,恢复前需备份当前文件,再替换为备份版本:
sudo cp /etc/fstab /etc/fstab.current_backup # 备份当前fstab sudo cp /path/to/fstab.backup /etc/fstab # 恢复备份的fstab OverlayFS的核心数据存储在upperdir(上层修改文件)、workdir(临时工作目录)、lowerdir(下层只读基础层)中,需使用rsync或cp命令递归恢复:
# 使用rsync恢复(推荐,保留文件属性) sudo rsync -a /path/to/upperdir.backup /var/lib/overlay2/upper sudo rsync -a /path/to/workdir.backup /var/lib/overlay2/work sudo rsync -a /path/to/lowerdir.backup /var/lib/overlay2/lower # 或使用cp恢复(保留权限) sudo cp -a /path/to/upperdir.backup/* /var/lib/overlay2/upper/ sudo cp -a /path/to/workdir.backup/* /var/lib/overlay2/work/ sudo cp -a /path/to/lowerdir.backup/* /var/lib/overlay2/lower/ 恢复完成后,需卸载原有挂载点并重新挂载,使配置生效:
sudo umount /mnt/overlay # 卸载原有挂载点(若已挂载) sudo mount -a # 重新挂载/etc/fstab中定义的所有文件系统(包括Overlay) mount | grep overlay,确认输出中包含正确的lowerdir、upperdir、workdir路径。/mnt/overlay),确认用户数据、应用文件是否恢复。若未提前备份,可尝试使用extundelete(针对ext3/ext4底层文件系统)恢复Overlay下层(lowerdir)的误删除数据,但无法恢复已覆盖的文件:
sudo apt install extundelete # 安装工具 sudo extundelete /dev/sdXn --restore-all # 恢复指定分区(需替换为lowerdir所在分区) 注意:恢复前需卸载lowerdir所在分区,避免新数据覆盖旧数据。
若Overlay用于Docker容器,可通过docker commit保存容器当前状态为镜像,再重新创建容器:
docker commit <容器ID> 恢复后的镜像名 docker run -it --name 恢复后容器名 恢复后的镜像名 /bin/bash /var/log/syslog或journalctl,确认恢复过程中无错误提示。