大家好,发个贴记录下自己折腾的过程,望多多指教。
操作系统:ubuntu10.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 .
这样做之后,依然会包括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
恢复好之后,别急着重启,由于是不同硬盘
所以我们必须修改启动相关的配置
执行
代码: 全选
gedit /media/<对应uuid号>/boot/grub/grub.cfg
这个东西是你的硬盘设备的uuid每个硬盘都不一样
然后查看你当前硬盘的uuid并将其替换到grub.cfg里面的uuid
查看方式是:
代码: 全选
sudo blkid /dev/sdax
第四步
上一步完成之后,重启就可以启动了,但是启动之后出现
"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 .
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
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(登陆窗口)
按照提示一步一步找到这个解决方案的,