Windows 系统备份可以用 ghost 工具软件完成, Linux 系统不能完全依赖于 ghost 工具,一则是 ghost 本身是有版权的软件,二则 ghost 只支持 ext2 、 ext3 文件系统的 Linux 分区,不支持 reiserfs 、 xfs 等比较高级的文件系统, ghost 本身并不备份 mbr ,因此常造成恢复后的系统 grub 出错的问题。 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />



   linux 本身自带有着优秀的备份工具,传统如: tar 、 cpio 、 dd ,新的有: bzip2 、 afio 等。这里介绍两款备份整个 Linux 系统,类似于 ghost 的工具: ghost for linux 和 partition p_w_picpath for linux 。



g<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />4l 
    和 
    partition p_w_picpath 
    软件都有光盘映像版。



 



1 。 g4l


[url]http://sourceforge.net/project/showfiles.php?group_id=119810[/url]



下载 ISO 文件刻录成光盘或者在 VM 中加载启动。



放入 g4l 光盘,启动画面显示:



   F1 选择核心版本   F2  准备映象    F3  启动    F4  条款说明



g4l 要求有一块空闲的硬盘或者分区以保存映象文件, g4l 原理是利用 dd 命令备份硬盘分区信息及存有数据的扇区,空闲的扇区并不被保存。 g4l 提供了 fg4l 控制台图形前端,采用 ncures GUI 库编写,初次用 g4l 可以用 fg4l 熟悉操作。



  选择一个核心启动进入 g4l 系统,出现 sh# 提示符时,输入 fg4l 命令进入操作界面,或者执行 g4l 命令,格式如下:



g4l FTP 服务器 IP  映象文件全名 用户名 : 口令   dhcp  目录



以指定的帐号备份 linux 系统到指定 FTP 服务器的指定目录下的映象文件。



像: g4l 192.168.0.1 test.lzo user:pass dhcp /img



<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />







 



2 。 partition p_w_picpath



该软件易用性比 g4l 好一些,全图形界面,带向导。采用它备份一台安装好的 Linux 系统,再将映象恢复到其他有着相同硬件配置的电脑上,则可以快速克隆一套一模一样的 Linux 系统。此软件速度上比 g4l 快,建议使用此款软件作 linux 系统备份。



   可能是由于晚上上网的原因, partition p_w_picpath 官方网站一直上不去,没有下载,在此不继续做使用讨论,以屏幕截图来看,此款软件好于 g4l 。


 



3.



以上两款软件都要求有 FTP 服务器,以存放备份映像文件。



 



 



**************************************************************************



 



G4L 备份 CENTOS5 系统过程(几乎和操作 GHOST 一样)。
                                    200705
环境:
WINXP+VM+CENTOS 5  



目标: DISK TO DISK 备份 CENTOS 。
1.1. 下载 G4L iso 。刻录成光盘或者用 VM 加载都行。
1.2. 为 CENTOS4 。 3 增加一个虚拟硬盘(目标盘),大小和系统盘一样(母盘)。
1.3 。启动 CENTOS4 。 3 ,把目标盘分成一个区,建立 EXT3 文件系统。不挂载。重启。
1.4 。用 G4L ISO 启动系统。用其默认核心系统启动。
1.5 。 #sh g4l, 启动 G4L 系统
   选择 “RAW MODE ”
   选择 ”CLICK N CLONE“ 整盘克隆。
   选择母盘 SELECT SOURCE
   选择目标盘 SELECT TARGET
   选择 ”CLICK N CLONE“
   确认。
1.6 。完成后,退出 G4L ,关机,把母盘删除,目标盘挂载到母盘位置,从硬盘启动。
   顺利启动,检查,一切和原来一样。



恢复测试 :新加一个虚拟磁盘,用 G4L 把 CENTOS 系统从子盘恢复到子子盘。
   过程略,和上面一样。



备注:
如果目标盘容量》母盘, DISK TO DISK 后,目标盘默认能用的容量和母盘一样大。
解决方法:
-------------------------------

