LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 627|回复: 3

【关于系统备份的问题】

[复制链接]
发表于 2009-4-24 21:28:23 | 显示全部楼层 |阅读模式
sudo su

cd /

tar cvpzf backup.tgz / --exclude=/proc 、--exclude=/lost+found--exclude=/backup.tgz --exclude=/mnt--exclude=/sys


如果你希望更高的压缩比(速度慢)
用这个替换上面最后一步的代码:

tar cvpjf backup.tar.bz2 / --exclude=/proc --exclude=/lost+found --exclude=/backup.tar.bz2 --exclude=/mnt --exclude=/sys


到你的根目录下,有一个backup.tgz ,这就是你的备份文件


恢复(慎用,会把你分区里所有文件替换成压缩文档里的文件)

sudo su

cd /

tar xvpfz backup.tgz -C /

如果你是用第2种方法备份的话,用这个替换最后一步的代码

tar xvpfj backup.tar.bz2 -C /


等它做完了
代码:

mkdir proc
mkdir lost+found
mkdir mnt
mkdir sys
重启

备份:

不像Windows,Linux不限制根用户存取任何东西,因此,你完全可以把一个分区上每一个的文件放入一个TAR文件中。

来实施这一方法,用这个成为根用户:
sudo su
接着去你的文件系统的根目录
cd /
然后,下面就是我用来备份我的系统的完整的命令:
tar cvpzf backup.tgz / --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys
接着,让我们稍微解释一下:
很明显,'tar'部分就是我们将要使用的软件。
'cvpfz'是我们给tar加的选项,像“创建一个压缩文档”(这是显然的),“保存权限”(以便使每一个相同的文件有相同的权限),以及“gzip”(缩减大小)。
接下来,是压缩文档将获得的名称,在我们的例子中是backup.tgz。
紧随其后的是我们想要备份的根目录。既然我们想备份所有东西:/
接着就是我们要剔除的目录了。我们不想备份每一样东西,因为包括有些目录不是非常有用。同时确保你没有把备份文件本身也加进去了,否则,你会得到怪异的结果的。你也许同样不打算把/mnt文件夹包括进来——如果你在那儿挂载了其他分区——否则最终你会把那些也备份的。同时确保你没有任何东西挂载在 /media(即没有挂载任何cd或可移动介质)。否则,剔除/media。

在进程的最后,你也许会得到一条信息,写着“tar:由于先前错误的耽搁而存在错误”或者其他什么,不过大多数情况下你可以仅仅忽略它。

作为选择,你可以使用Bzip来压缩你的备份。这意味着较高的压缩比但是也意味着较低的速度。如果压缩比对你很重要,只需用“j”替换命令中的“z”,同时给备份命一个相应的扩展名。这些会使命令变成这样:
tar cvpjf backup.tar.bz2 / --exclude=/proc --exclude=/lost+found --exclude=/backup.tar.bz2 --exclude=/mnt --exclude=/sys

恢复:

警告:看在上帝的份上,在这一部分请小心谨慎。如果你不理解你在这里干了什么,你可能最终毁坏了对你而言很重要的东西,所以请小心谨慎。

那么,我们将紧接着上一章的例子:在分区的根目录下的backup.tgz文件
再一次确保你是根用户以及备份文件在文件系统的根目录。

Linux美妙的地方之一就是这一项工作甚至可以在一个正在运行的系统上进行;没必要被引导cd或者任何东西搞得晕头转向。当然,如果你使你的系统无法被引导了。你也许别无选择,只能使用一张live-cd了,但是结果是一样的。你甚至可以在Linux系统正在运行的时候,移除它里面所有文件。可是我不告诉你那个命令!

这是我要用的命令:
tar xvpfz backup.tgz -C /

如果你使用 bz2:
tar xvpfj backup.tar.bz2 -C /

警告:这会把你分区里所有文件替换成压缩文档里的文件!

确保在你做其他任何事情之前,重新创建你剔除的目录:
mkdir proc
mkdir lost+found
mkdir mnt
mkdir sys

/proc 权限:文件所有者:root群组:root 所有者:读取 执行 群组:读取 执行 其它:读取 执行
/lost+found 权限:文件所有者:root群组:root 所有者:读取 写入 执行 群组:读取 执行 其它:读取 执行
/mnt 权限:文件所有者:root群组:root 所有者:读取 写入 执行 群组:读取 执行 其它:读取 执行
/sys 权限:文件所有者:root群组:root 所有者:读取 写入 执行 群组:读取 执行 其它:读取 执行
当你重启以后,所以的事情都会和你备份的时候一模一样

