dd命令安装Linux
面对大批量服务器的安装,人们往往热衷于选择“无人值守安装”的方式,而此方式需要对服务器进行过多的配置,并不适合初学者。
首先,我们先来系统了解一下 dd 命令。
dd 命令的格式如下:
选项:
【例 1】
【例 2】
【例 3】
使用 dd 命令复制硬盘,需满足以下两个前提条件:
经过以上两步,即可实现将服务器之间的复制。那么,此方法的效率如何呢?由于复制的速度和服务器的配置及安装软件的多少相关,因此每台服务器的复制时间约为15〜25分钟,效率还可以接受。
无人值守安装(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=个数
选项:
- 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命令安装Linux详细步骤
通过以上的学习我们知道,使用 dd 命令安装 Linux,实际上就是硬盘之间的完整拷贝,其实现过程如下:- 把母盘插入服务器的第一个硬盘插口,把被复制盘插入服务器的第二个硬盘插口,注意不要插反。
-
执行复制命令
dd if=/dev/sda of=/dev/sdb
。在 dd 命令中,if 指定复制源,of 指定复制目标。/dev/sda 代表第一块 SCSI 盘,/dev/sdb 代表第二块 SCSI 盘。这条命令会把第一块硬盘中的数据完整地复制到第二块硬盘中。
经过以上两步,即可实现将服务器之间的复制。那么,此方法的效率如何呢?由于复制的速度和服务器的配置及安装软件的多少相关,因此每台服务器的复制时间约为15〜25分钟,效率还可以接受。
选择无人值守安装的方式,也要受到服务器端配置和网络带宽的影响,而且硬盘复制也可以多台服务器同时操作。
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算