技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 其他 --> 用CloneZilla制作紧急恢复分区

用CloneZilla制作紧急恢复分区

浏览:2592次  出处信息

关于一键恢复,网上有很多讨论,也有很多成品,不过大多数都是基于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
我的恢复分区(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引导程序。

建议继续学习:

  1. 用 LD_PRELOAD 挽救被误删的 libc.so.6    (阅读:4121)
  2. MySQL从压缩文件恢复数据    (阅读:3571)
  3. 参数_smon_internal_errlimit与数据库恢复    (阅读:3073)
  4. linux磁盘管理学习笔记(下):linux分区、挂载    (阅读:3021)
  5. MySQL 备份和其恢复机制原理简述    (阅读:2958)
  6. linux大于2T的磁盘使用GPT分区    (阅读:2794)
  7. 从磁盘映像中挂载或提取指定分区    (阅读:2780)
  8. LVM介绍    (阅读:2745)
  9. Oracle hash分区的秘密    (阅读:2735)
  10. 如何删除品牌电脑中的隐藏分区    (阅读:2638)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1