tar备份后的数据 恢复到新硬盘

2024-07-25 02:52:04   工作备份

  tar恢复备份,新硬盘  

接上回tar备份后,原有的恢复逻辑只能恢复到原有硬盘和系统,那么如何恢复到全新的硬盘呢,其实比较麻烦的点在与boot分区的恢复,所以我亲测比较简单的恢复方式
由于服务器环境是centos7,所以我以centos7为例子

  1. 先使用同版本的centos7镜像 安装系统到新硬盘,目的很简单,是要让新硬盘拥有正常的boot分区 和 其它分区结构 尤其是lvm分区(当然你也可以用CD LIVE模式进入 然后挂载一堆 手动建立分区,那就太麻烦了)
  2. 新硬盘安装好镜像后,直接进入它的系统,我们将拥有原备份文件的U盘挂载到/mnt/下
    1. 备注:如果你的u盘是exfat没法识别的话,centos7可以如下操作:
    2. yum -y install epel-release
    3. rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
    4. //安装exfat支持库文件 然后就可以挂载了
    5. yum -y --enablerepo=nux-dextop install fuse-exfat exfat-utils
  3. 我们备份新硬盘系统的boot分区,后面我们会需要恢复它
    1. tar -cvpzf boot.tar.gz /boot
  4. 开始恢复备份的系统文件
    1. tar xvpfz centos7_back.tar.gz -C /
  5. 恢复成功后,删除现有的boot文件里的数据,可能会报busy啥的,不用管它
    1. rm -rf /boot
    2. //查看是否删除完成,要么什么都没了,要么只能个别文件夹,而且文件夹还是空的 就可以了,如果有其它的 自己再手动rm -rf 删一下
    3. ls /boot
  6. 我们将之前备份的boot分区的备份,也就是第三步的备份文件 恢复下
    1. tar xvpfz boot.tar.gz -C /
  7. 恢复boot分区后,我们需要修改/etc/fstab的磁盘uuid
    1. #查看下 boot分区的磁盘信息
    2. df -h
    3. /dev/sda1 1014M 338M 677M 34% /boot
    4. #然后执行blkid 获取uuid
    5. blkid
    6. /dev/sda1: UUID="48658b93-0f13-439c-8c98-adf3fd04c0e5" TYPE="xfs"
    7. /dev/sda2: UUID="lw35WD-qTRh-y02I-eFxk-S92D-Pb8c-YKlOZr" TYPE="LVM2_member"
    8. /dev/mapper/centos-root: UUID="29f3a4e4-dbdf-4d4f-bd1d-195812aa9e28" TYPE="xfs"
    9. /dev/mapper/centos-swap: UUID="cc9cd012-cb70-4cf2-acc9-2b6a25d117a1" TYPE="swap"
    10. /dev/mapper/centos-home: UUID="a7eb4f7e-08ae-4686-8551-87eb6b4a13ef" TYPE="xfs"
    11. #接下来手动修改,比如boot就是 /dev/sda1/ uuid是48658b93-0f13-439c-8c98-adf3fd04c0e5
    12. vim /etc/fstab
    13. #替换掉目标分区的uuid,如果其它的也有不一样的 就这样改就好了 保存
  8. 接下我们需要恢复 SELinux文件属性
    1. restorecon -Rv /
  9. 重启就好了,我自己实验到这步,就可以直接启动了,并且系统已经恢复到备份时的样子