vmware下通过PXE测试安装centos

一般的系统安装方法是通过U盘,光盘,本机安装,方便个人使用,而在没有U盘,无光驱无软驱时或者是在实验室等要安装大量电脑时就显得费劲了。这时候通过网卡安装系统就很有必要了。

先介绍基本原理有利于之后的测试安装,下图是从网上拉下来的,可以帮助理解安装的框架。

vmware下通过PXE测试安装centos_第1张图片

什么是PXE  

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

在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行。  PXE协议的成功运行需要解决以下两个问题:  既然是通过网络传输,那么计算机在启动时,它的IP地址由谁来配置;  

通过什么协议下载Linux内核和根文件系统  

对于第一个问题,可以通过DHCP Server解决,由DHCP server来给PXE client分配一个IP地址,DHCP Server是用来给DHCP Client动态分配IP地址的协议,不过由于这里是给PXE Client分配IP地址,所以在配置DHCP Server时,需要增加相应的PXE特有配置。  至于第二个问题,在PXE client所在的ROM中,已经存在了TFTP Client。PXE Client使用TFTP Client,通过TFTP协议到TFTP Server上下载所需的文件。  这样,PXE协议运行的条件就具备了,下面我们就来看看PXE协议的工作过程。  

工作过程  

PXE client是需要安装Linux的计算机,TFTP Server和DHCP Server运行在另外一台Linux Server上。Bootstrap文件、配置文件、Linux内核以及Linux根文件系统都放置在Linux Server上TFTP服务器的根目录下。  

PXE client在工作过程中,需要三个二进制文件:bootstrap、Linux 内核和Linux根文件系统。Bootstrap文件是可执行程序,它向用户提供简单的控制界面,并根据用户的选择,下载合适的Linux内核以及Linux根文件系统。

测试环境

VMware Workstation10 下运行的CentOS6.5作为安装服务器。

将要在虚拟机下安装的系统也是CentOS6.5

步骤

一、#mkdir /nfsroot   用于存放iso镜像文件,镜像可自行下载 wget http://mirrors.163.com/centos/6.5/isos/x86_64/CentOS-6.5-x86_64-bin-DVD1.iso

二、安装服务器的配置

安装服务器只有一块NAT方式的网卡、通过VMware虚拟DHCP分配IP地址。

#  ifconfig

eth0   Link encap:Ethernet  HWaddr 00:0C:29:5D:B7:17 

          inet addr:192.168.153.128  Bcast:192.168.153.255  Mask:255.255.255.0

          inet6 addr: fe80::20c:29ff:fe5d:b717/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:3137 errors:0 dropped:0 overruns:0 frame:0

          TX packets:3747 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:1092166 (1.0 MiB)  TX bytes:699662 (683.2 KiB)

           

# cat /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=dhcp

HWADDR=00:0c:29:5d:b7:17

IPV6INIT=yes

NM_CONTROLLED=yes

ONBOOT=yes

TYPE=Ethernet

UUID="d81c71dc-782b-47ce-9cb1-fb3a1a07bf0d"

USERCTL=no

PEERDNS=yes

 安装dhcp服务:

#yum install dhcp

修改配置文件:

#vi /etc/dhcp/dhcp.conf

添加如下内容:

ddns-update-style interim;

ignore client-updates;

allow booting;

allow bootp;

class "pxeclients"{

match if substring(option vendor-class-identifier,0,9) = "PXEClient";

filename "CentOS/pxelinux.0";

next-server 192.168.153.128;                                      #服务器IP地址

}

subnet 192.168.153.0 netmask 255.255.255.0 {

option routers 192.168.153.1;

option subnet-mask 255.255.255.0;

option time-offset -18000; # Eastern Standard Time

range dynamic-bootp 192.168.153.100 192.168.153.200;          #通过dhcp给客户机分配的地址域

default-lease-time 216000;

max-lease-time 432000;

}

#service dhcpd start

如果启动失败,可以看一下系统日志,查找原因

# cat /var/log/messages

安装tftp服务器:

#yum install tftp-server

修改tftp服务器的配置, 将disable= yes改为disable=no

tftp服务器的根目录为/var/lib/tftpboot,yum安装时会自动创建

#vi /etc/xinetd.d/tftp

