首页 > 编程笔记 > Linux笔记

dd命令安装Linux

面对大批量服务器的安装,人们往往热衷于选择“无人值守安装”的方式,而此方式需要对服务器进行过多的配置,并不适合初学者。

无人值守安装(Kickstart),又称全自动安装,其工作原理是,创建一个名为 ks.cfg 的文件记录 Linux 系统在安装过程中需要人工干预填写的各种参数,当安装过程中出现要填写参数时,安装程序会自行去 ks.cfg 文件中查找合适的参数,如果没找到,还是需要手工干预。因此,在 ks.cfg 文件涵盖安装过程所有可能需要填写的参数的前提下,安装者只需要告诉安装程序 ks.cfg 文件的位置,就可实现全自动安装。

本节介绍使用 dd 命令实现硬盘复制,间接实现安装 Linux 系统的方法,此方式类似 Windows 下用 GHOST 软件进行硬盘克隆。

首先,我们先来系统了解一下  dd 命令。

对于初学者来说,本节内容可在掌握常用 Linux 命令后再行学习。

Linux dd 命令是什么

dd 命令是用来复制文件的命令,它可以用指定大小的数据块复制一个文件,并在复制的同时进行指定的转换。简单地理解,dd 命令可用于进行两块硬盘之间的复制(完整复制出一块和原系统盘一样的硬盘)。

dd 命令的格式如下:

[root@localhost ~]# dd 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 命令复制硬盘,需满足以下两个前提条件:
  1. 需要批量复制的服务器硬件配置一致。通常,采购服务器都是批量采购的,服务器的配置都是一样的。
  2. 复制硬盘的时候,需要手工更换被复制盘。服务器上一般都是 SCSI 硬盘,SCSI 硬盘支持热插拔,而且不需要拆卸机箱,更换被复制盘非常方便。

实际上,笔者当年维护大批量服务器时采用的就是 dd 复制,而不是无人值守安装。

dd命令安装Linux详细步骤

通过以上的学习我们知道,使用 dd 命令安装 Linux,实际上就是硬盘之间的完整拷贝,其实现过程如下:
  1. 把母盘插入服务器的第一个硬盘插口,把被复制盘插入服务器的第二个硬盘插口,注意不要插反。
  2. 执行复制命令 dd if=/dev/sda of=/dev/sdb。在 dd 命令中,if 指定复制源,of 指定复制目标。/dev/sda 代表第一块 SCSI 盘,/dev/sdb 代表第二块 SCSI 盘。这条命令会把第一块硬盘中的数据完整地复制到第二块硬盘中。

经过以上两步,即可实现将服务器之间的复制。那么,此方法的效率如何呢?由于复制的速度和服务器的配置及安装软件的多少相关,因此每台服务器的复制时间约为15〜25分钟,效率还可以接受。

选择无人值守安装的方式,也要受到服务器端配置和网络带宽的影响,而且硬盘复制也可以多台服务器同时操作。

推荐阅读