Linux备份恢复3-(脱机)使用linux tar+dd进行系统备份恢复
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(脱机)使用linux tar+dd进行系统备份恢复
2017年4月17日
14:39
源环境:
sda:16G安装操作系统CentOS6.5
#fdisk-l
#df-h
备份
挂载网络文件夹
mkdir/backup;mount-t nfs192.168.1.4:/u01/backup/ddtest/backup
备份分区表
fdisk-l>/backup/partition.cfg
备份LVM卷元数据,将卷信息导出到文件。
vgcfgbackup-f/backup/vg.cfg
备份mbr
dd if=/dev/sda of=/backup/mbr.bak bs=512count=1
备份/boot分区。
dd if=/dev/sda1of=/backup/sda1.bak
使用tar命令,备份上面的所有分区和数据。
chroot/mnt/sysimage
tar cvpzf os.tgz–-exclude=/boot–exclude=/proc–exclude=/sys–exclude=/dev–exclude=/mnt–exclude=/media–exclude=/os.tgz/
exit
mv/mnt/sysimage/os.tgz/backup/
目的环境
sda:16G
恢复
恢复mbr
以光盘Rescue installed system模式启动,过程中要启用网络并分配IP,Rescue最后一步选择skip不要挂载原系统
mkdir/backup;mount-t nfs192.168.1.4:/u01/backup/ddtest/backup
dd if=/backup/mbr.bak of=/dev/sda bs=512count=1
恢复完成后重启服务器
以光盘Rescue installed system模式启动,过程中要启用网络并分配IP,Rescue最后一步选择skip不要挂载原系统
此时已经识别出sda1,sda2
根据备份出来的分区表,创建分区,创建LVM(磁盘不一样大的情况下)或恢复LVM(磁盘一样大小) mkdir/backup;mount-t nfs192.168.1.4:/u01/backup/ddtest/backup
参照备份是的fdisk-l输出格式化分区,配置LVM
pvcreate/dev/sda2
vgcreate VolGroup/dev/sda2
lvcreate-L1715M-n lv_swap VolGroup
vgdisplay VolGroup|grep Free
lvcreate-l3541-n lv_root VolGroup
或
vgcfgrestore-f/backup/vg.cfg VolGroup
提示:
Couldn't find device with uuid O01Y3a-jHmn-2GxF-FzIP-EcKu-xbYJ-RvSF2T Cannot restore Volume Group VolGroup with1PVs marked as missing. Restore failed
pvcreate-u O01Y3a-jHmn-2GxF-FzIP-EcKu-xbYJ-RvSF2T--restorefile/bakcup/vg.cfg
/dev/sda2
vgcfgrestore-f/backup/vg.cfg VolGroup
lvm vgscan--mknodes--ignorelockingfailure
lvm vgchange-ay--ignorelockingfailure
ls/dev/mapper/
mkswap/dev/mapper/VolGroup-lv_swap
swapon/dev/mapper/VolGroup-lv_swap
mkfs.ext4/dev/mapper/VolGroup-lv_root
mkdir/dest_root;mount/dev/mapper/VolGroup-lv_root/dest_root tar zxvpf/backup/os.tgz–C/dest_root
mkdir/dest_root/boot
恢复/boot分区
dd if=/backup/sda1.bak of=/dev/sda1
恢复完成后重启服务器
验证:
异机恢复后网卡需要根据mac重新配置
磁盘分区和源环境保持一致(相同磁盘大小LVM恢复模式)
源环境的mysql数据也是一致
总结:
备份/boot时间短,数据/备份时间按实际数据大小不同
恢复/boot时间短,数据/恢复时间按实际数据大小不同
如果虚拟机的话,vmdk文件如果选择thin provision,只占用实际使用空间(比如磁盘10g,s数据1G,恢复后只占用1G)
折腾了一天,经验:
1.备份/数据是一定要exclude/boot
2.恢复时先恢复/数据,再dd恢复/boot所在的分区,恢复完成先挂载,进去看看/boot,/boot/grub是否有异常
目的磁盘与源磁盘分区不一致,或不使用LVM也没有问题,
需要
手动划分分区
/boot使用的sda1使用dd恢复
手动修改/etc/fstab
手动修改/etc/grub.conf,如果设置,会出现下面的错误
grub.conf例子:
此处3个例子的/boot都是单独的分区,如果和/分区在一起,grub.conf的/都要改成/boot/
未使用LVM的例子
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS(2.6.32-431.el6.x86_64)
root(hd0,0)
kernel/vmlinuz-2.6.32-431.el6.x86_64ro root=UUID=b85277ba-bbe8-46f8-a0d7-7f44c96f2bcd rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8rd_NO_MD SYSFONT=latarcyrheb-sun16crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
initrd/initramfs-2.6.32-431.el6.x86_64.img
使用LVM的例子
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS(2.6.32-431.el6.x86_64)
root(hd0,0)
kernel/vmlinuz-2.6.32-431.el6.x86_64ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=VolGroup/lv_swap SYSFONT=latarcyrheb-sun16crashkernel=auto
rd_LVM_LV=VolGroup/lv_root KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
initrd/initramfs-2.6.32-431.el6.x86_64.img
恢复后手工修改的例子(未使用LVM,未使用UUID,使用给的设备名称)
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS(2.6.32-431.el6.x86_64)
root(hd0,0)
kernel/vmlinuz-2.6.32-431.el6.x86_64ro root=/dev/sda3rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8
rd_NO_MD SYSFONT=latarcyrheb-sun16crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet initrd/initramfs-2.6.32-431.el6.x86_64.img。