如何使用Linux PXE搭建网络安装系统? (linux pxe 搭建)

随着计算机网络技术的不断发展和应用,许多公司和个人都选择使用网络安装系统来完成系统的部署和升级。与传统的光盘或U盘安装相比,网络安装无需人工逐一安装操作系统,可以实现自动化、无人值守安装,从而缩短安装时间,提高工作效率。本文介绍如何使用Linux PXE搭建网络安装系统。

一、什么是PXE?

PXE是Pre-boot Execution Environment的缩写,即预启动执行环境。它是由Intel公司根据网络上BOOTP协议和TFTP协议设计的一种网络启动方式,可以不依赖操作系统而引导客户端电脑,实现无盘计算机的网络启动和自动安装。

二、PXE的原理

PXE的工作原理可以分为三个步骤:

1.客户端电脑通过网络请求服务器分配IP地址(DHCP)

2.服务器通过TFTP服务器向客户端传输PXE启动文件(pxelinux.0)

3.客户端电脑启动并自动执行PXE启动文件

在这个过程中,DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)扮演着非常重要的角色,它为客户端分配IP、子网掩码、网关等信息,让客户端能够连接到网络。而TFTP(Trivial File Transfer Protocol,简单文件传输协议)则用于传输PXE启动文件pxelinux.0,这个文件是PXE启动的核心文件,当客户端电脑启动时,会自动执行该文件,并从中获取系统的安装和配置信息。此外,还需要在TFTP服务器上放置操作系统的ISO镜像文件和相应的配置文件。

三、搭建PXE服务器

1.安装DHCP服务器

在CentOS中安装DHCP服务器的命令为:

“`

yum install dhcp

“`

2.配置DHCP服务器

编辑文件/etc/dhcp/dhcpd.conf,设置DHCP服务器的参数,添加如下内容:

“`

subnet 192.168.0.0 netmask 255.255.255.0 {

range 192.168.0.100 192.168.0.120;

option subnet-mask 255.255.255.0;

option routers 192.168.0.1;

option broadcast-address 192.168.0.255;

default-lease-time 600;

max-lease-time 7200;

next-server 192.168.0.2;

filename “pxelinux.0”;

}

“`

其中,subnet、range、option等参数请根据实际网络配置进行修改。

3.安装TFTP服务器

在CentOS中安装TFTP服务器的命令为:

“`

yum install tftp

“`

4.配置TFTP服务器

编辑文件/etc/xinetd.d/tftp,设置TFTP服务器的参数,添加如下内容:

“`

service tftp

{

socket_type = dgram

protocol = udp

wt = yes

user = root

server = /usr/in/in.tftpd

server_args = -s /tftpboot

disable = no

}

“`

其中,server_args参数指定TFTP服务器的工作目录为/tftpboot,这个目录需要手动创建,并将PXE启动文件pxelinux.0上传到该目录下。

5.准备ISO镜像文件

需要将需要安装的操作系统的ISO镜像文件上传到服务器上,并解压到合适的目录下。

6.配置PXE启动文件

在服务器的/tftboot目录中,创建一个名为pxelinux.cfg的子目录。再在该子目录中创建一个名为default的文件,用来指定PXE启动文件的参数。

例如,如果要安装CentOS 7操作系统,可以在default文件中添加如下内容:

“`

default menu.c32

prompt 0

timeout 300

label CentOS 7.4

kernel images/CentOS7/vmlinuz

append initrd=images/CentOS7/initrd.img

netmedia=eth0 ksdevice=eth0 ks=http://192.168.0.2/ks.cfg

“`

其中,menu.c32是PXE启动文件的执行程序,CentOS 7.4是菜单中显示的选项名称,images/CentOS7/vmlinuz和images/CentOS7/initrd.img是指定内核和initrd文件的文件路径,netmedia=eth0 ksdevice=eth0 ks=http://192.168.0.2/ks.cfg是传递给内核的安装参数,需要按照实际情况进行修改。

