一、系统安装
1. 系统装机的三种引导方式
1. 硬盘安装
2. 光驱(u盘)安装
3. 网络启动 pxe
2.系统安装过程
-
加载boot loader
Boot Loader 是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境 -
加载启动安装菜单
-
加载内核和initrd系统(文件才能使用文件)
-
加载根系统()
-
运行anaconda的安装向导
Linux安装光盘的安装相关文件
在系统光盘的isolinux目录下有和安装相关的文件
-
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
1. 介绍
PXE 的全称是 preboot execute environment它其实是Intel在很久以前提出来的一项用于通过网络来引导系统的标准。允许客户机通过网络从远程服务器上下载引导镜像,并加载安装文件或者整个操作系统。
PXE 远程安装服务器集成了 CentOS 7 安装源、TFTP 服务、DHCP 服务,能 够向客户机裸机发送 PXE 引导程序、Linux 内核、启动菜单等数据,以及提供安装文件。
2. 优点
规模化:同时装配多台服务器
自动化:安装系统、配置各种服务
远程实现:不需要光盘、U盘等安装介质
3. 实现过程
3.1 过程
1. 网卡需要查找相关的dhcp服务器(获取地址时间)
2. 找到后dhcp服务器提供ip地址,和引导程序(boot loader)的地址 还提供给客户机TFTPserver地址(dhcp本身不提供tftp服务)
3. 网卡使用tftp客户端吧引导程序加载到内存中来
4. bios执行引导程序
5. 引导程序会去TFTP去查找配置文件
6. 根据配置文件去引导安装系统
7. 系统安装过程
3.2 需要的服务
1. TFTP服务
TFTP(简单文件传输协议):内核和引导文件
是一种基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小型文件传输的应用场合。TFTP服务默认由xinetd服务进行管理,使用UDP69端口。
2. vsftp
安装系统镜像文件获取方式
3. syslinux
syslinux是一个功能强大的引导加载程序,而且兼容各种介质。它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。它的安装很简单,一旦安装syslinux好之后,sysLinux启动盘就可以引导各种基于DOS的工具,以及MS-DOS/Windows或者任何其它操作系统。
4. DHCP服务
DHCP服务是一种网络协议,全称为动态主机配置协议(Dynamic Host Configuration Protocol)。它可以自动分配IP地址、子网掩码、默认网关、DNS服务器等网络配置信息给计算机或其他网络设备,使设备能够正常连接到网络并进行通信。
3.3 四大文件
pxelinux.0:网络引导程序文件。(安装syslinux)
pxelinux.cfg/default:引导程序的配置文件。(手动创建文件夹,可参考isolinux目录下的 isolinux.cfg)
vmlinuz:内核文件。(光盘中获取,位于 isolinux 目录下)
initrd.img: 系统启动镜像文件。(光盘中获取,位于 isolinux 目录下)
3.4 PXE装机过程
(1)安装软件包
(2)配置 dhcp 并开启服务
配置文件内容:
(3)修改tftp配置文件
(4)挂载光盘,获取三大文件
(5)创建子目录
(6)配置vsftpd服务
将光盘挂载到该目录下,供客户端下载
(7)安装 kickstart
(8)配置 Kickstart
基本配置:
安装方法:
引导装载程序选项:
分区信息:
防火墙配置:
显示配置:
安装后脚本:
保存文件:
因为ftp服务, 就保存到 /var/ftp 目录下
(9)写入配置文件
(10)测试
新建一台虚拟机
等待几分钟,出现这样的界面就可以输入用户登录了
三、kickstart 无人值守安装
kickstart文件主要包括三个部分:命令段,程序包段,脚本段
命令段:指明各种安装前配置,如键盘类型等
命令段中的常见命令:
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: 安装后脚本
注意:CentOS 8,7,6 不同版本的kickstart文件格式不尽相同,不可混
[root@localhost tftpboot]#yum install system-config-kickstart -y
#安装图形化工具
四、Cobbler
1. Cobbler介绍
Cobbler是一个开源的系统管理和网络引导工具。它被设计用于自动化操作系统的安装和配置,并简化系统管理和部署。Cobbler可以集中管理多个操作系统的安装过程,并提供一种简单的方法来配置和管理网络引导。它使用DHCP、PXE和TFTP等网络工具来自动安装操作系统,并提供一个用户友好的Web界面来管理系统配置和部署。
2. Cobbler的工作原理
-
client裸机配置了从网络启动后,开机后会广播包请求DHCP服务器(cobbler server)发送其分配好的一个IP
-
DHCP服务器(cobbler server)收到请求后发送responese,包括其ip地址
-
client裸机拿到ip后再向cobbler server发送请求OS引导文件的请求
-
cobbler server告诉裸机OS引导文件的名字和TFTP server的ip和port
-
client裸机通过上面告知的TFTP server地址通信,下载引导文件
-
client裸机执行执行该引导文件,确定加载信息,选择要安装的os,期间会再向cobbler server请求kickstart文件和os image
-
cobbler server发送请求的kickstart和os iamge
-
client裸机加载kickstart文件
-
client裸机接收os image,安装该os image
-
client裸机配置了从网络启动后,开机后会广播包请求DHCP服务器(cobbler server)发送其分配好的一个IP
-
DHCP服务器(cobbler server)收到请求后发送responese,包括其ip地址
-
client裸机拿到ip后再向cobbler server发送请求OS引导文件的请求
-
cobbler server告诉裸机OS引导文件的名字和TFTP server的ip和port
-
client裸机通过上面告知的TFTP server地址通信,下载引导文件
-
client裸机执行执行该引导文件,确定加载信息,选择要安装的os,期间会再向cobbler server请求kickstart文件和os image
-
cobbler server发送请求的kickstart和os iamge
-
client裸机加载kickstart文件
-
client裸机接收os image,安装该os image
3. Cobbler的特点
-
自动化安装和配置:Cobbler可以自动化执行操作系统的安装过程,并自动配置系统设置,如网络配置、用户账户、软件包等。
-
集中管理:Cobbler可以集中管理多个操作系统的安装过程,包括CentOS、Ubuntu、Debian、Fedora等,并提供一致的管理界面和工具。
-
网络引导管理:Cobbler可以管理网络引导(Network Boot),使用DHCP、PXE和TFTP等网络工具来自动安装操作系统,并提供网络引导配置的简单方法。
-
Web界面管理:Cobbler提供一个用户友好的Web界面,可以轻松配置和管理系统设置和部署。用户可以通过Web界面创建和管理安装文件、系统配置文件、软件包等。
-
插件扩展:Cobbler支持插件扩展,可以通过编写自己的插件来扩展其功能和定制需求。