摘要:在实际工作中,我们经常会遇到这样的情况:想要安装Linux但是计算机不带光驱或软驱,或者是笔记本配置的非标准的软驱和光驱,如1394接口,USB接口等,在Linux安装时所引导的Linux内核一般都不会带这些接口的驱动,所以也无法通过本地安装Linux,此外,在一些场合,如机房,IT实验室,工厂生产线,有大量的计算机需要同时安装Linux,如果通过光驱的方式一个个安装,不仅效率低,也不利于维护。这是时候你就需要PXE的强大功能了。本文将就PXE的基本原理和工作方式进行简要介绍。具体的时间过程需要比较丰富的网络知识。
本文来源:http://blog.csdn.net/trochiluses/article/details/11736119
通用流程:首先,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.1安装流程
实战环境;centos 6.3,kernel 2.6.32
3.1安装前的准备:
软硬件配置:网卡要支持pxe启动,操作系统也要支持pxe启动,另外有ftp服务器用于存储操作系统的安装文件,dhcp服务器用于分配ip
3.2服务器配置
1)配置dhcp服务器
在网络协议中,TFTP协议大家应该是比较了解的。那么今天我们则重点讲解一下关于配置tftp服务器的内容。TFTP(Trivial File Transfer Protocol简朴文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。TFTP承载在UDP上,提供不可靠的数据流传输服务,不提供存取授权与认证机制,使用超时重传方式来保证数据的到达。与FTP相比,TFTP的大小要小的多,TFTP是用来下载远程文件的最简单网络协议,它基于UDP协议而实现。它使用的是UDP的69端口 。
配置tftp服务器1、检查系统是否安装tftp服务
- [root@wk ~]# rpm -qa | grep tftp
- tftp-0.42-3.1.el5.centos
- tftp-server-0.42-3.1.el5.centos
假如没有安装可以挂载CentOS5.2光盘安装
- [root@wk ~]# mount -t auto /dev/cdrom /mnt/cdrom
- mount: block device /dev/cdrom is write-protected mounting read-only
- [root@wk ~]# cd /mnt/cdrom/CentOS
- [root@wk CentOS]# rpm -ivh tftp-0.42-3.1.el5.centos.i386.rpm
- [root@wk CentOS]# rpm -ivh tftp-server-0.42-3.1.el5.centos.i386.rpm
配置tftp服务器2、修改启动配置文件
默认情况下TFTP服务是禁用的,所以要修改文件来开启服务。
修改文件/etc/xinetd.d/tftp。主要是设置TFTP服务器的根目录,开启服务。
修改后的配置文件如下:
- service tftp
- {
- disable = yes 把这里的yes改为no
- socket_type = dgram
- protocol = udp
- wait = yes
- user = root
- server = /usr/sbin/in.tftpd
- server_args = -s /tftpboot -c
- per_source = 11
- cps = 100 2
- flags = IPv4
- }
这里指定/tftpboot 为tftp服务器的根目录
参数-s指定chroot,-c指定了可以创立文件。
配置tftp服务器3、创立tftp根目录,关闭防火墙,启动tftp-server
- [root@wk ~]# mkdir /tftpboot
- [root@wk ~]# chmod -R 777 /tftpboot
- [root@wk ~]# /etc/init.d/iptables stop
- [root@wk ~]# service xinetd restart
重启xinetd服务,因为TFTP服务受控与xinetd服务,xinetd是管服务的服务,它是不开端口的。
所以要验证一下TFTP是否开启69端口起来了:
- [root@wk ~]# netstat -nlp
- udp 0 0 0.0.0.0:67 0.0.0.0:* 5172/dnsmasq
- udp 0 0 0.0.0.0:67 0.0.0.0:* 4745/dhcpd
- udp 0 0 0.0.0.0:69 0.0.0.0:* 6171/xinetd
- udp 0 0 0.0.0.0:994 0.0.0.0:* 4633/rpc.rquotad
配置tftp服务器4、测试tftp服务器
- [root@wk ~]# tftp 192.168.0.110
- tftp>get
- tftp>put
- tftp>q
default linux
prompt 1
timeout 30
label linux
kernel vmlinuz
append ks=ftp://192.168.122.1/centos6.3/ksftpsimple.cfg,initrd=initrd.img
这个Default 文件很容易看懂,就是告诉启动后使用那个内核引导,使用的配置文件在什么地方。
3.5开始安装
1)确保:服务器端刚才配置的几个服务都处于开启状态;关闭防火墙;bios中选择从网络启动
2)剩下的步骤和从硬盘安装相同