用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:oot.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我的恢复分区(J:)是系统的第三个主分区,所以第二行盘符为(hd0,2),第三行的bootfrom为/dev/hda3。这两个参数根据具体情况调整即可。另外,kernel和initrd指令中用到的 /clonezilla 路径,就是我们建立的 J:clonezilla 路径。
设置好之后,重新启动,进入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引导程序
相关新闻>>
- 发表评论
-
- 最新评论 更多>>