用CloneZilla制作紧急恢复分区
关于一键恢复,网上有很多讨论,也有很多成品,不过大多数都是基于Ghost实现的,而Ghost是个商业软件,喜欢用开源的人可能比较难于接受吧。此外,这种一键恢复虽然很容易使用,但可定制性也比较差。所以我考虑使用CloneZilla 来制作一个紧急恢复分区,用来备份/还原系统。
为什么用CloneZilla呢?理由如下:
- 它是开源软件。
- 备份形式灵活,可以选择备份分区或整个硬盘,可以选择备份到本地硬盘,也可以备份到网络。
- 自带的Linux系统可以用作系统维护。
CloneZilla的使用方法就不多说了,自带的中文文档中有极其详尽的截图说明。另外,制作紧急恢复分区,只有CloneZilla是不够的,还得要grub4dos的帮助。
我的操作系统是Windows XP,硬盘分区默认都是NTFS。下面开始动手吧。
准备分区
我的C盘容量是40G,常驻的文件大约有10~20G左右,长时间使用之后可能会增长到30G。考虑到备份后的镜像能被压缩到50%左右,所以一次备份大约需要5~10G的硬盘。所以我留出30G的空间用作备份。
首先整理磁盘碎片,然后用Partition Magic等工具在硬盘末尾划分出一个30G的空间。最好是用主分区(原因是,Linux和grub对主分区的编号方式要比逻辑盘简单些),然后将其格式化成FAT32,并分配一个驱动器符号(假设为J:)。这就是以后的紧急恢复分区。
安装CloneZilla
在 J: 盘下建立以下几个目录:
- clonezilla:CloneZilla主目录
- grub4dos:grub4dos主目录
- iso:其他系统维护盘镜像的目录
- images:C盘镜像备份的目录
然后把CloneZilla Live光盘中的 live 目录下的内容完全复制到 J:\clonezilla 下。
安装grub4dos
grub4dos支持NTLDR启动,所以其实只需要两个文件:grldr和menu.lst。但为了以后作业方便,我还是把整个grub4dos文件都放到了 J:\grub4dos 下。
然后设置NTLDR启动:复制 J:\grub4dos 下的 grldr 和 menu.lst 两个文件到 C: 盘根目录。然后编辑 C:\boot.ini ,加入以下内容:
C:\GRLDR="Start GRUB"
重新启动计算机,按F8出现Windows XP的启动菜单,然后选择“Start GRUB”,能出现GRUB的启动菜单就OK。
设置grub4dos启动CloneZilla
回到Windows下编辑menu.lst。默认的menu.lst中有许多没用的菜单项,我只保留了最初加载NTLDR和CMLDR的两项。然后加入启动CloneZilla的菜单项:
以下是代码片段: title Clonezilla live on harddrive root (hd0,2) kernel /clonezilla/vmlinuz1 boot=live union=aufs vga=788 ip=frommedia live-media-path=/clonezilla bootfrom=/dev/hda3 toram=filesystem.squashfs initrd /clonezilla/initrd1.img boot |
设置好之后,重新启动,进入Grub选择“Clonezilla live on harddrive”菜单项,看看能否顺利启动clonezilla。
安装Win98启动软盘
这一步的目的是让电脑能启动到纯DOS模式下,以便执行一些维护命令,比如稍后要说的bootlace.com程序就必须在纯DOS模式下执行。
首先上网找一张Windows 98启动软盘的镜像,放在iso目录下,假设路径为 /iso/win98.img。然后在menu.lst中加入以下菜单项:
title Win98 Floppy find --set-root --ignore-floppies /iso/win98.img map --mem /iso/win98.img (fd0) map --hook chainloader (fd0)+1 rootnoverify (fd0)
这里关键是map --mem这条命令,它将镜像文件完全加载到内存中,并把它映射到设备(fd0)上,这样就相当于虚拟了一个软驱。
然后重新启动计算机,进入Grub选择“Win98 Floppy”即可进入纯DOS模式。
安装grub4dos的引导扇区
现在grub4dos是通过NTLDR引导的,万一NTLDR也挂掉了,这个紧急恢复分区就失效了。为了防止这一点,需要把grub4dos安装到MBR中。
grub4dos提供了一个名为bootlace.com的程序可以写MBR。它的原理是,首先把原有的MBR(位于0扇区)备份到1扇区,然后在0扇区写入自己的启动程序。根据硬盘启动区的规格定义,硬盘的0磁道中,除了0扇区是MBR之外,其他扇区都是保留,所以备份到1扇区不会有任何影响。
由于bootlace.com必须在纯DOS下使用,而Win98启动盘提供的DOS没有命令行历史功能,偏偏bootlace.com的选项又长又多,因此手动敲命令可不是个好办法。应该建立一个名为INSTALL.BAT的文件,把bootlace.com的命令行写进去。
下面是INSTALL.BAT的例子。注意实际书写时不要换行,都写在同一行上。而且要注意命令行长度不要超过127个字符,这是DOS对命令行长度的限制。
bootlace --boot-prevmbr-first --time-out=1 --hot-key=0x4300 --force-backup-mbr --preferred-drive=0 --preferred-partition=2 0x80
各个选项的具体说明可以参见README_GRUB4DOS.TXT,这里只简单说明一下。
- --boot-prevmbr-first指明优先启动原来的MBR(进Windows),只有按下热键时才进入特定分区启动。
- --time-out指定启动时的等待时间。
- --hot-key指定进入特定分区启动的热键,0x4300为F9。
- --force-backup-mbr让bootlace.com将旧MBR备份到1扇区。
- --preferred-drive和--preferred-partition指定按下热键时,从第0磁盘的第2号扇区(第3个扇区)启动。这跟grub菜单中的(hd0, 2)是一样的意思。
- 最后的0x80表示要把bootlace.com装到第一块硬盘上。
然后重启计算机,进入DOS环境后执行bootlace.com即可。再次启动时就会出现一行小字,等待1秒钟即可进入原有Windows,而按下F9键就会启动位于(hd0,2)的grub引导程序。
建议继续学习:
- 用 LD_PRELOAD 挽救被误删的 libc.so.6 (阅读:4161)
- MySQL从压缩文件恢复数据 (阅读:3694)
- 参数_smon_internal_errlimit与数据库恢复 (阅读:3190)
- MySQL 备份和其恢复机制原理简述 (阅读:3130)
- linux磁盘管理学习笔记(下):linux分区、挂载 (阅读:3088)
- Oracle hash分区的秘密 (阅读:2907)
- 从磁盘映像中挂载或提取指定分区 (阅读:2836)
- linux大于2T的磁盘使用GPT分区 (阅读:2833)
- LVM介绍 (阅读:2803)
- 如何删除品牌电脑中的隐藏分区 (阅读:2708)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:charlee 来源: idv2
- 标签: 分区 恢复 用CloneZilla
- 发布时间:2010-07-19 22:50:48
- [55] Oracle MTS模式下 进程地址与会话信
- [55] IOS安全–浅谈关于IOS加固的几种方法
- [54] 如何拿下简短的域名
- [53] android 开发入门
- [52] Go Reflect 性能
- [52] 图书馆的世界纪录
- [49] 【社会化设计】自我(self)部分――欢迎区
- [49] 读书笔记-壹百度:百度十年千倍的29条法则
- [38] 程序员技术练级攻略
- [32] 视觉调整-设计师 vs. 逻辑