感谢支持
我们一直在努力

使用tar备份还原Ubuntu的全过程

操作系统:Ubuntu 10.04
硬件环境:跑在Windows xp下的虚拟机VMware Workstation 7.1.6

折腾原因:我一直在虚拟机下跑ubuntu,虚拟机下备份还原系统灰常简单,对于vmware只要使用快照即可备份还原了,之前也一直这样做,快照了5、6次,但是呢,手贱将这些快照文件手动删除掉了,原来一直觉得vmware的快照功能很神奇,一个快照文件才100MB..然后就能完整的恢复所有东西..现在发现不是,我的ubuntu虚拟机占用空间变得异常的大(接近80G),而实际ubuntu里面所有东西占用的空间不到其一半,所以就产生了备份系统然后还原的想法….

备份还原思路:tar备份整个系统(除去一些不必要的东西),然后再新建一个虚拟机安装同样的系统,使用同样的分区方案,安装完毕后把备份的系统复制到新的系统上,然后进入live cd    rm -rf掉除了备份文件及一些没必要删除文件之外的所有东西,然后tar恢复。

第一步备份:
在/目录下执行下面代码:

代码:
sudo tar -cvpjf /main_backup.tar.bz2 –directory=/ –exclude=opt/ti-ezsdk_dm816x-evm_5_03_01_15 –exclude=opt/DVRRDK_02.00.00.23 –exclude=opt/ti –exclude=home/tracyone/MPC_PROJ –exclude=root/DVS_PROJ –exclude=root/workspace_v5_2 –exclude=mnt –exclude=proc –exclude=lost+found –exclude=sys –exclude=media –exclude=dev –exclude=tmp –exclude=main_backup.tar.bz2 .

好吧网上某些人,只转发,不验证的,在网上找tar备份相关的东西,发现前篇一律,而且都是”–exclude=/mnt”这样的形式,我实践证明这样做之后,依然会包括mnt文件夹,正确的做法是”–exclude=mnt”;由于我是还原到另外一台电脑上(另外一个虚拟机,另外虚拟硬盘),所以dev文件夹也是不能包括的。

第二步安装新的虚拟机
必须保证同样的系统同样分区,我没试过不同分区下是否可以恢复成功,我猜应该不行,两个虚拟机都是一个/加一个swap两个分区.

第三步恢复:
安装好新的虚拟机之后,进入其livecd(设置cdrom启动并且指定ubuntu系统的iso文件即可进入)
进入live cd之后,打开文件浏览器你会在左侧看到xxG文件系统,点击一下就会自动挂载到/media文件夹了

代码:
sudo -s 
cd /media/<对应的uuid号>
rm -rf root home usr lib etc………
sudo tar -xvjpf main_backup.tar.bz2 -C /mnt

注意删除的时候,不要删除上面备份系统时排除的一些文件夹,比如说dev mnt media sys这些文件夹

恢复好之后,别急着重启,由于是不同硬盘
所以我们必须修改启动相关的配置
执行

代码:
gedit /media/<对应uuid号>/boot/grub/grub.cfg

找到里面类似这样的”22efe8c5-af5e-4744-b7e4-9901a29a679c”的字符串
这个东西是你的硬盘设备的uuid每个硬盘都不一样
然后查看你当前硬盘的uuid并将其替换到grub.cfg里面的uuid
查看方式是:

代码:
sudo blkid /dev/sdax

x是多少取决以你的boot文件所在分区是出于那个分区,我的/和/boot是同一个分区内,所以..

第四步
上一步完成之后,重启就可以启动了,但是启动之后出现
“Could not update ICEauthority file /var/lib/gdm/.ICEauthority”
的错误并导致无法输入用户和密码登录
此时你应该
按Ctrl+Alt+shift+F1(这是虚拟机按法,不是虚拟机就按Ctrl+Alt+F1就行了)
进入字符界面,输入用户和密码(你备份系统的用户和密码)
然后执行下面三个命令

代码:
sudo chown gdm.gdm -R /var/lib/gdm
sudo chmod 600 /var/lib/gdm/.ICEauthority
sudo service gdm restart

 

至此,完毕,可以正常登录
经测试,恢复的系统绝大大部分软件功能正常…

出现的问题:
Ubuntu-tweak的守护进程无法正常启动,我删除重新安装也是如此..我不知道咋搞..
在menu菜单里面的关机菜单不见了,只有注销菜单..

2013年8月29号增加
不好意思上面压缩的命令其实是错的…….如果用上面的代码压缩的话会造成忽略掉当前目录及其子目录下同名的文件夹…比如说/sys,/usr/include/sys这两个会被同时忽略掉,所以正确的做法是:
在每个路径前加”./”

代码:
sudo tar -cvpjf /main_backup.tar.bz2 –directory=/ –exclude=./opt/ti-ezsdk_dm816x-evm_5_03_01_15 –exclude=./opt/DVRRDK_02.00.00.23 –exclude=./opt/ti –exclude=./home/tracyone/MPC_PROJ –exclude=./root/DVS_PROJ –exclude=./root/workspace_v5_2 –exclude=./mnt –exclude=./lost+found –exclude=./sys –exclude=./media –exclude=./tmp –exclude=./main_backup.tar.bz2 .

 

还有上面的恢复方法是非常笨的,没有效率的,我们只需要新建虚拟机,而不需要在装一个新系统然后再去删掉……..,关于uuid的做法也是非常笨的…请看新的做法:

1,新建虚拟机

2,从光驱启动,光驱里放入ubuntu的镜像

3,启动后选择Try ubuntu,从而进入live CD

4,使用命令行或者Gparted对虚拟机硬盘进行分区:我的情况是38GB做主分区ext4,2GB扩展,这2GB扩展在全部作为SWAP,所以最终产生/dev/sda1和/dev/sda5这两个块设备,然后执行下面的命令:

代码:
tune2fs -U 22efe8c5-af5e-4744-b7e4-9901a29a679c /dev/sda1
mkswap -U 4b433d7b-846f-4307-93f8-26ab041e8d67 /dev/sda5

上面改变两个分区的uuid为原来我们备份时硬盘的uuid,tune2fs命令可以改变ext2、ext3/ext4的,而swap分区只能用这个mkswap了

5,恢复到/dev/sda1

代码:
mount /dev/sda1 /mnt
sudo tar -xvjpf main_backup.tar.bz2 -C /mnt
cd /mnt
mkdir sys mnt media tmp
mkdir mnt/hgfs
chmod 1777 tmp
grub-install –root-directory=/mnt /dev/sda

上面第一条命令是挂载..然后恢复,然后建立我们刚才省略的一些系统文件夹
最关键一点是安装bootloader,我这是ubuntu10.04,命令选项可能不一致,自行搜索
总之,没有安装bootloader是启动不了的。

这样之后就能启动了,但是启动之后还是会出现
“Could not update ICEauthority file /var/lib/gdm/.ICEauthority”
按照上面之前提到的做法去做就是了.

最后,前面提到的,ubuntu-tweak的守护进程无法正常启动等问题,
这个问题可以归纳为:无法解锁,需要解锁的东西不正常,像软件中心等..
现在我解决,解决方法是重新安装一个小组件dbus(几百kb)
有人介绍下这个东东有什么作用么,我是在终端运行gdmsetup(登陆窗口)
按照提示一步一步找到这个解决方案的,

更多Ubuntu相关信息见Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2

赞(0) 打赏
转载请注明出处:服务器评测 » 使用tar备份还原Ubuntu的全过程
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