如何恢复由 rsync 制作的文件系统备份?

Joa*_*him 5 server backup rsync restore

使用 Virtualmin/Webmin 运行 12.04 版。

linux-image今天试图删除所有不必要的文件,因为/boot分区已满。我遵循了 Ask Ubuntu 的指南,但这导致 Grub 损坏或其他原因,可能是因为建议指南中的命令删除了超出应有的内容。

几个小时后,我终于设法安装了一个新的内核映像,并创建了一个新的 Grub,但后来我发现目录/run中的所有文件都被删除了,可能还有其他几个文件/目录,它们与该目录中的那些包相关。我不知道这是怎么发生的,但我知道当我启动到恢复模式时已经有些奇怪了,因为我找不到任何指向 symlink 的链接/etc/resolv.conf --> /run/resolvconf/resolv.conf

无论如何:我有我的文件系统的完整备份,这是今天使用rsync命令 ( sudo rsync -ahe ssh ..., options: --delete --exclude=.gvfs --exclude=/proc --exclude=/dev --exclude=/sys) 制作的。

我试图只恢复/run目录,但没有任何运气。

我的问题是:我可以用相同的rsync命令替换我服务器上的所有文件,用我的备份位置上的文件吗?(是的,我知道我必须在命令中交换“源”和“目标”)

如果可能的话,我之后还有什么应该做的吗?

小智 1

首先,我对拥有当前备份表示赞赏——您的勤奋程度已经达到了 90%。现在继续,我会这样做:

  1. 从安装 CD 启动到 Live Ubuntu 环境(或者如果使用服务器 CD,请选择“修复”选项。)
  2. 打开外壳窗口
  3. 将根驱动器挂载到/mnt,例如

    sudo mount /dev/sda1 /mnt
    
    Run Code Online (Sandbox Code Playgroud)
  4. 创建第二个安装点,/mnt2并将备份驱动器安装到该安装点。

    sudo mkdir /mnt2
    sudo mount /dev/sdb1 /mnt2
    
    Run Code Online (Sandbox Code Playgroud)
  5. 现在像这样恢复

    for DIR in bin boot etc home lib lib64 opt root run sbin usr var; do
      sudo rsync -aH --delete /mnt2/$DIR /mnt
    done
    
    Run Code Online (Sandbox Code Playgroud)

    我跳过的所有目录、、、devsysfs基本上tmp应该是空的。

  6. 恢复完成后,尝试 chroot/mnt并更新 grub。

    for DIR in dev proc sys; do
       sudo mount --bind /$DIR /mnt/$DIR
    done
    sudo chroot /mnt
    update-grub
    
    Run Code Online (Sandbox Code Playgroud)
  7. 重新开始

如果这不起作用,那么就需要重新安装并恢复您的 /home 目录和您想要的任何数据文件。