系统安装介绍
系统装机的三种引导方式
1.硬盘
2.光驱(u盘)
3.网络
系统安装过程
- 加载boot loader
- 加载启动安装菜单
- 加载内核和initrd系统
- 加载根系统
- 运行anaconda的安装向导
PXE介绍
什么是PXE
PXE 的全称是 preboot execute environment它其实是Intel在很久以前提出来的一项用于通过网络来引导系统的标准。允许客户机通过网络从远程服务器上下载引导镜像,并加载安装文件或者整个操作系统。
pxe是通过网卡引导启动。
服务优点
- 规模化:同时装配多台服务器,无需每一台单独安装操作系统;
- 自动化:实现服务器的自动安装及自动配置各种服务;
- 远程实现:不需要光盘、U盘等安装介质,方便快捷的同时又可以保障服务器安全。
搭建PXE网络体系所需条件
客户机
- 客户机的网卡要支持PXE协议(集成BOOTROM芯片)。
- 网卡自带DHCP服务和TFTP服务。
- 主板支持网络引导。有一些需在BIOS设置中允许从 Network 或 LAN 启动即可。
服务端
- 配置 DHCP 服务器 :为客户机自动分配地址、指定引导文件位置(指明TFTP服务器地址)。
- 服务器要开启 TFTP 服务(简单文件传输协议):用来提供系统内核和引导镜像文件的下载。
- 安装软件包syslinux :提供PXE引导程序。
- 服务器提供FTP服务(或http) :提供安装源(例如镜像文件系统等)。
PXE装机需要的四大文件
-
pxelinux.0:引导程序。(来自syslinux程序)
-
default:引导程序的配置文件。(需要手写,可参考光盘 isolinux 目录下的 isolinux.cfg 文件)
-
vmlinuz:内核文件。(从光盘中获取,位于 isolinux 目录下)
-
initrd.img: 系统启动镜像文件。(从光盘中获取,位于 isolinux 目录下)
如何实现PXE
-
客户机的网卡查找相关的dhcp服务器(获取地址和时间)。
-
DHCP服务器给客户机分配IP地址和引导程序(boot loader)的地址 ,同时通过offer报文把TFTP服务器的地址发给客户机。
-
TFTP服务器把引导文件(pxelinux.0)传给客户机。
-
客户机将引导程序加载到内存中来。
-
引导程序去TFTP服务器中查找配置文件,服务器将配置文件传给客户机。(配置文件中指定客户机使用ftp方式连接服务器获取系统镜像文件)
-
服务端安装并启动vsftpd服务,客户机使用ftp服务获取系统镜像文件。
搭建过程中服务详解
PXE 远程安装服务器集成了 CentOS 7 安装源、TFTP 服务、DHCP 服务,能 够向客户机裸机发送 PXE 引导程序、Linux 内核、启动菜单等数据,以及提供安装文件。
TFTP服务
TFTP(简单文件传输协议): 内核和引导文件
- 是一种基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小型文件传输的应用场合。TFTP服务默认由xinetd服务进行管理,使用UDP69端口。
- TFTP服务一般只在装机这种场景下使用,用于传输内核和引导文件。因为安全性不高。
- 自带的站点:/var/lib/tftpboot
DHCP服务
DHCP是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。
vsftp:安装系统镜像文件获取方式
可以使用http、ftp等方式,ftp文件传输的一种,vsftpd是提供ftp服务的软件之一。
syslinux
syslinux是一个功能强大的引导加载程序,而且兼容各种介质。它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。它的安装很简单,一旦安装syslinux好之后,sysLinux启动盘就可以引导各种基于DOS的工具,以及MS-DOS/Windows或者任何其它操作系统。
安装syslinux程序后,可获得 pxelinux.0 文件。
实验:PXE网络装机操作过程
1.安装软件包
[root@localhost ~]# yum install dhcp tftp-server.x86_64 vsftpd syslinux -y
2.配置DHCP服务器,分配IP地址,指明tftp服务器的地址
[root@localhost network-scripts]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
[root@localhost network-scripts]# vim /etc/dhcp/dhcpd.conf
---------------
# This is a very basic subnet declaration.
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.10 192.168.10.40;
option routers 192.168.10.2;
next-server 192.168.10.100;
filename "pxelinux.0";
}
--------------
[root@localhost network-scripts]# rpm -ql tftp-server
3.修改TFTP服务配置文件/etc/xinetd.d/tftp,将服务开启
[root@localhost network-scripts]# vim /etc/xinetd.d/tftp
--------------
disable = no
--------------
4.将光盘挂载到/var/ftp的子目录centos7下,并将文件先拷入/var/lib/tftpboot/ 目录中
[root@localhost ~]# mount /dev/sr0 /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# cd /var/lib/tftpboot/
[root@localhost tftpboot]# cd centos7
[root@localhost tftpboot]# cp /mnt/isolinux/initrd.img /mnt/isolinux/vmlinuz .
[root@localhost tftpboot]# rpm -ql syslinux |grep pxelinux.0
[root@localhost tftpboot]# cp /usr/share/syslinux/pxelinux.0 .
5.在/var/lib/tftpboot/ 目录下,创建子目录pxelinux.cfg,在pxelinux.cfg目录下编写引导程序的配置文件default
[root@localhost tftpboot]# mkdir pxelinux.cfg
[root@localhost tftpboot]# cd pxelinux.cfg/
[root@localhost pxelinux.cfg]# vim default
default auto
prompt 1
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.10.100/centos7
[root@localhost pxelinux.cfg]# cd /var/ftp/
[root@localhost ftp]# mkdir centos7
[root@localhost ftp]# mount /dev/sr0 centos7/
6.关闭防火墙,重启服务
[root@localhost ftp]# systemctl stop firewalld.service
[root@localhost ftp]# setenforce 0
[root@localhost ftp]# systemctl start dhcpd
[root@localhost ftp]# systemctl start tftp
[root@localhost ftp]# systemctl start vsftpd
[root@localhost ftp]# export DISPLAY=192.168.10.1:0.0
7.安装kick并运行
[root@localhost ftp]# yum install system-config-kickstart.noarch
[root@localhost ftp]# system-config-kickstart
按照下图设置
8.修改配置文件
[root@localhost ftp]# vim /var/lib/tftpboot/pxelinux.cfg/default
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.10.100/centos7 ks=ftp://192.168.10.100/ks.cfg
9.新建虚拟机,设置为仅主机模式后开启
如下界面说明成功,之后等安装完成即可
实验成功