Ubuntu系统(含Nextcloud服务器)遭电源异常回滚后的照片视频恢复及预防建议咨询
兄弟,这种电源浪涌搞崩服务器、还把系统弄回旧版本的情况真的太闹心了,尤其是存着给妈妈的照片视频,先别慌,咱们一步步来解决问题:
一、优先恢复照片和视频数据
首先核心目标是把数据救出来,先别忙着修复Nextcloud或者系统,避免误操作覆盖数据:
先确认当前系统是不是误引导到了旧系统
你说之前刷成了Ubuntu Server 20.04.6,现在却出现了桌面,大概率是电源故障后,系统引导到了之前没完全擦除的旧系统分区。先执行lsblk或者sudo fdisk -l命令,看看磁盘上有几个Linux分区,找到你之前装Nextcloud的那个分区(比如容量符合你当时分配的)。挂载旧系统分区查找数据
- 创建一个临时挂载点:
sudo mkdir /mnt/old_nextcloud - 把找到的旧分区挂载上去,比如假设是
/dev/sdb2:sudo mount /dev/sdb2 /mnt/old_nextcloud - Nextcloud的默认数据目录是
/var/www/html/nextcloud/data/[你的用户名]/files/,直接去这个路径下找照片和视频;如果之前你改过数据存储路径,就回忆一下当时的设置,或者用搜索命令找媒体文件:sudo find /mnt/old_nextcloud -type f \( -name "*.jpg" -o -name "*.png" -o -name "*.mp4" -o -name "*.mov" \),这个命令会遍历旧分区里所有的照片视频格式文件。
- 创建一个临时挂载点:
如果磁盘有疑似坏道,先做磁盘镜像再恢复
要是执行命令时出现卡顿、报错,大概率磁盘有坏道,别直接读写原磁盘,先做镜像:- 准备一个容量足够的外接硬盘,挂载到服务器上
- 用
ddrescue做镜像(先安装:sudo apt install gddrescue):sudo ddrescue /dev/sdX /mnt/external_drive/ubuntu_disk.img /mnt/external_drive/rescue_log.log
这里的/dev/sdX是你的服务器磁盘(不是分区),做完镜像后,再从镜像里挂载并提取数据,避免进一步损坏原磁盘。
二、避免再次出现此类问题的预防建议
这次的问题核心是电源异常+系统与数据没有隔离,给你几个实用的方案:
必须上UPS(不间断电源)
这是最基础的防护,选一个能给服务器供电5-10分钟的UPS就行,突然断电时UPS能维持供电,让系统自动执行关机脚本,彻底避免浪涌和硬断电对磁盘、系统的损坏。系统分区与数据分区彻底分离
下次重装系统时,单独划分一个大的分区专门存Nextcloud数据,系统分区只留30-50G。这样哪怕系统崩了、被回滚,数据分区里的照片视频完全不受影响,重装系统后直接挂载数据分区就能恢复Nextcloud。定期备份数据,双保险
- 用
rsync做本地定时备份:写一个脚本,定期把Nextcloud数据同步到外接硬盘,比如:rsync -avz --delete /var/www/html/nextcloud/data/ /mnt/backup_drive/nextcloud_backup/
然后用crontab -e添加定时任务,比如每天凌晨2点执行:0 2 * * * /path/to/your/backup_script.sh - 条件允许的话,每周把外接硬盘的备份拿到其他地方存放,避免家里发生火灾、被盗等极端情况。
- 用
关闭不必要的快照自动恢复功能
如果你之前的系统开了类似Timeshift的快照工具,一定要检查配置,避免设置成“断电后自动恢复到旧快照”,而且快照只备份系统分区,别碰数据分区。系统引导加固
下次装系统时,彻底擦除旧系统分区,或者在GRUB引导里删除旧系统的引导项,避免误引导到旧系统。
备注:内容来源于stack exchange,提问作者xbobthebouse




