> CentOS > CentOS教程 >

网络安装centos 6.0

Pxe+dhcp+nfs+tftp 从网络安装centos 6.0

最近给一台服务器安装操作系统,服务器光驱主板接口坏了,软驱也没有,也不支持从usb启动,快无语了…… 

在网上搜了集一些从网络安装linux的文章,经过多次尝试终于安装好了。

简单原理介绍:无光软驱服务器通过PXE网卡启动,从dhcp服务器获取IP 通过tftp 取到pxelinux配置文件,按配置文件进行启动centos文件进行引导系统安装。
这里我们需要另外的一台服务器来安装服务。
一、安装相关软件
yum -y install dhcp* nfs* tftp*
二、配置dhcp
vim /etc/dhcpd.conf
默认的文件里边只有几行
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.sample
#
根据提示我们找到这个配置示例文件
more /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample
示例文件内容如下
ddns-update-style interim;
ignore client-updates;

subnet 192.168.0.0 netmask 255.255.255.0 {

# --- default gateway
        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.1.1;

        option time-offset              -18000; # Eastern Standard Time
#       option ntp-servers              192.168.1.1;
#       option netbios-name-servers     192.168.1.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
#       option netbios-node-type 2;

        range dynamic-bootp 192.168.0.128 192.168.0.254;
        default-lease-time 21600;
        max-lease-time 43200;
        
        # we want the nameserver to appear at a fixed address
        host ns {
                next-server marvin.redhat.com;
                hardware ethernet 12:34:56:78:AB:CD;
                fixed-address 207.175.42.254;
        }
}

我们可以根据这个示例文件的说明来配置我们的dhcpd.conf
下边是我的配置文件:
ddns-update-style none;
ignore client-updates;
allow booting;
allow bootp;
subnet 172.20.0.0 netmask 255.255.0.0 {
        option subnet-mask 255.255.0.0;
        option domain-name "duxiaokong.com";
        option domain-name-servers 172.20.1.21,202.196.96.131;
        option routers 172.20.1.1;
        option time-offset -18000;
        range dynamic-bootp 172.20.92.100 172.20.92.180;
        default-lease-time 21600;
        max-lease-time 43200;
        # Group the PXE bootable hosts together
        # PXE-specific configuration directives...
        next-server 172.20.92.22;   #指明tftpserver的地址
        filename "/pxelinux.0";  #制定bootstrap文件,默认是tftp的主目录(/tftpboot)
}
关于这个配置文件的详细解释如下:

parameters(参数):
    ddns-update-style 配置DHCP-DNS互动更新模式
    default-lease-time 指定缺省租赁时间的长度,单位是秒
    max-lease-time 指定最大租赁时间长度,单位是秒
    hardware 指定网卡接口类型和MAC地址
    server-name 通知DHCP客户服务器名称
    get-lease-hostnames flag 检查客户端使用的IP地址
    fixed-address ip 分配给客户端一个固定的地址
    authritative 拒绝不正确的IP地址的要求

declarations(声明):
    shared-network 用来告知是否一些子网络分享相同网络
    subnet 描述一个IP地址是否属于该子网
    range 起始IP 终止IP 提供动态分配IP 的范围
    host 主机名称 参考特别的主机
    group 为一组参数提供声明
    allow unknown-clients或deny unknown-client 是否动态分配IP给未知的使用者
    allow bootp或deny bootp 是否响应激活查询
    allow booting或deny booting 是否响应使用者查询
    filename 开始启动文件的名称,应用于无盘工作站
    next-server 设置服务器从引导文件中装如主机名,应用于无盘工作站

option(选项):
    subnet-mask 为客户端设定子网掩码
    domain-name 为客户端指明DNS名字
    domain-name-servers 为客户端指明DNS服务器IP地址
    host-name 为客户端指定主机名称
    routers 为客户端设定默认网关
    broadcast-address 为客户端设定广播地址
    ntp-server 为客户端设定网络时间服务器IP地址
    time-offset 为客户端设定和格林威治时间的偏移时间,单位是秒。

三、启动dhcp服务
/etc/init.d/dhcpd start
如果不能正常启动,可以使用命令dhcp -d查看一下配置文件是在哪里出错了

四、配置tftp
默认的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             = -u nobody -s /tftpboot    #添加nobody可以访问,-s 表示用/tftpboot作为tftp目录的根目录
        disable                 = no    #这里默认是关闭的,我们设为启用
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}
五、启动tftp服务
重启xinetd服务
/etc/init.d/xinetd restart
查看tftp 是否启动
chkconfig --list |grep tftp
六、配置nfs
mount /iso/CentOS-6.0-i386-bin-DVD.iso /mnt -o loop  #挂载镜像文件
vim /etc/exports #设置共享目录
/tftpboot *(ro,sync)  
/mnt *(ro,sync)        #镜像文件解压后放置此处
重启服务
/etc/init.d/portmap start
/etc/init.d/nfs start
查看共享目录
showmount -e localhost
七、配置pxe所需要的文件, 制作linux内核、跟文件系统

mkdir /tftpboot/pxelinux.cfg

#将/usr/lib/syslinux/下的启动镜像文件pxelinux.0拷到TFTP服务器/tftpboot/ 下

cp /usr/lib/syslinux/pxelinux.0 /tftpboot/

#将镜像挂载后的isolinux/下的所有名为.msg文件、vmlinuz文件 、initrd.img文件拷到TFTP服务器/tftpboot/ /下:

cp /mnt/isolinux/vmlinuz /tftpboot/

cp /mnt/isolinux/initrd.img /tftpboot/

#将镜像挂载后的isolinux/下的isolinux.cfg复制到TFTP服务/tftpboot/pxelinux.cfg/下:

cp /mnt/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default

OK!所有配置完成,这是要注意防火墙的配置  tftp
启动电脑,如果你的是intel网卡 按ctrl+s键 进入设置pxe
然后进入bios设置启动首选项
重启这时就会自动获取IP,网关等……

出现Boot: 界面。输入linux text 进入。之后选择NFS安装系统。

(责任编辑:IT)