无人值守安装可以解决大批量服务器的安装,但是服务器端配置实在过于麻烦,并不适合新手使用。有没有更简单的大批量服务器安装方法,类似 Windows 下的用 GHOST 软件进行硬盘克隆?
答案是有的,在 Linux 下可以使用强大的 dd 命令实现硬盘复制。对于初学者来说,本节内容可在掌握常用 Linux 命令后再行学习。
dd 命令是什么
dd 命令是用来复制文件的命令,它可以用指定大小的数据块复制一个文件,并在复制的同时进行指定的转换。也就是说,我们用 dd 命令进行两块硬盘的复制,它除了能够复制文件中的数据,还能够复制分区和文件系统,可以完整地复制出一块和原系统盘一样的硬盘。
dd 命令的格式如下:
[root@localhost ~]# dd if=输入文件of=输出文件bs=字节数count=个数
选项:
- if=输入文件:指定源文件或源设备
- of=输出文件:指定目标文件或目标设备
- bs=字节数:指定一次输入/输出多少字节,即把这些字节看作一个数据块
- count=个数:指定输入/输出多少个数据块
【例 1】
[root@localhost ~]# dd if=/dev/zero of=/root/testfile bs=1k count=100000
#创建一个100MB大小的文件testfile,/dev/zero是一个输入设备,可以使用它来初始化文件,该设备无穷尽地输出0,可以理解为向testfile中不停地写0,直到写满100MB;
【例 2】
[root@localhost ~]# dd if=/dev/sda of=/dev/sdb
#把第一块硬盘中的数据复制到第二块硬盘中
【例 3】
[root@localhost ~]# dd if=/dev/hda of=/root/image
#把第一块硬盘中的数据复制到image文件中
使用dd命令复制硬盘有两个前提条件。
- 第一,需要批量复制的服务器硬件配置一致。我们采购服务器一般都是批量采购的,所以服务器的配置都是一样的,这应该不是问题。
- 第二,复制硬盘的时候,需要手工更换被复制盘。服务器上一般都是SCSI硬盘,SCSI硬盘支持热插拔,而且不需要拆卸机箱,更换被复制盘非常方便。
实际上,笔者当年维护大批量游戏服务器的时候采用的就是 dd 复制,而不是无人值守安装。
dd配置步骤
1) 把母盘插入服务器的第一个硬盘插口,把被复制盘插入服务器的第二个硬盘插口,注意不要插反。
2) 执行复制命令。
dd if=/dev/sda of=/dev/sdb
在 dd 命令中,if 指定复制源,of 指定复制目标。/dev/sda 代表第一块 SCSI 盘,/dev/sdb 代表第二块 SCSI 盘。这条命令会把第一块硬盘中的数据完整地复制到第二块硬盘中。
就这么简单!比无人值守安装痛快多了吧?那么它的效率如何呢?复制的速度和服务器的配置及安装软件的多少相关,不过笔者当年大批量复制服务器时,每台服务器的复制时间为15〜25分钟,效率还可以接受。无人值守安装也要受到服务器端配置和网络带宽的影响,而且硬盘复制也可以多台服务器同时操作。
在 Linux 中,除光盘安装、U 盘安装、无人值守安装和 dd 复制安装之外,还有其他的安装方式吗?答案是当然有,比如网络安装方式。网络安装方式比较简单,但是这种安装方式需要在每台客户端服务器上进行手工配置,如果是大批量安装,那么工作量也很大。