目录
系统装机的三种引导方式
1.硬盘
2.光驱(u盘)
3.网络
系统安装过程
-
加载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
开机自检 ——》 MBR引导——》grub2菜单——》内核初始化——》init初始化
PXE 是由 Intel 公司开发的网络引导技术,工作在 Client/Server 模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。PXE 严格来说并不是一种安装方式,而是一种引导的方式。进行 PXE 安装的必要条件是要安装的计算机中包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE (Pre-boot Execution Environment)协议使计算机可以通过网络启动。
协议分为 Client 端 和 Server 端,PXE Client 在网卡的 ROM 中,当计算机引导时,BIOS 把 PXE Client 调入内存执行,由 PXE Client 将放置在远端的文件通过网络下载到本地运行。运行 PXE 协议需要设置 DHCP 服务器 和 TFTP 服务器。DHCP 服务器用来给 PXE Client(将要安装系统的主机)分配一个 IP 地址,由于是给 PXE client 分配 IP 地址,所以在配置 DHCP 服务器时需要增加相应的 PXE 设置。
此外,在 PXE Client 的 ROM 中,已经存在了 TFTP Client。PXE Client 通过 TFTP 协议到 TFTP Server 上下载所需的文件。
实现过程讲解
1.网卡需要查找相关的dhcp服务器(获取地址时间)
2.找到后dhcp服务器提供ip地址,和引导程序(boot loader)的地址 还提供给客户机TFTPserver地址(dhcp本身不提供tftp服务)
3.网卡使用tftp客户端吧引导程序加载到内存中来
4.bios执行引导程序
5.引导程序会去TFTP去查找配置文件
6.根据配置文件去引导安装系统
7.系统安装过程
优点
规模化:同时装配多台服务器
自动化:安装系统、配置各种服务
远程实现:不需要光盘、U 盘等安装介质
搭建过程中服务详解
PXE 远程安装服务器集成了 CentOS 7 安装源、TFTP 服务、DHCP 服务,能 够向客户机裸机发送 PXE 引导程序、Linux 内核、启动菜单等数据,以及提供安装文件。
PXE服务器和客户机的工作过程:
1.PXE客户机发出DHCP请求,向DHCP服务器申请IP地址。 2.DHCP服务器响应PXE客户机的请求,自动从IP地址池中分配一个IP地址给PXE客户机,并且告知PXE客户机:TFTP服务器的IP地址和PXE引导程序文件pxelinux.0,默认在TFTP共享目录/var/lib/tftpboot/下
3.PXE客户机向TFTP服务器发起获取pxelinux.0引导程序文件的请求。
4.TFTP服务器响应PXE客户机的请求,将其共享的pxelinux.0文件传输给PXE客户机。
5.PXE客户机通过网络来启动到系统安装主界面。
6.PXE客户机向文件共享服务器(“ftp”、http、nfs等)发起获取centos或windows系统安装文件的请求。
7.(vsftp)文件共享服务响应PXE客户机的请求,将共享的系统安装文件传输给PXE客户机。
8.PXE客户机进入到安装提示向导界面,用户需要手动来完成系统安装的操作
搭建 PXE 远程安装服务器
注:做本次实验之前 已经提前安装好了需要的软件。
安装并启用 DHCP 服务
cp -p /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
启动DHCP服务 systemctl start dhcpd
安装并启用 TFTP 服务
TFTP:(Trivial File Transfer Protocol)是一个小而易于实现的文件传送协议。TFTP是基于UDP数据报,需要有自己的差错改正措施。TFTP只支持文件传输,不支持交互,没有庞大的命令集。也没有目录列表功能,以及不能对用户进行身份鉴别。但它的代码所占内存较小,不需要硬盘就可以固化TFTP代码,很适合较小的计算机和特殊用途的设备。
TFTP和FTP一个主要的区别就是它没有交互式,且不进行身份验证。
TFTP一般用于传输小文件
vim /etc/xinetd.d/tftp
tftp被xinet所托管,xinetd默认没有安装,配置文件
service tftp
{
socket_type = dgram
protocol = udp
wait = yes //wait no表示客户机可以多台一起连接,yes表示客户机只能一台一台连接,表示是否开启多线程一起工作,否则要等待
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot //指定TFTP根目录(引导文件的存储路径) -c允许上传
disable = no //修改 disable no表示开启TFTP服务
per_source = 11 //通过限制一个主机的最大连接数,从而防止某个主机独占某个服务,这里每个IP地址的连接数是11个
cps = 100 2 //表示服务器最多启动100个连接,如果达到这个数目将停止启动新服务2秒。在此期间不接受任何请求
flags = IPv4
}
pxelinux.0是个二进制文件,主要作用相当于一个系统安装步骤的指引,引导客户端如何安装系统
yum provides */pxelinux.0 //查找这个文件是由哪个软件包安装的,当不是一个路径和一个软件包时用*/
yum -y install syslinux
rpm -ql syslinux | grep pxelinux #查找pxe引导程序的位置
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ #拷贝到tftp的根目录下,系统引导文件
注,只有安装了 system-config-kickstart 软件包,才会有/usr/share/syslinux/目录及目录中的文件
以上就是为了将镜像中的内核文件+系统的初始化文件 丢到tftp的默认共享的目录中,以便后续pxe-client来下载
启动菜单用来指导客户机的引导过程,包括如何调用内核,如何加载驱动。默认的启动菜单文件为 default,应放置在 tftp 根目录的 pxelinux.cfg 子目录下,典型的启动菜单配置可参考以下操作自动或手动建立。
至于为什么要是/var/lib/tftpboot/pxelinux.cfg/default文件,因为是由pxelinux.0这个文件决定好的
mkdir /var/lib/tftpboot/pxelinux.cfg //默认pxelinux.cfg是没有的需要手动创建,注意它是一个目录而非文件虽然是以.cfg结尾
default auto //指定默认入口名称 ,对应下面的label auto
prompt 1 //设置是否等待用户选择,1 表示等待用户控制,0表示不等待用户控制,安装时会出现boot:如果按回车表示选择auto模式
label auto //默认的图形安装
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.23.10/centos7 //method必须指定网络路径
label linux text //文本安装模式,出现boot:时输入linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.23.10/centos7
label linux rescue //救援模式,出现boot:时输入linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.23.10/centos7
安装ftp服务,准备 CentOS 7 安装源
mount /dev/sr0 /mnt
mkdir /var/ftp/centos7
systemctl start vsftpd
实现Kickstart无人值守安装
准备安装应答文件
安装system-config-kickstart工具yum install -y system-config-kickstart
打开"Kickstart配置程序”窗口
通过桌面菜单"应用程序"–>“系统工具”–>"Kickstart”打开或执行"system-config-kickstart”命令打开
vim /var/lib/tftpboot/pxelinux.cfg/default
到这里,服务器端配置完成。
然后去虚拟机新安装一台Linux系统的机器,查看是否可以自动安装