无盘安装linux,PXE实现无人值守无盘批量安装CentOS 6

PXE(Pre-boot Execution

Environment)是由Intel设计的协议,它可以使计算机通过网络启动。协议分为client和server两端,PXE

client在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择后,PXE

client将放置在远端的操作系统通过网络下载到本地运行。

工作过程

第一步:PXE Client向DHCP发送请求

首先,将支持PXE的网络接口卡(NIC)的客户端的BIOS设置成为网络启动,通过PXE

BootROM(自启动芯片)会以UDP(简单用户数据报协议)发送一个广播请求,向网络中的DHCP服务器索取IP地址等信息。

第二步:DHCP服务器提供信息

DHCP服务器收到客户端的请求,验证是否来至合法的PXE

Client的请求,验证通过它将给客户端一个“提供”响应,这个“提供”响应中包含了为客户端分配的IP地址、pxelinux启动程序(TFTP)位置,以及配置文件所在位置。

第三步:PXE客户端请求下载启动文件

客户端收到服务器的“回应”后,会回应一个帧,以请求传送启动所需文件。这些启动文件包括:pxelinux.0、pxelinux.cfg/default、vmlinuz、initrd.img,boot.msg,vesamenu.c32等文件。

第四步:Boot Server响应客户端请求并传送文件

当服务器收到客户端的请求后,他们之间之后将有更多的信息在客户端与服务器之间作应答, 用以决定启动参数。BootROM 由 TFTP

通讯协议从Boot

Server下载启动安装程序所必须的文件(pxelinux.0、pxelinux.cfg/default,boot.msg,vesamenu.c32)文件下载完成后,会根据该文件中定义的引导顺序,启动Linux安装程序的引导内核。

第五步:请求下载自动应答文件

客户端通过pxelinux.cfg/default文件成功的引导Linux安装内核后,安装程序首先必须确定你通过什么安装介质来安装linux,如果是通过网络安装(NFS,

FTP,

HTTP),则会在这个时候初始化网络,并定位安装源位置。或许你会说,刚才PXE不是已经获取过IP地址了吗?为什么现在还需要一次?这是由于PXE获取的是安装用的内核以及安装程序等,而安装程序要获取的是安装系统所需的二进制包以及配置文件。由于它们需要的内容不同造成PXE模块和安装程序是相对独立的,PXE的网络配置并不能传递给安装程序。从而进行两次获取IP地址过程。

接着会读取该文件中指定的自动应答文件ks.cfg所在位置,根据该位置请求下载该文件。

第六步:客户端安装操作系统

将ks.cfg文件下载回来后,通过该文件找到OS

Server,并按照该文件的配置请求下载安装过程需要的软件包。

OS

Server和客户端建立连接后,将开始传输软件包,客户端将开始安装操作系统。安装完成后,将提示重新引导计算机。这个时候注意,在重新引导的过程中一定要将BIOS修改回从硬盘启动,不然的话又会重复的自动安装操作系统。

在上面介绍中PXE client是需要安装Linux的计算机,TFTP Server、DHCP Server和NFS

Server运行在另外一台Linux Server上。Bootstrap文件、配置文件、Linux内核都放置在Linux

Server上TFTP服务器的根目录下。而Linux根文件系统存放于NFS

Server的共享目录中。

PXE client在工作过程中,需要三个二进制文件:bootstrap、Linux

内核和Linux根文件系统。Bootstrap文件是可执行程序,它向用户提供简单的控制界面,并根据用户的选择,下载合适的Linux内核以及Linux根文件系统。

1.安装vsftp tftp dhcp

[root@bogon ~]# yum install vsftpd dhcp tftp tftp-server

system-config-kickstart

2.配置DHCP服务器

[root@bogon ~]# vim /etc/dhcp/dhcpd.conf

# DHCP Server Configuration file.

# see

/usr/share/doc/dhcp*/dhcpd.conf.sample

# see 'man 5

dhcpd.conf'

#

ddns-update-style interim;

ignore client-updates;

subnet 192.168.0.0 netmask 255.255.255.0 {

option

routers 192.168.0.1;

option

subnet-mask 255.255.255.0;

option

nis-domain "domain.org";

option

domain-name "domain.org";

option

domain-name-servers 192.168.0.1;

filename "pxelinux.0";

next-server 192.168.0.99;

option

time-offset -18000;

range

dynamic-bootp 192.168.0.100 192.168.0.254;

default-lease-time

21600;

max-lease-time

43200;

}

图pxe1

a4c26d1e5885305701be709a3d33442f.png 简单说明

next-server 192.168.0.99; #TFTP Server的IP地址

filename "pxelinux.0"; #pxelinux启动文件位置 tftp 的默认目录是 /tftpboot,所以文件的绝对路径就是:

/tftpboot/pxelinux.0";

[root@bogon ~]# vim /etc/sysconfig/dhcpd

# Command line options here

DHCPDARGS="eth0"

3.配置tftp

tftp 服务由xinetd服务管理。编辑 '''/etc/xinetd.d/tftp''' 文件,将 '''disable =

yes''' 改为:disable = no。