5 
    . 
    1 
    检查母盘的分区情况并记录: 
    
              # df –h
              /dev/sda2        3.4G              /
              /dev/sda1        99M              /boot
              /dev/sda5        3.6G              /var
              /dev/sda6        494M            /tmp
       5 
    . 
    2 
    检查母盘的分区表并记录 
    
# fdisk /dev/sda
              Command (m for help )  
    : 
     p
              Disk /dev/sda 
    : 
     9105M 
    , 
    9105018880 bytes
              255 heads 
    , 
    63 sectors/track 
    , 
    1106 cylinders
              Units=cylinders of 16065*512=8225280 bytes
 
Device Boot Start End Blocks Id System 
/dev/sda1 * 1 13 104391 83 Linux 
/dev/sda2   14 459 3582495 83 Linux 
/dev/sda3   460 524 522112+ 82 Linux swap 
/dev/sda4   525 1106 4674915 5 Extended 
/dev/sda5   525 1041 4152771 83 Linux 
/dev/sda6   1042 1106 522081 83 Linux  
     
     
   
       5 
    . 
    3 
    关机,将母盘下掉,然后将子盘设置成启动: 
    
       5 
    . 
    4 
    顺利启动进入了系统,看来 
    G4L 
    确实能够解决所担心的启动问题。 
    ^_^
5 
    . 
    5 
    检查子盘的分区情况并记录: 
    
              # df –h
              /dev/sda2        3.4G              /
              /dev/sda1        99M              /boot
              /dev/sda5        3.6G              /var
              /dev/sda6        494M            /tmp
 
    这里可以看到 
    G4L 
    是按照母盘的分区情况来进行克隆的,可是多余的容量去哪了呢? 
    
       5 
    . 
    5 
    查看子系统分区表: 
    
              # fdisk /dev/sda
              Command (m for help )  
    : 
     p
              Disk /dev/sda 
    : 
     73.4G 
    , 
    73402398720 bytes
              255 heads 
    , 
    63 sectors/track 
    , 
    8924 cylinders
              Units=cylinders of 16065*512=8225280 bytes
 
####  
    这里的 
    73402398720 bytes=8924*16065*512 #######
 
Device Boot Start End Blocks Id System 
/dev/sda1 * 1 13 104391 83 Linux 
/dev/sda2   14 459 3582495 83 Linux 
/dev/sda3   460 524 522112+ 82 Linux swap 
/dev/sda4   525 1106 4674915 5 Extended 
/dev/sda5   525 1041 4152771 83 Linux 
/dev/sda6   1042 1106 522081 83 Linux

分区表上显示的与母盘一致。
 
尝试着在最后增加新的分区:

Command (m for help )  
    : 
     n
No free sectors available
 
    没有多余的空间??? 
    
              Command (m for help )  
    : 
     v


显示还有 60G 左右的空间没有使用,怎么可能没有多余的空间呢?有点奇怪 ~~
 
尝试着将最后一个分区删掉,然后新增分区,以为可能会找回丢失的容量

Command (m for help )  
    : 
     d
Partition number (1-6) 
    : 
     6
Command (m for help )  
    : 
     n
First cylinder (1042-1106 
    , 
    default 1042) 
    :


这里让我有点担心了,剩余的空间怎么会是: 1042-1106 呢?这个空间就是刚才删除的那个分区的空间啊,



看来什么地方有点问题。
继续查看分区表,发现:
/dev/sda4   525 1106 4674915 5 Extended



原来是这里的 Extended 已经将最后的结束柱面指定为 1106 了,只要修改成 8924 应该就可以找回丢失的容量


,原因找到了,马上动手。 
    
Command (m for help )  
    : 
    d       
    (删除分区) 
    
Partition number (1-5)  
    : 
    4        
    (这里的 
    4 
    是 
    sda4 
    , 
    Extended 
    ) 
    
