pxe网络安装操作系统 原理与详细过程

 1.操作系统安装的流程

  通用流程:首先,bios启动,选择操作系统的启动(安装)模式(此时,内存是空白的),然后根据相关的安装模式,寻找操作系统的引导程序(不同的模式,对应不同的引导程序当然也对应着不同的引导程序存在的位置),引导程序加载文件系统初始化(initrd)程序和内核初始镜像(vmlinuz),完成操作系统安装前的初始化;接着,操作系统开始安装相关的系统和应用程序。

  硬盘安装的流程:bios启动——MBR寻找grub——grub程序读取menu.list等配置文件,找到内核启动镜像和相关初始化程序,安装(或者启动)。

  PXE(Pre-boot Execution Environment)是由Intel设计,可以使计算机通过网络启动的协议。协议分为client和server两端,PXE client在网卡的ROM中,当计算机启动时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行。

  pxe网络安装的流程:bios启动——pxe client中的程序进入内存,显示命令菜单——此程序开始寻找网络引导程序(bootstrap文件,这个文件的名字随着发行版的不同而不同,在centos中,它是pxelinux.0)——引导程序读取配置文件pxelinux.cfg,获得系统初始化的相关文件信息——系统启动,开始进行安装。

  2.pxe模式安装操作系统的原理

  2.1安装流程

  客户机从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP,并搜寻引导文件的位置

  DHCP服务器返回分给客户机IP以及bootstrap文件的放置位置(该文件一般是放在一台TFTP服务器上)

  客户机向本网络中的TFTP服务器索取bootstrap文件

  客户机取得bootstrap文件后之执行该文件

  根据bootstrap的执行结果,通过TFTP服务器加载内核和文件系统

  进入安装画面, 此时可以通过选择FTP,HTTP,NFS方式之一进行安装

  2.2流程小结

  总结就是:

  1)网卡的client              网卡rom                         寻找dhcp服务器,由/etc/dhcp.conf得到ip和引导程序所在地点

  2)有dhcp.conf(引导程序文件名)和tftp的配置(tftp跟路径,里面有引导程序和系统初始化程序),得到引导程序pxelinux启动文件的绝对路径,运行引导程序,读取启动配置文件pxelinux.cfg/default,得到操作系统初始化的两个相关文件

  3)选择安装方式

  客户端广播dhcp请求——服务器相应请求,建立链接——由dhcp和tftp配置得到ip还有引导程序所在地点——客户端下载引导程序并开始运行——引导程序读取

  2.3.相关文件位置与内容:

  dhcp配置文件/etc/dhcpd/dhcp.conf——ip管理与引导程序名称

  tftp配置文件/etc/xinetd.d/tftp——tftp根目录,和上面的引导程序名称组成完整路径

  引导程序读取的配置文件/tftpboot/pxelinux.cfg/default——启动内核其他

  3.实战过程

  实战环境;centos 6.3,kernel 2.6.32

  3.1安装前的准备:

  软硬件配置:网卡要支持pxe启动,操作系统也要支持pxe启动,另外有ftp服务器用于存储操作系统的安装文件,dhcp服务器用于分配ip

3.2服务器配置

  1)配置dhcp服务器

  由于PXE客户机通常是尚未装系统的裸机,因此为了如服务器取得联系并正确下载相关引导文件,需要预先配置好DHCP服务来自动分配地址并告知引导文件的位置。


[root@localhost /]#yum -y install dhcp

[root@localhost /]#vim /etc/dhcp/dhcp.conf

ddns-update-style none;

default-lease-time 21600;

max-lease-time 43200;

option domain-name         "benet.com";

option domain-name-servers 8.8.8.8;

subnet 192.168.122.0 netmask 255.255.255.0 {

option routers 192.168.122.1;

option subnet-mask 255.255.255.0;

range 192.168.122.100 192.168.122.200;

next-server 192.168.122.1;   #指定TFTP服务器的地址

filename "pxelinux.0";     #指定PXE引导程序的文件名

}

[root@localhost /]#service dhcpd start

  注明:filename这一个选项很重要,它的作用是指明bootstrap所在的位置,一般是指向一个TFTP服务器的某个目录下。这里是相对路径,其中路径的上半部分在的一个配置文件之中。

  2)配置tftp服务器

  TFTP服务的配置文件是/etc/xinetd.d/tftp,RedHat9 默认安装已经生成了该文件


service tftp

{

disable        = no

socket_type                = dgram

protocol                = udp

wait                        = yes

user                        = root

server                        = /usr/sbin/in.tftpd

server_args        = -s /tftpboot

per_source                = 11

cps                                = 100 2

flags                        = IPv4

}

  注明:这个文件基本上不用改动,但是需要注意的的是server_args= -s /tftpboot这一行,它的含义是将/tftpboot作为root目录,这样在dhcpd.conf中的filename一行就应该写bootstrap的相对路径: filename “pxelinux.0”,这是出于安全方面考虑的.如果你去掉了-s这个参数,那幺就要在filename一行指出bootstrap的绝对路径: filename “/tftpboot/pxelinux.0”.注意,这里-s的内容会因为发行版的内容不同而不同,一般不用改动。

  3.3添加引导程序

  Bootstrap对于支持网络安装的操作系统,Bootstrap基本上都可以从安装源文件上找到,对于本例来说,centos的bootstrap就是cdrom:/isolinux/pxelinux.0我们把它们都拷贝到tftpboot下.

  3.4编辑引导配置文件

  把centos第一张安装光盘上images/pxeboot目录下的initr.img和vmlinux也考到tftpboot/目录下。在/tftpboot创建pxelinux.cfg目录,用于放isolinux的配制文件。光盘isolinux/下有一个isolinux.cfg文件,把它拷贝到/tftpboot/pxelinux.cfg/目录下并改名为default.下面为修改后的default文件:

  default linux

  prompt 1

  timeout 30

  label linux

  kernel vmlinuz

  append initrd=initrd.img

  这个Default 文件很容易看懂,就是告诉启动后使用那个内核引导

  3.5开始安装

  1)确保:服务器端刚才配置的几个服务都处于开启状态;关闭防火墙;bios中选择从网络启动

  2)剩下的步骤和从硬盘安装相同   