-------------------------------------------

上面的方法是我从这里转载的。网址:
http://hi.baidu.com/oaini_1314/b ... bf8f05738da5b5.html

我不清楚一个问题,如果备份的文件 backup.tar 文件刻录到光盘上。或者存放在usb 闪存或者 移动硬盘上。那么我们如何在系统不能引导,或者被人误删或者特意删除后恢复它呢。

用光盘引导(livecd)连上,移动硬盘(存有备份系统 文件)现在的根目录不是指向的是 livecd 上的吗? 如果恢复那恢复到那里了。

或者在 livecd 上看到的是这样的

/ (Livecd)
/mnt/?? (不知道什么名字,不过应该有以前的坏掉的 ubuntu 系统 根目录)
/mnt/usbhda (移动硬盘)

是不是把、 /mnt/usbhda/backup.tar 恢复到 /mnt/?? 里呢。命令有什么要注意的吗?
 楼主| 发表于 2009-4-24 21:36:45 | 显示全部楼层
将username替换成您的用户名
备份系统
su -s -H
cd /home/username/Desktop
tar cvpzf backup.tgz --exclude=/proc
--exclude=/home/username/Desktop--exclude=/lost+found
--exclude=/backup.tgz --exclude=/mnt --exclude=/sys /
解释一下,exclude就是排除。这个tar命令将系统重要文档备份并放到Desktop下面。
还原系统,使用live cd进入电脑,然后执行:
tar  backup.tgz -C /home/username/Desktop

----------------------------

另一种方法,只备份用户目录,可是这样的话,用户安装的软件就可能不能备份全面。

还有如果用 ghost 备份的话,备份文件存在硬盘上的话, ghost 对 ext3 文件系统 支持吗?
特别是目录结构 如“\” 符号。
读写正常吗?有朋友测试过吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-24 21:40:59 | 显示全部楼层
ghost版ubuntu 8.04.1
这个酷

下载地址:
http://www.pkghost.cn/soft/sort068/down-3697.html

md5sum: a5fede1c80af77029e625c292b2aa18e
在256兆的机器上虽然可以跑起来,但不是很愉快的体验。建议512以上内存。

在 xp 下安装:以下步骤没有先后顺序。
1。 用 GHOST11 把映像恢复到任意分区(当然除了 c盘和windows目录所在的盘)。不必预先格式化为ext3,把这个分区里该备份的东西备份好,直接ghost,它会变成ext3。建议10G以上的分区。更早版本的 ghost 我没有试过,反正要支持 ext3 格式的版本, dos 下或者 windows 里做都可以。
2。 下载 http://ftp.ubuntu.org.cn/home/billbear/grldr ,放在 c 盘 根目录。
3。 在xp的boot.ini里加上一行
c:\grldr=ubuntu
就ok了。系统已经可以用了。
注意 boot.ini 里的 timeout 不能为0

据说 vista 虽然用 bcd,但其实也会读老式 boot.ini,所以 vista 下也可以自行建立一个 boot.ini,
[boot loader]
timeout=30
[operating systems]
c:\grldr=ubuntu
就可以了。我没有试过,同学们可以试一下。

重启进入 ubuntu ,预设的用户名是 user,密码是 password 。 请自行修改。
已安装的东西:
最新更新
中文环境
build-essential
rar
gparted
gnome-device-manager
compizconfig-settings-manager
adobe flash player
swapspace (一个根据需要自动生成 swap file 的玩意,我这没有设swap 分区,全靠它来适应不同环境对 swap的要求。大内存的机器上可能永远也不会生出swap file来。应该不能休眠,需要休眠的自己加 swap partition)

然后源改成台湾的了,其它没有修改什么了,就是原始面目,不做美化。compizconfig-settings-manager 已经装了,如果显卡支持,在 系统-首选项-外观-视觉效果 里开启 3d,再做进一步的设定就可以了。