7.准备KickStart文件

KickStart文件是用来自动化安装系统的配置文件。需要在服务器中准备一个KickStart文件,存放在一个合适的目录下,并在default文件中指定KickStart的路径。

例如,在服务器中创建一个名为ks.cfg的文件,将其放置在/var/www/html目录下,在defualt文件中添加如下内容:

“`

default menu.c32

prompt 0

timeout 300

label CentOS 7.4

kernel images/CentOS7/vmlinuz

append initrd=images/CentOS7/initrd.img

netmedia=eth0 ksdevice=eth0 ks=http://192.168.0.2/ks.cfg

“`

其中,“initrd=images/CentOS7/initrd.img netmedia=eth0 ksdevice=eth0 ks=http://192.168.0.2/ks.cfg”是指定内核要使用的参数,并告诉安装程序KickStart文件的路径,注意根据实际情况修改。

四、客户端设置

在客户端电脑上,需要打开网卡的PXE启动功能。具体操作方式请参考电脑的说明书。

五、启动网络安装

现在可以启动客户端电脑,并选择PXE网络启动,如果配置正确,客户端电脑将会获取到DHCP服务器分配的IP地址,并执行TFTP服务器上的PXE启动文件pxelinux.0。然后,在PXE菜单中选择要安装的操作系统,系统将会自动使用KickStart文件进行自动化安装。

六、

使用PXE搭建网络安装系统可以大大简化系统安装的过程,提高工作效率。在实际使用中,需要注意配置文件的正确性,以及ISO镜像文件、KickStart文件等的正确存放位置。希望本文能够帮助到正在学习和使用PXE的读者。

相关问题拓展阅读:

谁知道用LINUX做网吧服务器的无盘系统怎么做?

可选用网众无盘,网众的服务器是以LINUX为核心的

客户端是支持PXE方式启动的刀片,用Linux作为服务器,服务器配置如下:

1) 安装DHCP服务器dhcpd

2) 配置/etc/dhcpd.conf文件,下面是我机器上的文件

max-lease-time -1;

default-lease-time -1; #注世握:IP地址永不过期

option subnet-mask 255.0.0.0;

option routers 10.0.0.1;

option domain-name-servers 10.10.10.10;

# option netbios-name-servers 10.10.10.10;

option broadcast-address 10.255.255.255;

# option dhcp-class-identifier “XEClient”;

# option vendor-encapsulated-options 01:04:00:00:00:00:ff;

# option option-135 “start”;

subnet 10.0.0.0 netmask 255.0.0.0 {

range 10.10.12.131 10.10.12.150;

host blade01 {

hardware ethernet 00:e0:43:00:02:00;

fixed-address 10.10.12.131;

filename “/tftpboot/pxelinux.0”; #注:启动映象文件

}

host blade02 {

hardware ethernet 00:e0:43:00:02:02;

fixed-address 10.10.12.132;

filename “/帆慧tftpboot/pxelinux.0”;

}

host blade03 {

hardware ethernet 00:e0:43:00:02:04;

fixed-address 10.10.12.133;

filename “/tftpboot/pxelinux.0”;

}

host blade04 {

hardware ethernet 00:e0:43:00:02:06;

fixed-address 10.10.12.134;

filename “/tftpboot/pxelinux.0”;

}

host blade05 {

hardware ethernet 00:e0:43:00:02:08;

fixed-address 10.10.12.135;

filename “/tftpboot/pxelinux.0”;

}

}

  说明:dhcp客户得到IP地址后用TFTP协议从服务器上下载启动映象文件。我用syslinux

  工具包里边的pxelinux来作为远程启动的loder.

3) 配置tftp server

  使用pxelinux作引导工具需要支持TSIZE参数的tftp server。可从

下载。

  通过xinetd来使用tftp服务,我的/etc/xinetd.conf文件如下

……

service tftp

{

socket_type = dgram

protocol = udp

wait = yes

user = root

server = /usr/in/in.tftpd

}

