You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ubuntu系统(含Nextcloud服务器)遭电源异常回滚后的照片视频恢复及预防建议咨询

Ubuntu系统(含Nextcloud服务器)遭电源异常回滚后的照片视频恢复及预防建议咨询

兄弟,这种电源浪涌搞崩服务器、还把系统弄回旧版本的情况真的太闹心了,尤其是存着给妈妈的照片视频,先别慌,咱们一步步来解决问题:

一、优先恢复照片和视频数据

首先核心目标是把数据救出来,先别忙着修复Nextcloud或者系统,避免误操作覆盖数据:

  • 先确认当前系统是不是误引导到了旧系统
    你说之前刷成了Ubuntu Server 20.04.6,现在却出现了桌面,大概率是电源故障后,系统引导到了之前没完全擦除的旧系统分区。先执行lsblk或者sudo fdisk -l命令,看看磁盘上有几个Linux分区,找到你之前装Nextcloud的那个分区(比如容量符合你当时分配的)。

  • 挂载旧系统分区查找数据

    1. 创建一个临时挂载点:sudo mkdir /mnt/old_nextcloud
    2. 把找到的旧分区挂载上去,比如假设是/dev/sdb2sudo mount /dev/sdb2 /mnt/old_nextcloud
    3. 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" \),这个命令会遍历旧分区里所有的照片视频格式文件。
  • 如果磁盘有疑似坏道,先做磁盘镜像再恢复
    要是执行命令时出现卡顿、报错,大概率磁盘有坏道,别直接读写原磁盘,先做镜像:

    1. 准备一个容量足够的外接硬盘,挂载到服务器上
    2. 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。

  • 定期备份数据,双保险

    1. 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
    2. 条件允许的话,每周把外接硬盘的备份拿到其他地方存放,避免家里发生火灾、被盗等极端情况。
  • 关闭不必要的快照自动恢复功能
    如果你之前的系统开了类似Timeshift的快照工具,一定要检查配置,避免设置成“断电后自动恢复到旧快照”,而且快照只备份系统分区,别碰数据分区。

  • 系统引导加固
    下次装系统时,彻底擦除旧系统分区,或者在GRUB引导里删除旧系统的引导项,避免误引导到旧系统。

备注:内容来源于stack exchange,提问作者xbobthebouse

火山引擎 最新活动