最新内容请见作者的GitHub页:http://qaseven.github.io/

   

时间: 2017-07-04

pxe网络安装操作系统 原理与详细过程的相关文章

网站渗透测试原理及详细过程

网站渗透测试原理及详细过程 原文地址:http://blog.csdn.net/kingmax54212008/article/details/11833059 渗透测试(Penetration Testing)目录 零.前言 一.简介 二.制定实施方案 三.具体操作过程 四.生成报告 五.测试过程中的风险及规避 参考资料 FAQ集     零.前言 渗透测试在未得到被测试方授权之前依据某些地区法律规定是违法行为. 这里我们提供的所有渗透测试方法均为(假设为)合法的评估服务,也就是通常所说的道德

pxe网络安装centos 6

PXE(preboot execute environment)是由Intel公司开发的最新技术,工作Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持来自网络的操作系统的启动过程,其启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中并执行,由这个启动软件包完成终端

XenServer 5.6环境下安装Windows Server 2012详细过程(图文)_XenServer

之前一直都是使用vmware和hyper v环境,出于学习的目的,打算尝试下citrix xenserver,首先从安装开始. 环境配置如下:Windows Server 2008 R2和XenServer 5.6服务器各一台,下文以XenServer举例,如何在虚拟机中安装Windows Server 2012.(事实上5.6安装Server2012有点问题,不过暂时不影响体验)听说Xenserver6是可以直接使用SCVMM2012进行管理的,所以作为底层的Hyper-Visor,用什么系统

asp.net 文件上传的原理、详细过程,分不够还可再加

问题描述 最近分配我一个文件上传.进度条显示的任务,我做好几天了,可是进度条一点眉目都没有呀,头疼呀.有明白文件上传的详细情况的?客户端.IIS.服务器硬盘等信息.请详细说明什么时候服务器知道文件名.大小的,什么时候开始保存文件的,等等请详细说明.我保存文件不是使用FileUpLoad.saveAs()方法.我是用的是字节数组,然后使用流保存.进度条问题:使用什么方法可以基本实现在文件开始上传时进度条开始.文件上传结束进度条结束,有源码最好,谢谢!我的文件上传模块出现问题:在上传过程中未出任何异

使用Cobbler批量安装操作系统

前言    在实际生产中,我们常常会遇到这样一种情况,就是我们需要同时安装几十甚至上百台服务器,如果我们使用U盘或者光盘的方式的话,或许老板直接就将我们辞退了.这里我们介绍一种能够实现自动化安装操作系统的方式.   我们搭建Cobbler的实验环境是基于CentOS 7.3 -1611 的基础的.   同时这个实验可以帮助你一步步的完成所有的操作,不过,如果你想自定义安装的内容的话,建议你先看本文 自定义kickstart文件 部分,以便有所印象. Cobbler 简介    Cobbler项目

利用B/S网络安装客户端实现自动分发系统的原理及方法

客户端|网络 /*Author:yekin-yu Date:10/30/2003利用B/S网络安装客户端实现自动分发系统的原理及方法本站作品版权作者所有,其他网站或媒体如要转载请署名作者和出处!*/ 一.用VC++写一个动态链接库文件如Install.dll 实现功能: 1.自动更改IE的安全级别启用未签名的ActiveX控件为安装可执行exe文件做好准备; 2.自动判断浏览者受控端是否安装了客户端安装程序: 3.自动判断浏览者的操作系统,而转向相应的客户端程序安装界面: 4.自动判断受控端的客

Oracle 9i安装后,配置和启动企业管理器的详细过程

oracle|过程 很多初学者安装Oracle后,不懂得怎么配置企业管理器,进不去,由于这类问题看得多了,现在我把详细过程写下来: 1:开始->程序->oracle->Configuration and Migration Tools->Enterprise Manager Configuration Assistant 2:配置本地oracleManagementServer->下一步->创建一个新的资料档案库->下一步->在现有的数据库中创建->输

VMware Tools (ubuntu系统)安装详细过程与使用

版权声明:本文为博主原创文章,转载注明出处http://blog.csdn.net/u013142781 前一段时间博主在VMware虚拟机上安装了Ubuntu系统,如果还没有安装的同学可以参考博主上一篇文章:VMware Ubuntu安装详细过程. 猿友们都知道linux不太好用,如果你想将你主机Windows上的文件或安装包放到虚拟机上,VMware Tools是必不可少的工具. 欢迎关注,相互学习讨论,后续还会有更多linux搭建Java开发环境和框架相关博客. 下面小宝鸽附上VMware

利用rpm包安装、配置及卸载mysql的详细过程.

利用rpm包安装.配置及卸载mysql教程的详细过程. 通过rpm包安装.配置及卸载mysql的详细过程. 以MySQL-server-4.0.14-0.i386.rpm为例,放在/data目录下 cd /data rpm -ivh MySQL-server-4.0.14-0.i386.rpm 安装完成后在/usr/share/mysql目录中会有一个mysql的启动脚本mysql.server及示例配置文件等(如my-huge.cnf.my-large.cnf.my-medium.cnf) 拷