启动操作系统
1.硬盘
2.光驱(u盘)
3.网络启动pxe
Boot Loader 是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境
Linux安装光盘的安装相关文件
相关文件 | 说明 |
---|---|
boot.cat | 相当于grub的第一阶段 |
isolinux.bin | 光盘引导程序,在mkisofs的选项中需要明确给出文件路径,这个文件属于SYSLINUX项目 |
isolinux.cfg | 启动菜单的配置文件,当光盘启动后(即运行isolinux.bin),会自动去找isolinux.cfg文件 |
vesamenu.c32 | 是光盘启动后的启动菜单图形界面,也属于SYSLINUX项目,menu.c32提供纯文本的菜单 |
memtest | 内存检测程序 |
splash.png | 光盘启动菜单界面的背景图 |
vmlinuz | 是内核映像 |
initrd.img | ramfs文件(精简版的linux系统,文件系统驱动等) |
PXE:预启动执行环境,在操作系统之前运行)是由Intel公司开发的网络引导技术,工作在Client/Server模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。预启动执行环境,在操作系统之前运行。
相关软件包 | 说明 |
---|---|
dhcp | 实现地址自动分配 |
ftp | 将安装文件传输给客户机(共享目录) |
xinetd | 新一代网络守护进程服务程序,管理轻量级的Internet服务 |
tftp | 简单文件传输协议udp协议,服务端和客户端之间进行简单文件传输(小文件),依赖于xinetd管理,端口号69 |
网卡需要查找相关的dhcp服务器(获取地址时间)
找到后dhcp服务器提供ip地址,和引导程序(boot loader)的地址 还提供给客户机TFTPserver地址(dhcp本身不提供tftp服务)
网卡使用tftp客户端把引导程序加载到内存中来
bios执行引导程序
引导程序会去TFTP去查找配置文件
根据配置文件去引导安装系统
系统安装过程
pxe批量部署的优点
##服务端:
yum install dhcp vsftpd tftp-server.x86_64 syslinux -y #安装需要的软件
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf #复制配置文件模板
vim /etc/dhcp/dhcpd.conf #编辑配置文件
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.20 192.168.10.30;
option routers 192.168.10.2;
next-server 192.168.10.11;
filename "pxelinux.0";
}
#第一行表示分配的子网和子网掩码
#第二行表示分配的ip地址的范围
#第三行表示网关
#第四行表示客户端从ip地址192.168.10.11的服务器找引导文件
#第五行表示指定启动文件
rpm -ql tftp-server #查看tftp-server安装包的所有文件
vim /etc/xinetd.d/tftp #编辑配置文件
disable = no
#将14行的yes改为no
cd /var/lib/tftpboot #切换目录
mount /dev/sr0 /mnt #挂载
ls /mnt/isolinux/ #查看/mnt/isolinux/目录下的文件
cp /mnt/isolinux/vmlinuz /mnt/isolinux/initrd.img . #将需要的vmlinuz、initrd.img文件复制到当前目录
rpm -ql syslinux |grep pxelinux.0 #查找pxelinux.0的文件位置
cp /usr/share/syslinux/pxelinux.0 . #将pxelinux.0文件复制到当前目录
mkdir pxelinux.cfg #建立文件夹
cd pxelinux.cfg/ #切换目录
vim default #编辑配置文件
default linux #指定默认的启动标题
timeout 600 #等待时间
label linux #引导标签
kernel vmlinuz #指定内核映像文件
append initrd=initrd.img method=ftp://192.168.10.11/centos7 #启动参数
tree #查看当前目录下的文件
mkdir /var/ftp/centos7 -p #建立文件夹(在/var/lib/tftpboot目录下新建)
mount /dev/sr0 /var/ftp/centos7 #挂载
systemctl start tftp #开启服务
systemctl start vsftpd #开启服务
systemctl start dhcpd #开启服务
##客户端:安装系统的客户机内存最少2G,否则配置的文件运行不起来
获取到安装文件(半自动化),剩下步骤还需要手动安装
命令段中的常见命令
常见命令 | 说明 |
---|---|
keyboard | 设定键盘类型 |
lang | 语言类型 |
zerombr | 清除mbr |
clearpart | 清除分区 |
part | 创建分区 |
rootpw | 指明root的密码 |
timezone | 时区 |
text | 文本安装界面 |
network | 指定网络设置 |
firewall | 设置防火墙设置 |
selinux | 设置selinux设置 |
reboot | 安装完自动重启 |
user | 安装完成后为系统创建新用户 |
url | 指明安装源 |
指明要安装的程序包组或程序包,不安装的程序包等
%packages
@^environment group: 指定环境包组,如:@^minimal-environment
@group_name
package
-package
%end
%pre:安装前脚本
%post:安装后脚本
##服务端:
yum install system-config-kickstart.noarch -y #安装kickstart软件包
服务端后续过程是图形界面,详细情况见下面图文详解,完成后将引导程序写入配置文件
vim pxelinux.cfg/default #修改配置文件
default linux
timeout 600
label linux
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.10.11/centos7
ks=ftp://192.168.10.11/ks.cfg
#将引导程序写入配置文件
##客户端:启动客户机,不需要进行后续操作