最近要做linux系统的快速克隆与虚拟服务器部署,翻了很多论坛的教程,均卡在了最后一步恢复系统引导上,最后将几篇帖子里提到的内容串到一起捋了一遍才找到具体的实现方法
tar cvpzf backup.tgz / --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys --warning=no-file-changed
命令及选项解释
“tar”是备份系统所使用的程序。
“cvpfz”是tar的选项,意思是“创建档案文件”、“保持权限”(保留所有东西原来的权限)、“使用gzip来减小文件尺寸”。
“backup.gz”是将要得到的档案文件的文件名。
最后的“/” 是我们要备份的目录,即整个文件系统。
“–exclude”选项指定了备份时必须排除在外的目录。
有些目录是无用的,例如“/proc”、“/lost+ found”、“/sys”。当然,“backup.gz”这个档案文件本身必须排除在外,否则你可能会得到一些超出常理的结果。如果不把“/mnt”排 除在外,那么挂载在“/mnt”上的其它分区也会被备份。另外需要确认一下“/media”上没有挂载任何东西(例如光盘、移动硬盘),如果有挂载东西, 必须把“/media”也排除在外。
备份完成后,在文件系统的根目录将生成一个名为“backup.tgz”的文件。
备份时可能出现tar:/:file changed as we read it ,一般情况下不用处理,可在备份命令后加上“--warning=no-file-changed”来忽略备份时的错误信息,或者重新执行一遍备份命令(重新执行前记得删除之前已备份的系统压缩包)
使用xftp或其他文件传输工具将上方步骤备份的backup.tgz复制到目标服务器的 / 目录下(此处必须为/目录)
tar -cvpzf boot.tar.gz /boot
tar xvpfz backup.tgz -C /
rm -rf /boot
可能会出现“资源正在访问,无法删除”,忽略此提示信息
查看删除情况
ls /boot
剩余内容为文件夹,此文件夹下所有的单文件均已被删除,如未成功删除可手动执行rm -rf 文件名进行删除
tar xvpfz boot.tar.gz -C /
查看磁盘和分区信息
lsblk
编辑fstab文件
vi /etc/fstab
将/、/boot、/boot/efi、/home、swap挂载的磁盘信息修改为和上方磁盘名称一致,如上方无此分区信息,可在fstab文件中删除对应列
重新挂载磁盘信息
mount -a /etc/fstab
查看网卡名称
ip addr
查看网卡文件
cd /etc/sysconfig/network-scripts/
ls
删除多余的网卡文件
# 此处删除的网卡文件为恢复时所备份系统的网卡文件
rm -rf ifcfg-enp3s0
修改/新增网卡配置文件
以下内容为静态ip配置,IPADDR、GATEWAY、DNS1以项目地址实际为准
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.52
GATEWAY=192.168.1.3
DNS1=192.168.1.210
ZONE=public
重启网络服务
service network restart
查看正在运行中的服务
systemctl | grep running
检查如下服务是否在正在运行的服务列表中
不同的项目需要启动不同的服务,请依实际项目为准
mysqld.service # mysql服务
nginx.service # Nginx服务
php-fpm.service # php-fpm服务
redis-server.service # Redis服务
swp-service-stay-active.sevice # 上述服务的保活服务
上述服务如有未在上图列表中的,执行下方命令重启服务
下方重启服务命令为上述服务的保活程序,可参照我另一篇博客:Linux系统服务保活
systemctl restart swp-service-stay-active.sevice
重启系统
reboot
如重启后未成功进入到登录页面,提示未找到磁盘/未找到系统(替换boot目录步骤失败),请重新安装系统并重新执行上述步骤
登录后查看ip地址
ip addr
通过网页访问上方命令获取到的ip地址,查看是否成功显示系统页面,如未成功显示请检查上述服务是否启动成功
参考链接:
转载并整理 - Linux系统备份及还原-tar
使用 tar 命令备份与还原 Linux 系统
Centos7 用 tar 备份恢复 (迁移)
UEFI引导linux启动过程的顺序,及修改办法