service tftp

{

        socket_type             = dgram

        protocol                = udp

        wait                    = yes

        user                    = root

        server                  = /usr/sbin/in.tftpd

        server_args             = -s /var/lib/tftpboot

        disable                 = no

        per_source              = 11

        cps                     = 100 2

        flags                   = IPv4

}

启动xinetd服务

# service rpcbind start

Starting rpcbind:                                          [  OK  ]

关闭iptables服务:

# service iptables stop

可以新建一个空的虚拟机不设置光盘启动,测试是否自动启动PXE安装了。下图可看到虚拟机已经从DHCP服务器获取IP地址


安装nfs服务器:

#yum install nfs-utils

配置nfs目录

# vi/etc/exports
/nfsroot *(rw,wdelay,crossmnt,insecure,root_squash,no_subtree_check,fsid=0)

使配置生效

#exportfs -a

# exportfs -v
/nfsroot 
       <world>(rw,wdelay,crossmnt,insecure,root_squash,no_subtree_check,fsid=0)

启动nfs服务,

# service nfs start

如果出现错误提示,可能使rpcbind服务未启动,要先启动rpcbind服务。

# service rpcbind start

Starting rpcbind:                                          [  OK  ]

# chkconfig rpcbind on

# service nfs start

Starting NFS services:                                     [  OK  ]

Starting NFS quotas:                                       [  OK  ]

Starting NFS mountd:                                       [  OK  ]

Starting NFS daemon:                                       [  OK  ]

Starting RPC idmapd:                                       [  OK  ]

在/var/lib/tftpboot目录中配置PXE启动需要的文件:

1) 创建目录/var/lib/tftpboot/CentOS,CentOS和/etc/dhcp/dhcpd.conf一致

2) 创建目录/var/lib/tftpboot/CentOS/pxelinux.cfg

2) 把安装光盘isolinux/isolinux.cfg复制并重命名为/var/lib/tftpboot/CentOS/pxelinux.cfg/default

下载http://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-5.10.tar.gz, 解压

    将syslinux-5.10/目录下面的几个文件复制到/var/lib/tftpboot/CentOS目录下

     syslinux-5.10/bios/core/pxelinux.0

     syslinux-5.10/com32/elflink/ldlinux/ldlinux.c32

     syslinux-5.10/com32/lib/libcom32.c32

     syslinux-5.10/com32/libutil/libutil.c32

     syslinux-5.10/com32/menu/vesamenu.c32

     syslinux-5.10/com32/mboot/mboot.c32

从安装光盘复制文件到/var/lib/tftpboot/目录

cp /mnt/isolinux/initrd.img /mnt/isolinux/vmlinuz /mnt/isolinux/splash.jpg /var/lib/tftpboot/CentOS/

将安装光盘里的images目录复制到nfs目录下

# cp -pr /mnt/images/ /nfsroot/

将CentOS的镜像文件复制到nfs目录下,安装系统时会自动查找这个iso文件,不必指定文件名。

#cp CentOS-6.5-x86_64-bin-DVD1.iso /nfsroot/

开启空虚拟机安装系统时

vmware下通过PXE测试安装centos_第2张图片

提示错误:vesamenu.c32: Not a COM32R image

修改syslinux引导出错,提示vesamenu.c32 NOT a COM32R IMAGE

此时虽然通过输入linux命令,可以引导启动linux维护系统。

但是要进windows维护系统就不知道怎么办了。

据说是高版本的syslinux不支持低版本的菜单文件。

网上找了一个低版本的VESAMENU.C32文件,替换掉原文件即可。

pxelinux.0 下载链接: http://download.csdn.net/detail/ncjobs2dick/8173137

vesamenu.c32 下载链接:http://download.csdn.net/detail/ncjobs2dick/8173123

vmware下通过PXE测试安装centos_第3张图片

vmware下通过PXE测试安装centos_第4张图片vmware下通过PXE测试安装centos_第5张图片

之后就是正常的系统安装了。


参考网址:

http://www.chinaunix.net/old_jh/4/281547.html

http://blog.sina.com.cn/s/blog_71d9aee40101pc0r.html

https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/s1-netboot-pxe-config.html




















你可能感兴趣的:(vmware,linux,centos,syslinux,pxe)