[root@bogon ~]# vim /etc/xinetd.d/tftp

# default: off

# description: The tftp server serves files using the trivial file

transfer \

# protocol. The

tftp protocol is often used to boot diskless \

# workstations, download configuration files to

network-aware printers, \

# and to start the installation process for some

operating systems.

service tftp

{

socket_type =

dgram

protocol =

udp

wait =

yes

user =

root

server =

/usr/sbin/in.tftpd

server_args = -s

/tftpboot

disable =

no

per_source =

11

cps = 100

2

flags =

IPv4

}

图pxe2

a4c26d1e5885305701be709a3d33442f.png 注意的的是server_args= -s

/tftpboot这一行,它的含义是将/tftpboot作为root目录,这样在dhcpd.conf中的filename一行就应该写bootstrap的相对路径:

filename “pxelinux.0”.如果你去掉了-s这个参数,那幺就要在filename一行指出bootstrap的绝对路径:

filename “/tftpboot/pxelinux.0”.

挂载光盘,提取光盘镜像里的文件

[root@bogon ~]# mount /dev/cdrom /mnt

[root@bogon ~]# mkdir -pv /tftpboot/pxelinux.cfg

[root@bogon ~]# cp /usr/share/syslinux/pxelinux.0

/tftpboot/

[root@bogon ~]# cp /mnt/images/pxeboot/vmlinuz

/tftpboot/

[root@bogon ~]# cp /mnt/images/pxeboot/initrd.img

/tftpboot/

[root@bogon ~]# cp /mnt/images/pxeboot/boot.msg

/tftpboot/

[root@bogon ~]# cp /mnt/images/pxeboot/vesamenu.c32

/tftpboot/

[root@bogon ~]# cp /mnt/isolinux/isolinux.cfg

/tftpboot/pxelinux.cfg/default

[root@bogon ~]# vim /tftpboot/pxelinux.cfg/default

timeout 6

label linux

menu label ^Install or upgrade

an existing system

menu default

kernel vmlinuz

append

ks=ftp://192.168.0.99/pub/ks.cfg ksdevice=eth0

initrd=initrd.img

图pxe3

a4c26d1e5885305701be709a3d33442f.png 4.配置ftp

ftp默认的配置已经足够使用, 允许匿名访问 ftp主目录在/var/ftp/pub

只需要将系统盘里的安装文件都复制到默认目录就可以了

[root@bogon ~]# cp -r /mnt/ /var/ftp/pub/

5.配置kickstart

需要在图形界面下配置kickstart,通常,我们在安装操作系统的过程需要大量的人机交互过程,为了减少交互过程提高安装效率 Linux

支持一个称为 kickstart

的功能。使用这种方法,只需事先定义好一个Kickstart自动应答配置文件(通常存放在安装服务器上),并让安装程序知道该配置文件的位置,在安装过程中安装程序就可以自己从该文件中读取安装配置,这样就避免了繁琐的人机交互,实现无人值守的自动化安装。

[root@bogon ~]# system-config-kickstart

下面是我的配置文件, 其实你完全可以直接拿来使用,更改为你的ftp服务器ip即可

root 密码是123456

[root@bogon ~]# vim /var/ftp/pub/ks.cfg

#platform=x86, AMD64, or Intel EM64T

#version=DEVEL

# Firewall configuration

firewall --disabled

# Install OS instead of upgrade

install

# Use network installation

url --url="ftp://192.168.0.99/pub"

# Root password

rootpw --iscrypted

$1$TpZ7Gjrt$LtO3xcH4OFR7Fq2QqwJGO/

# System authorization information

auth --useshadow --passalgo=sha512

# Use text mode install

text

firstboot --disable

# System keyboard

keyboard us

# System language

lang en_US

# SELinux configuration

selinux --enforcing

# Installation logging level

logging --level=info

# Reboot after installation

reboot

# System timezone

timezone Asia/Shanghai

# Network information

network --bootproto=dhcp

--device=eth0 --onboot=on

# System bootloader configuration

bootloader --location=mbr

# Partition clearing information

clearpart --all --initlabel

# Disk partitioning information

part /boot --fstype="ext4" --size=200

part swap --fstype="swap" --size=2048

part / --fstype="ext4" --size=10240

%packages

@basic-desktop

%end

图pxe4

a4c26d1e5885305701be709a3d33442f.png 6.配置固定ip, 一定要和dhcp配置的在同一个域, 不然dhcp会启动错误的。

ip 192.168.0.99 netmask

255.255.255.0

图pxe5

a4c26d1e5885305701be709a3d33442f.png 7.关闭防火墙, 关闭Selinux

[root@bogon ~]# service iptables stop

[root@bogon ~]# setenforce 0

8.启动服务

[root@bogon ~]# /etc/init.d/dhcpd restart

[root@bogon ~]# /etc/init.d/vsftpd restart

[root@bogon ~]# /etc/init.d/xinetd restart

9.测试

客户机只需设置BIOS从网络启动即可,开机后可以看到它将按预计引导进入安装画面,此时和用光驱从本地安装的画面是一样的.

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png 2013-5-3 19:57 上传

下载附件 (177.43

KB)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值