启动 操作 系统
1.硬盘
2.光驱(u盘)
3.网络启动 pxe
重装系统?
在已有操作系统
新到货了一台服务器,
装操作系统
系统镜像 u盘 光盘
pe: 小型的 操作系统 在操作系统 再装操作系统
pxe
加载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 的全称是 preboot execute environment它其实是Intel在很久以前提出来的一项用于通过网络来引导系统的标准。允许客户机通过网络从远程服务器上下载引导镜像,并加载安装文件或者整个操作系统。
pxe是通过网卡引导启动
1.1实现的硬件条件
1.BIOS支持
2.网卡支持(现在基本都已支持)
3.需要在bios中开启开关,服务器一般没打开(bmc界面里打开)
4.网络中有一台 DHCP 服务器以便为客户机自动分配地址、指定引导文件位置 ? ?网卡自带DHCP功能 ? ?dhcp 指明分配的ip地址 ?
vsftpd ? tftp
5.服务器通过 tftp服务(简单文件传输协议)来提供系统内核和引导镜像的下载 udp()协议 网卡自带这个功能(不支持其他的远程共享服务)
1.网卡需要查找相关的dhcp服务器(获取地址时间)
2.找到后dhcp服务器提供ip地址,和引导程序(boot loader)的地址 还提供给客户机TFTPserver地址(dhcp本身不提供tftp服务)
3.网卡使用tftp客户端吧引导程序加载到内存中来
4.bios执行引导程序
5.引导程序会去TFTP去查找配置文件
6.根据配置文件去引导安装系统
7.系统安装过程
PXE 远程安装服务器集成了 CentOS 7 安装源、TFTP 服务、DHCP 服务,能 够向客户机裸机发送 PXE 引导程序、Linux 内核、启动菜单等数据,以及提供安装文件。
TFTP(简单文件传输协议):内核和引导文件
是一种基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小型文件传输的应用场合。TFTP服务默认由xinetd服务进行管理,使用UDP69端口。
可以使用http ftp等方式,ftp文件传输的一种。
syslinux是一个功能强大的引导加载程序,而且兼容各种介质。它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。它的安装很简单,一旦安装syslinux好之后,sysLinux启动盘就可以引导各种基于DOS的工具,以及MS-DOS/Windows或者任何其它操作系统。
pxelinux.0 启动pxe pxe可以支持
1.规模化:同时装配多台服务器
2.自动化:安装系统、配置各种服务
3.远程实现:不需要光盘、U盘等安装介质
systemctl? stop firewalld
setenforce? 0
#关闭防火墙和核心防护
yum install tftp-server ? vsftpd ? syslinux ?dhcp ? -y?
#安装软件
cat ?/etc/dhcp/dhcpd.conf
#dhcp的配置文件
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
#将配置文件模板复制到dhcp目录下
vim /etc/dhcp/dhcpd.conf
#编辑dhcp配置文件
systemctl start dhcpd
#开启dhcp服务
vim ?/etc/xinetd.d/tftp
#编辑tftp服务的配置服务
cd ?/var/lib/tftpboot
#切到tftp的主目录下
mount ?/dev/sr0 ?/mnt
#挂载到mnt下
cp ?/mnt/isolinux/initrd.img ? ?.
#拷贝镜像文件到tftpboot下
cp ?/mnt/isolinux/vmlinuz ? ?.
#拷贝内核文件到tftpboot下
rpm ?-ql ?syslinux | grep pxelinux.0
#查找syslinux中的pxelinux.0的文件
cp /usr/share/syslinux/pxelinux.0? ? ? ? ? .
#将syslinux中的pxelinux.0文件复制到当前目录下
mkdir pxelinux.cfg
#创建文件夹
vim pxelinux.cfg/default
#创建default文件
mkdir ?/var/ftp/centos7
#新建文件夹
mount /dev/sr0 ?/var/ftp/centos7
#挂载
systemctl start tftp.socket
#开启tftp服务
systemctl start vsftpd
#开启ftp服务
yum ?install ?system-config-kickstart.noarch ?-y
#安装图形化工具
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
[root@centos7 ~]#yum install epel-release.noarch -y
[root@centos7 ~]#yum install cobbler dhcp httpd ? -y
[root@centos7 ~]#systemctl enable --now cobblerd httpd tftp dhcpd
[root@centos7 ~]#cobbler check
?openssl passwd -1 '123123'
#生成一个密钥文件
vim /etc/cobbler/settings?
$1$cWzI./u.$uoGgVITPzCR1NbSYCbn/t.
#修改主配置文件
?
?
?
vim /etc/cobbler/dhcp.template
#dhcp的配置模板
?
mount? ?/dev/sr0? /mnt
#挂载
cobbler import --name=centos-7-x86_64 --path=/mnt --arch=x86_64
#把镜像文件拷贝到固定目录下
du -sh /var/www/cobbler/ks_mirror/*
#拷贝到了这边,输入命令可以看到
?
在新建的无配置过的虚拟机里,重新启动,检验实验有没成功?