适用场景
Linux系统备份与恢复使用dd命令将整块磁盘拷贝与恢复就可以快速的启动操作系统。但有个问题是:如果之前的磁盘有逻辑坏道怎么办?这样一来,dd恢复后的操作系统也大几率存在逻辑坏道的问题。
基于此,本文章详细介绍如何使用tar来备份与还原系统。
准备环境
boot分区为独立分区
这里备份恢复的系统所使用的boot分区,均为独立分区,大小200M
对应linux发行版的livecd
这里是Gentoo系统,故这里下载 install-amd64-minimal-20170302.iso
移动硬盘
tar压缩后,将压缩文件放到移动硬盘中
备份linux系统
1. 启动livecd系统
2. 查看硬盘分区情况,确定要备份的分区,这里是sda1
1 | fdisk -l /dev/sda |
3. 挂载sda1和boot分区
1 | mkdir /mnt/sda3 /mnt/boot |
1 | mkdir /mnt/sdc |
4. 打包备份
1 | cd /mnt/sda3 |
cvpfz 意思是“创建档案文件”、保留所有东西原来的权限以及使用gzip来减小文件尺寸。
打包后放到移动硬盘的/mnt/sdc1目录, 使用du命令来查看大小。
5. 卸载掉移动硬盘挂载
1 | umount /mnt/sdc |
linux系统还原
现在就可以拿着移动硬盘的tgz压缩的系统,去还原到其他机器了
1. 启动livecd
2. 给新服务器分区并格式化
1 | 这里使用fdisk给系统分区,注:第一个分区应预留2048k的空间 |
1 | 格式化分区 |
3. 挂载分区
1 | mkdir -p /mnt/sda1 /mnt/sda3 /mnt/sdbc |
4.解压tar包
1 | tar xvpfz /mnt/sdc/backup.tgz -C /mnt/sda3 #解压备份文件到根分区 |
5.重新挂载boot分区,安装grub到mbr
1 | cd /mnt/sda3/boot/ #查看此目录是否有文件,有的话临时移走 |
1 | chroot /dev/sda3 #chroot到根分区 |
注意
1 | 如果系统版本较老,可能使用的是grub-install,而非grub2-install,故需要使用如下方法安装引导 |
1 | chroot /dev/sda3 #chroot到根分区 |
6. 修改fatab和grub
修改fatab
1 | 将/etc/fstab文件,更正现有挂载信息 |
确认/boot/grub/grub.conf文件是否正确
1 | cat /boot/grub/grub.conf |
7.重启机器确认系统能正确引导
8. 修复网络
系统还原后,进入系统,发现网卡不能启动,原因是 /etc/udev/rules.d/70-persistent-net.rules文件在捣鬼,mv成其他名字,重启系统后,系统会自动生成此文件,这时候网卡就可以正常启动了。
如果还不能解决问题,需要检测下网卡模块是否已经加载:
lsmod |grep e1000
参考:Gentoo Linux
- 本文作者: GaryWu
- 本文链接: https://garywu520.github.io/2019/04/10/linux通用系统备份与恢复/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!