一、需求: 将现在服务器上系统盘备份至新硬盘,必须保证系统的完整性,万一母系统盘(源盘,以下都称为“母盘”)出现问题了,子系统盘(备份目标盘,以下都称为“子盘”)可以直接挂载上去使用。

二、环境:   

       1、硬件:母系统盘SCSI/9G,子系统盘SCSI/73G 

       2、软件:母系统盘分区如下: 

              /dev/sda2        3.4G              / 

              /dev/sda1        99M              /boot 

              /dev/sda5        3.6G              /var 

              /dev/sda6        494M            /tmp 


三、方案: 

       1、采用Ghost for Linux(G4L)将母盘整个克隆到子盘; 

       2、采用Ghost 7.5企业版或以上版本DISK to DISK方式; 

       3、采用Partimage一个分区一个分区的克隆。 


       最终选用了第一种方案 


四、可能出现的问题 

       1、由于母盘比子盘小很多,所以可能出现克隆到子盘之后容量的分配问题,是G4L自动分配所有的空间然后调整所有的分区呢还是只分配母盘上的空间,而多余的空间在最后一个分区之后空闲?(以前没有使用过,所以只能等到完成之后才能够确认) 

       2、克隆到子盘之后,子盘能够启动么? 


五、操作步骤: 

1、 下载Ghost for Linux的光盘版ISO: 

http://ftp7.enet.com.cn:88/pub/linux/system/backup/ghost4l.iso 
           注意:之所以采用光盘版的方式,主要是克隆的时候母盘一定不能处于运行的状态之中,否则会发生混乱。也可以采用硬盘版的,不过得先在另外一台机器上安装个Linux系统,然后将母盘和子盘都挂载上去进行操作。 

        
2、刻录成光盘 

       3、将子盘挂载在另外的SCSI接口之上,然后重新开机,确认能够检测到母盘和子盘 

        
4、使用G4L光盘执行系统: 

              4.1启动后的界面: 



采用默认的bzImagev方式直接回车后出现检测信息(G4L其实是一个小型的Linux系统),然后进入了一个文本的界面。 


4.2输入./g4l运行系统 

4.3主界面: 


         

选择第一项“RAW Mode” ,然后选择第三项“Click’n’Clone”进行整盘的克隆 

4.4 
然后选择第一项:“Select source”选择好源盘(母盘) 

选择第二项:“Select target”选择好目标盘(子盘)。 

注意一定不要弄反了!!! 

4.5 
选择第三项:“Click’n’Clone”,弹出一个对话框确认母盘和子盘都正确无误之后进行克隆。界面类似如下,时间的长短视硬盘容量、SCSI卡和系统硬件等等来决定: 



5、大约半小时G4L操作完成之后进入到最重要的一个环节,系统文件可能的修改: 

        
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呢?这个空间就是刚才删除的那个分区的空间啊,看来什么地方有点问题。 
继续查看分区表,发现:
Device       Boot Start   End      Blocks    Id     System
 
/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     
1106    
4674915     
5       
Extended 

/dev/sda5          
525 
        
1041    
4152771    
83      
Linux 

/dev/sda6         
1042 
      
1106     
522081     
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