引用:http://www.alewolf.com/article/backup_for_linux.html,本文只做记录。
文档目的:对目标机器上的centos5.5系统(采用lvm管理磁盘)做备份方便以后奔溃后恢复回来
实验环境:
1块硬盘(数据原盘),一个U盘(或硬盘)
原盘:centos5.5 x86
目的磁盘:空盘
U盘:centos6.9 x64
一、备份数据
1.1 启动机器
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
选择从u盘启动系统 #vgdisplay 查看原盘vgname #vgchange -ay vgname 激活原盘vg #lsbk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 1024M 0 rom sda 8:0 0 10G 0 disk ├─sda1 8:1 0 500M 0 part /boot └─sda2 8:2 0 9.5G 0 part ├─VolGroup-lv_root (dm-0) 253:0 0 8.5G 0 lvm /
└─VolGroup-lv_swap (dm-1) 253:1 0 1G 0 lvm [SWAP]
sdb 8:16 0 8G 0 disk ├─sdb1 8:17 0 102M 0 part └─sdb2 8:18 0 7.9G 0 part ├─VolGroup00-LogVol00 (dm-2) 253:2 0 5.9G 0 lvm
└─VolGroup00-LogVol01 (dm-3) 253:3 0 2G 0 lvm
其中sdb1是原系统的boot分区,VolGroup00-LogVol00是原系统的/分区
|
1.2 备份系统
1
2
3
4
5
6
7
8
9
10
11
12
13
|
可以采用cpio或者tar备份,本文采用tar(实验中,cpio报错归档不完整) 挂载原盘 #cd /home && mkdir aa bb #mount /dev/sdb1 /home/aa 挂载/boot分区 #mount /dev/VolGroup00/LogVol00 /home/bb 挂载/分区 #tar -cvzf /home/boot.tgz -C /home/ aa --exclude=dirname 打包boot分区(不打包dirname的数据) #tar -cvzf /home/root.tgz -C /home/ bb --exclude=dirname 打包/分区 #umount /home/aa #umount /home/bb 若目标文件大于2G以上,请考虑分割压缩,如下: #tar -cvzf - / --exclude=/home --exclude=/proc --exclude=/lost+found --exclude=/tmp --exclude=/mnt --exclude=/sys |split -b 2000m - /home/root.tgz 将/目录压缩成2G一个的文件并排除某些目录 #tar -cvzf - /boot |split -b 2000m - /home/boot.tgz 压缩boot分区 |
二、目的磁盘创建lv
1
2
3
4
5
6
7
8
9
10
11
|
#fdisk /dev/sdb 将目的磁盘分成两个区,其中第一个区(boot分区)500M,其他容量分给第二个分区(root分区+swap),输入t指定第二个分区格式为8e #pvcreate /dev/sdb2 #vgcreate VolGroup00 /dev/sdb2 将pv为sdb2的创建成一个vg(VolGroup00) ps:注意此处的vgname必须和原系统的vgname严格一致,否则启动会报错!!!! #vgchange -ay VolGroup00 #lvcreate -L +5.9G -n LogVol00 VolGroup00 #lvcreate -L +1G -n LogVol01 VolGroup00 #mkfs.ext4 /dev/sdb1 #mkfs.ext4 /dev/VolGroup00/LogVol00 将目的盘的 root分区格式化成ext3 #mkswap /dev/VolGroup00/LogVol01 格式化目的磁盘的swap分区 PS:请注意,目标磁盘的vgname和lvname必须和原盘的严格一致,否则启动会报错 |
三、恢复数据到目的盘
1
2
3
4
5
6
7
8
9
10
|
#cd /home #mount /dev/sdb1 aa #mount /dev/VolGroup00/LogVol00 bb #tar -xvzf boot.tgz #tar -xvzf root.tgz 若采用的分割压缩,则解压命令如下: #cd /home/aa && cat boot.tgza*|tar -zxv #cd /home/bb && cat root.tgza*|tar -zxv 解压完成后,请手动创建上面排除的目录,并确保目录结构和原系统一致 |
四、写引导和挂载
1
2
3
4
5
6
7
8
9
10
|
#grub-install --root-directory=/home/aa --no-floppy /dev/sdb #cd /home/aa/boot #rm -rf grub && ln -s ../grub grub 改挂载文件 #vi /home/bb/etc/fstab ... /dev/sda1 /boot ext3 defaults 1 2 ... rh系列的系统,启动挂载在/etc/fstab文件 |
五、测试
1
|
重启测试是否报错,若启动报“permit denied”相关的错误,检查selinux是否已经关闭 |