另外,ghost 做出来的 uuid 不变,你们的 uuid 全都和我一样,这本也无妨,但是也许大家愿意改一下。
先用uuidgen产生一个合法的uuid
然后,
tune2fs /dev/sd?? -U 上面生成的uuid
sd??填你自己的根分区
之后修改 menu.lst 和 fstab 里相应的uuid。
尤其是如果你在内置硬盘和移动硬盘都用同样的ghost文件安装了系统,必须改掉,否则两个 uuid 一样就乱了。
==========================================================
前面是从 boot.ini 启动的方式。下面讲一下从 grub 启动的方式
由于从 boot.ini 启动是调用 grub4dos,如果你的机器上原来有应用 grub4dos的场合,比如某些一键恢复软件、 grub4dos 加载的 winpe 启动项、软改激活的盗版 vista、甚至 wubi 安装的 ubuntu等,就可能产生冲突,grub4dos 会去找原来的 menu.lst。又或者你的机器里根本没有 windows,这时候就不能以 ntldr 为启动器,需要从 gnu grub 来启动。
这需要满足3个条件
1. 你要把 ghost 映像恢复到一个 主分区 里。原来没有多余的主分区的,想办法做一个。你可能需要第三方软件。
2. 你的 mbr 是 windows 格式的。原来只有 windows 的,这个条件自然满足。否则,有很多方法可以完成这个工作,比如 dos 启动执行 fdisk /mbr ; xp 光盘启动执行 fixmbr;xp 下执行 mbrfix ( http: //www.sysint.no/nedlasting/mbrfix.htm ); linux 下使用 sudo ms-sys -m /dev /sdx ( http://ms-sys.sourceforge.net/ )
3. 把那个 linux 主分区 设为活动分区。xp 下在图形界面不能设置非 ntfs/fat 的主分区为活动,你需要在命令行使用diskpart,或者使用第三方软件。

假如linux分区是第三主分区(多数情况是的,第一主分区是 "c盘",第二主分区是扩展分区包含所有逻辑分区,第三主分区在磁盘末尾留给linux,这是理想情况)这样就可以从grub 启动引导了,否则:
先不重启,在 ntfs/fat 分区里寻找到所有叫 menu.lst 的文件,暂时改名。回头再改回来。
重启。会进入 grub 命令行。
输入
find /boot/grub/menu.lst
会告诉你一个 (hdx,y),这是linux 分区所在。如果你已经知道了答案,完全可以不要再问他一遍。
然后
root (hdx,y)
setup (hdx,y)
重启。这样就从 grub 来引导了。我已经在 grub 的菜单里加入了 xp 的启动项,我假定C盘是第一主分区,不是的自己修改 /boot/grub/menu.lst
注:也可以下载 http://ftp.ubuntu.org.cn/home/billbear/ 下面的 lxldr,来代替 grldr。 lxldr 是一个修改过的 grldr,不会怕硬盘里其他分区的 menu.lst混淆了。这样还可以继续从 boot.ini 引导,boot.ini 改成 c:\lxldr=ubuntu 就可以了。参见第二页与muzuiget 和 ptptptptptpt的讨论
===========================================
安装到移动硬盘
恢复到移动硬盘某个 主分区 ,并设置为活动主分区。(最好是第三主分区,省得再改 grub。我的镜像是按照第三主分区做的)
然后想办法在移动硬盘里写入 windows 式的 mbr。 fdisk /mbr 和 fixmbr是对内置硬盘操作的,我们可以用 mbrfix 或 ms-sys,某些分区软件好像也可以做。某些移动硬盘买来的时候已经做好了。
然后,不是第三主分区的,照前面说的方法重设一下 grub
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-24 21:44:09 | 显示全部楼层
系统 恢复完成,下一步就要恢复引导了。如下也许可以,我没有进行测试。

恢复Ubuntu系统下GRUB引导的最简单办法
发布时间:2008.02.25 06:32     来源:赛迪网    作者:sixth

必备工具:有光驱的电脑,ubuntu光盘(liveCD)一张。

方法:

1.从光盘启动电脑,出现菜单后先按F2选择中文语言,再进入第一项。

2.进入live界面后,点application-->附件-->终端。

3.输入sudo -so,以root用户操作。

4.输入grub,进入gru配置界面。

5.输入root (hdx,y) ####注意!这里的(hdx,y)是你的Ubuntu的安装位置!如果你不知道的话,输入find /boot/grub/stage1 可以显示出来。

6.输入setup (hd0),将grub写入硬盘。

7.输入quit,退出,重启,GRUB菜单又会出现了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表