You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu Server 18.04.05 LTS通过tar备份恢复后只读文件系统问题求助

解决tar备份恢复后Ubuntu Server只读文件系统及服务异常问题

嘿,我来帮你排查这个问题!先理清楚你的场景:你用tar+pigz备份了Ubuntu 18.04.05的VPS,恢复到FreeNAS上的同版本虚拟机后,系统启动就报一堆只读文件系统错误,Graylog和Nagios跑不起来,但SSH端口、主机名这些配置又能生效。咱们一步步来解决:

问题到底出在哪?

你遇到的核心问题是文件系统只读,背后的原因主要有两个:

  1. 备份命令犯了致命错误:你把/usr和/sbin这两个系统核心目录给排除了!/usr里装着几乎所有系统工具、库文件,/sbin是管理员必备的系统命令,缺了它们,系统启动时连正常挂载读写模式的工具都找不到,只能被迫进入只读保护。
  2. 恢复后的权限/挂载配置异常:就算修复了备份,部分系统目录(比如/var/log、/var/lib)的权限可能在恢复后乱掉,或者/etc/fstab配置有问题,导致启动时磁盘检测失败,触发只读模式。

分步解决指南

第一步:先把系统从只读模式救出来

重启后先执行这条命令,临时把根文件系统切回读写模式,这样才能修改配置:

sudo mount -o remount,rw /

如果这条命令报错,先检查/etc/fstab里的根分区UUID或者设备路径是不是正确,确保挂载参数里有rw。

第二步:重新生成正确的备份文件

你之前的备份命令完全不能用,必须重新从源服务器生成备份,绝对不能排除/usr和/sbin!用这条命令:

sudo tar -c --use-compress-program=pigz -f correct_backup.tar.gz \
  --exclude=/correct_backup.tar.gz \
  --exclude=/dev --exclude=/proc --exclude=/sys \
  --exclude=/tmp --exclude=/run --exclude=/mnt --exclude=/media \
  --exclude=/lost+found \
  --exclude=/home/*/.cache --exclude=/home/*/.gvfs --exclude=/home/*/.local/share/Trash \
  --exclude=/var/log --exclude=/var/cache/apt/archives \
  --exclude=/usr/src/linux-headers* \
  --one-file-system /

这里只排除了临时文件、缓存、日志这些非必要内容,核心系统目录全部保留,而且--one-file-system保证只备份根分区的内容,不会误备份其他挂载点。

第三步:重新恢复备份到目标虚拟机

  1. 先把目标虚拟机的系统重置成全新安装的Ubuntu 18.04.05,确保基础系统能正常启动
  2. 把新生成的correct_backup.tar.gz传到目标机,然后执行恢复:
# 先停掉可能冲突的服务(如果系统已经启动)
sudo systemctl stop graylog-server nagios3
# 解压备份,保留原始权限和用户ID
sudo tar -xvpzf correct_backup.tar.gz -C / --numeric-owner

第四步:修复恢复后的系统配置

  1. 检查并修复磁盘挂载配置:
    打开/etc/fstab,确保根分区的配置类似这样(UUID换成你自己的):
    UUID=abc123-def456 / ext4 errors=remount-ro 0 1
    
    然后执行磁盘检测,避免启动时出错:
    sudo fsck -y /dev/[你的根分区设备名,比如sda1]
    
  2. 修复系统目录权限:
    恢复后部分目录权限可能异常,手动修正:
    # 修复/var/log及子目录权限
    sudo chmod 755 /var/log
    sudo chown root:adm /var/log/landscape
    # 修复update-notifier相关目录权限
    sudo chmod 755 /var/lib/update-notifier
    sudo chown root:root /var/lib/update-notifier
    
  3. 重建系统依赖缓存:
    sudo ldconfig
    sudo update-initramfs -u
    

第五步:验证服务与系统状态

重启系统后,检查服务是否正常启动:

sudo systemctl status graylog-server nagios3

如果还是启动失败,查看具体日志找问题:

# 查看Graylog日志
sudo tail -f /var/log/graylog-server/server.log
# 查看Nagios日志
sudo tail -f /var/log/nagios3/nagios.log

日志里会告诉你是配置文件路径不对、权限不足还是依赖缺失,针对性修复就行。

额外提醒

  • FreeNAS虚拟机存储:确保虚拟机用的是raw格式磁盘或者支持读写的块设备,避免存储层面的只读限制
  • 备份前的准备:下次备份前最好先停掉Graylog、Nagios这些服务,避免备份时文件处于不一致状态
  • 备份工具替代:如果全量备份太麻烦,可以试试rsync做增量备份,或者用timeshift这种专门的系统备份工具,比手动写tar命令靠谱多了

内容的提问来源于stack exchange,提问作者cinemafunk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 07:42:25