Command (m for help )  
    : 
     p
              Disk /dev/sda 
    : 
     73.4G 
    , 
    73402398720 bytes
              255 heads 
    , 
    63 sectors/track 
    , 
    8924 cylinders
              Units=cylinders of 16065*512=8225280 bytes
 
Device Boot Start End Blocks Id System 
/dev/sda1 * 1 13 104391 83 Linux 
/dev/sda2   14 459 3582495 83 Linux 
/dev/sda3   460 524 522112+ 82 Linux swap  
     
     
   
 
Command (m for help )  
    : 
    n         
    (新建 
    Extended 
    分区) 
    
Command action
e  extended
       p  Primary partion (1-4)
e       
    (输入 
    e  
    ,创建 
    Extended 
    分区) 
    
Select partion 4
First cylinder (525-8924 
    , 
    default 525) 
    :回车(终于看到 
    8924 
    了, 
    ^_^ 
    ) 
    
Last Cylinder or +size or +sizeM or +sizeX (525-8924 
    , 
    default 8924) 
    : 
      
    回车 
    
Command (m for help )  
    : 
    p
              Disk /dev/sda 
    : 
     73.4G 
    , 
    73402398720 bytes
              255 heads 
    , 
    63 sectors/track 
    , 
    8924 cylinders
              Units=cylinders of 16065*512=8225280 bytes
 
Device Boot Start End Blocks Id System 
/dev/sda1 * 1 13 104391 83 Linux 
/dev/sda2   14 459 3582495 83 Linux 
/dev/sda3   460 524 522112+ 82 Linux swap 
/dev/sda4   525 8924 67473000 5 Extended

Command (m for help )  
    : 
    n 
    (新建原来的 
    sda5 
    分区,注意一定要与原来的起始与结束的柱面一致) 
    
First cylinder (525-8924 
    , 
    default 525) 
    :回车 
    
Last Cylinder or +size or +sizeM or +sizeX (525-8924 
    , 
    default 8924) 
    : 
     1041
Command (m for help )  
    : 
    n 
    (新建原来的 
    sda6 
    分区,同样注意一定要与原来的起始与结束的柱面一致) 
    
First cylinder (1042-8924 
    , 
    default 1042) 
    :回车 
    
Last Cylinder or +size or +sizeM or +sizeX (1042-8924 
    , 
    default 8924) 
    : 
     1106
Command (m for help )  
    : 
    n 
    (新建多余空间的分区) 
    
First cylinder (1107-8924 
    , 
    default 1107) 
    :回车 
    
Last Cylinder or +size or +sizeM or +sizeX (1107-8924 
    , 
    default 8924) 
    :回车 
      
    (全部做为新的分区


,也可以继续进行细分,看个人需要了)
#### 查看所有的分区情况 ####

Command (m for help )  
    : 
    p
Disk /dev/sda 
    : 
     73.4G 
    , 
    73402398720 bytes
              255 heads 
    , 
    63 sectors/track 
    , 
    8924 cylinders
              Units=cylinders of 16065*512=8225280 bytes
 
Device Boot Start End Blocks Id System 
/dev/sda1 * 1 13 104391 83 Linux 
/dev/sda2   14 459 3582495 83 Linux 
/dev/sda3   460 524 522112+ 82 Linux swap 
/dev/sda4   525 8924 67473000 5 Extended 
/dev/sda5   525 1041 4152771 83 Linux 
/dev/sda6   1042 1106 522081 83 Linux 
/dev/sda7   1107 8924 62798053+ 83 Linux


注意对应的 Blocks 的大小是否与母盘一致!!
Command (m for help ) : w             (保存并退出)
 
5 . 6 建立新分区的文件系统:
       mkfs –t ext3 /dev/sda7     (小心操作,一定要注意是不是你所要建立的分区)
5 . 7 建立新分区卷标:
       tune2fs –L/store /dev/sda7  (卷标自己根据需要定)
5 . 8 加载新分区
       mkdir /store
       mount –t ext3 /dev/sda7 /store



 


转载于:https://blog.51cto.com/xzzqf/64919