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