4) 配置PXELINUX

  先安装syslinux软件包。可从

下载。

  将pxelinux.0拷贝到/tftpboot/目录下,然后建立/tftpboot/syslinux.cfg/目录。该目录下存放配置文件。

  pxelinux使用ip地址的十六进制表示来搜轿庆作为该ip地址的配置文件的文件名。如blade01的

  ip地址为10.10.12.131,配置文件名为0A0A0C83,内容为:

default linux

label linux

kernel vmlinuz

append ip=dhcp root=/dev/nfsroot nfsroot=10.10.11.120:/remote/blade01 vga=normal

5) 配置nfs

  为每个刀片建立一个根目录,在该刀片的pxelinux配置文件里指定了从这个nfs export的目录启动。

  该根目录里应把标准的目录都建好,另外需要重新mount的usr, home, public等目录也要export。

  我的 /etc/exports文件:

# /etc/exports: the access control list for filesystems which may be exported

# to NFS clients. See exports(5).

/remote/blade01 blade01(rw,async,no_root_squash)

/remote/blade02 blade02(rw,async,no_root_squash)

/remote/blade03 blade03(rw,async,no_root_squash)

/remote/blade04 blade04(rw,async,no_root_squash)

/remote/blade05 blade05(rw,async,no_root_squash)

/remote/root *(rw,async,no_root_squash)

/remote/home *(rw,async,no_root_squash)

/usr *(ro,async,no_root_squash)

/in *(ro,async,no_root_squash)

/bin *(ro,async,no_root_squash)

/lib *(ro,async,no_root_squash)

/home *(ro,async,no_root_squash)

6)为每个刀片修改它的/etc/fstab文件,以blade01为例,它的nfs root是/remote/blade01

/remote/blade01/etc/fstab文件如下:

# /etc/fstab: static file system information.

#

#

10.10.11.120:/remote/blade01 / nfs defaults,intr 0 1

10.10.11.120:/remote/root /root nfs defaults,intr 0 1

10.10.11.120:/remote/home /home nfs defaults,intr 0 1

10.10.11.120:/bin /bin nfs defaults,intr 0 1

10.10.11.120:/usr /usr nfs defaults,intr 0 1

10.10.11.120:/in /in nfs defaults,intr 0 1

10.10.11.120:/lib /lib nfs defaults,intr 0 1

none /proc proc defaults,intr 0 1

  同时还要为每个刀片修改它的网络配置文件,配置ip地址,启动两块网卡等等。。

7) 编译内核

  刀片用的内核,应该支持Kernel Level Auto Configuration的DHCP协议,支持NFS,支持NFS ROOT,

  假设编译好的内核为vmlinuz,将它拷贝到/tftpboot/目录下。

通过pxe启动安装linux系统可以同时安装多个linux版本吗?

1. pxe启动厅册时会选择菜单的,可以在菜单里面选择安装不同的操作系统

2. pxe可以针对不同雀郑机器的mac地址创建启动脚本,机器启动时,pxe会先按mac地址查找启动脚本,如果没找到才使用默认的启动脚本。这个扮岁宏你可看下syslinux文档。

可以,孙晌你在设置/tftpboot目录时会复制的引导文件,将不同的引导文件改名文自己系统版本,例如centos的initrd.img你可以改为:initrd.centos.img。但是在pxelinux.cfg的目录文件中要带凯岩加入引导向,并将修改后的文件添加,相对应的其余的类似修改。pxelinux.0这个文件可以是蠢御一样的。我就做成功了的。

可以的 做个判断 没有shell做不了的事情

linux pxe 搭建的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux pxe 搭建,如何使用Linux PXE搭建网络安装系统?,谁知道用LINUX做网吧服务器的无盘系统怎么做?,通过pxe启动安装linux系统可以同时安装多个linux版本吗?的信息别忘了在本站进行查找喔。


数据运维技术 » 如何使用Linux PXE搭建网络安装系统? (linux pxe 搭建)