单机时,可以通过光驱加载 linux 镜像去安装操作系统,光驱里有一个小型的linux操作系统将操作系统安装进自己的硬盘。或用PE 操作系统是外来的设备的上操作系统, 进入到外来的操作系统后,将自己想要安装的操作系统类型,安装进硬盘。多台时,可以通过PXE批量装机。
系统安装过程
- 加载Boot Loader :是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境
- 加载启动安装菜单
- 加载内核和initrd系统(文件才能使用文件)
- 加载根系统
- 运行anaconda的安装向导
Linux安装光盘的安装相关文件
在系统光盘的isolinux目录下有和安装相关的文件
- boot.cat: 相当于grub的第一阶段。
- isolinux.bin:光盘引导程序,在mkisofs的选项中需要明确给出文件路径,这个文件属于SYSLINUX项目
- isolinux.cfg:启动菜单的配置文件,当光盘启动后(即运行isolinux.bin),会自动去找isolinux.cfg文件
- vesamenu.c32:是光盘启动后的启动菜单图形界面,也属于SYSLINUX项目,menu.c32提供纯文本的菜单 需要用yum install syslinux (引导)
- memtest:内存检测程序
- splash.png:光盘启动菜单界面的背景图
- vmlinuz:是内核映像
- initrd.img:ramfs文件(精简版的linux系统,文件系统驱动等)
网卡启动需要和光盘启动拥有差不多的环境
四大文件:
内核 :vmlinuz
驱动: initrd.img
grub 配置文件:pxelinux.0
网络引导 grub程序 syslinux (软件集合):pxelunux.cfg/default
PXE 概述
PXE 的全称是 preboot execute environment它其实是Intel在很久以前提出来的一项用于通过网络来引导系统的标准。允许客户机通过网络从远程服务器上下载引导镜像,并加载安装文件或者整个操作系统。pxe是通过网卡引导启动。
实现的硬件条件
- BIOS支持
- 网卡支持(现在基本都已支持)
- 需要在bios中开启开关,服务器一般没打开(bmc界面里打开)
- 网络中有一台 DHCP 服务器以便为客户机自动分配地址、指定引导文件位置 网卡自带DHCP功能 dhcp 指明分配的ip地址
- 服务器通过 tftp服务(简单文件传输协议)来提供系统内核和引导镜像的下载 udp()协议 网卡自带这个功能(不支持其他的远程共享服务)
- 自带的站点(/var/lib/tftp?) initrd.img(驱动) vmlinuz(内核) pxelinux.cfg/default(引导文件) pxelinux.0(小型的grub程序) tftp 指明
实现过程
- 网卡需要查找相关的dhcp服务器(获取地址时间)
- 找到后dhcp服务器提供ip地址,和引导程序(boot loader)的地址 还提供给客户机TFTPserver地址(dhcp本身不提供tftp服务)
- 网卡使用tftp客户端吧引导程序加载到内存中来
- bios执行引导程序
- 引导程序会去TFTP去查找配置文件
- 根据配置文件去引导安装系统
- 系统安装过程
搭建过程服务
PXE 远程安装服务器集成了 CentOS 7 安装源、TFTP 服务、DHCP 服务,能够向客户机裸机发送 PXE 引导程序、Linux 内核、启动菜单等数据,以及提供安装文件。
TFTP 服务
TFTP(简单文件传输协议):内核和引导文件
是一种基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小型文件传输的应用场合。TFTP服务默认由xinetd服务进行管理,使用UDP69端口。
vsftp 服务
安装系统镜像文件获取方式
可以使用http ftp等方式,ftp文件传输的一种。
syslinux 服务
syslinux是一个功能强大的引导加载程序,而且兼容各种介质。它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。它的安装很简单,一旦安装syslinux好之后,sysLinux启动盘就可以引导各种基于DOS的工具,以及MS-DOS/Windows或者任何其它操作系统。pxelinux.0 启动pxe,pxe可以支持。
PXE 优点
- 规模化:同时装配多台服务器
- 自动化:安装系统、配置各种服务
- 远程实现:不需要光盘、U盘等安装介质
操作过程
安装所需软件
yum install tftp-server.x86_64 dhcp syslinux vsftpd -y
生成dhcp 配置文件
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
修改dhcp配置文件
vim /etc/dhcp/dhcpd.conf
subnet 192.168.91.0 netmask 255.255.255.0 {
range 192.168.91.20 192.168.91.50;
option routers 192.168.91.100;
next-server 192.168.91.100;
filename "pxelinux.0";
}修改 tftp 配置文件 将yes 改为no
vim /etc/xinetd.d/tftp
disable = no准备四大文件:pxelinux.0 initrd.img vmlinuz pxelunux.cfg/default
pxelinu.0
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/准备内核 驱动文件
mount /dev/sr0 /mnt
cd /mnt/isolinux/
cp vmlinuz initrd.img /var/lib/tftpboot/准备手写配置文件
cd /var/lib/tftpboot/
mkdir pxelinux.cfg
vim pxelinux.cfg/default
default linux
timeout 600label linux
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.91.100/centos7(
准备yum仓库
mkdir /var/ftp/centos7
mount /dev/sr0 /var/ftp/centos7/systemctl start dhcpd
systemctl start tftp.socket
systemctl start vsftpd准备应答文件 自动安装操作系统
yum install system-config-kickstart -y手动去添加应答文件过程 略
cd /var/lib/tftpboot/
vim pxelinux.cfg/default
default linux
timeout 600label linux
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.91.100/centos7 ks=ftp://192.168.91.100/ks.cfg
手动添加应答文件过程
安装虚拟机检验