Centos7 用 tar 备份恢复 (迁移)
备份
1.tar压缩打包
cd /
#tar -cvpzf backup.tar.gz --exclude=/backup.tar.gz --exclude=/proc --exclude=/sys --exclude=/mnt --exclude=/media /
tar -cvpzf backup.tar.gz --exclude=/backup.tar.gz --one-file-system /
#这里的boot单独打包。 为了以后方便修复引导。
tar -cvpzf boot.tar.gz /boot
–one-file-system - 不要在不同的文件系统上包含文件。如果您希望其他文件系统(如单独的 / boot分区 单独的 / home分区 须要单独的备份)
2.备份信息
cd /
blkid > uuid.txt
df -h > df.txt
fdisk -l > fdisk.txt
3.挂载磁盘(移动硬盘)保存压缩包
cd /
mount /dev/sdb1 /mnt
cp backup.tar.gz boot.tar.gz uuid.txt df.txt fdisk.txt /mnt
恢复
1.进入修复模式
用光盘镜像引导,选择:
Troubleshooting =>
Rescue a CentOS system =>
1 => //Continue
Please press <return> to get a shell. =>
sh-4.2#
2.挂载磁盘(移动硬盘)导出压缩包
mkdir 4444
mount /dev/sdb1 /4444
3.创建新磁盘分区并挂载
fdisk /dev/sda
#根据之前保存的 df.txt fdisk.txt 创建相同格式分区。大小可不一样。
mkfs.xfs /dev/sda1
mkfs.ext4 /dev/sda2
#格式化新分区
mkdir /0000
mount /dev/sda2 /0000
mkdir /0000/boot
mount /dev/sda1 /0000/boot
#根据df.txt挂载相同目录。0000为模拟根目录。
4.解压tar包 & 创建系统目录
cd /4444
tar -xvpzf backup.tar.gz -C /0000/. --numeric-owner
tar -xvpzf boot.tar.gz -C /0000/. --numeric-owner
cd /0000
mkdir proc sys mnt media
–numeric-owner - 此选项告诉tar恢复归档中文件的数字所有者,而不是匹配要还原的环境中的任何用户名。这是因为您要恢复的系统中的用户ID:s不一定与您用于恢复的系统匹配(例如,Live CD)。
5.修改启动UUID
cd /0000
blkid
vi etc/fstab
#根据blkid数据修改对应分区启动项UUID
# 就是 sda1 和 sda2 UUID
修复grub2引导
#切换根目录
chroot /0000
#重新安装引导
grub2-install /dev/sda
#修复引导
grub2-mkconfig -o /boot/grub2/grub.cfg
单独修复引导
必须重启电脑,重新进入修复模式
#切换根目录
chroot /mnt/sysimage/
#重新安装引导
grub2-install /dev/sda
#修复引导
grub2-mkconfig -o /boot/grub2/grub.cfg