德克云技术联盟

会员中心
发新帖
打印 上一主题 下一主题

Linux的网络安装(无人值守、自动安装)
发布人: 李臻宇 发布时间:2014-07-16 浏览:4027

本帖最后由 李臻宇 于 2014-7-16 17:28 编辑



网络安装原理:
第一步: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 Server响应客户端请求并传送文件


当服务器收到客户端的请求后,他们之间之后将有更多的信息在客户端与服务器之间作应答, 用以决定启 动参数。BootROM 由 TFTP 通讯协议从Boot Server下载启动安 装程序所必须的文件(pxelinux.0、pxelinux.cfg/default)。default文件下载完 成后,会根据该文件中定义的引导顺序,启动Linux安装程序的引导内核。





一、NFS(Network File System)网络文件系统,提供linux和linux间的文件共享服务
Red hat enterprise linux 使用nfsd作为nfs服务器
nfsd依赖portmap服务(RPC)
1、服务器关键配置文件/etc/exports
   配置文件内容格式:/path/dirname     ipaddressorname(option)

2、因为比较简单直接针对需求进行练习。
   需求:客户端若干,要求只读共享/tmp给所有客户端,读写共享/web给特定ip(10.0.0.2),只读共享/knowledge给fish.com域成员,读写共享/给特定主机(rain.fish.com),不转换root身份,默认情况下root用户访问nfs服务器时候转换身份为nobody,只读共享/pub给所有客户端,所有用户访问NFS服务器时候都将身份转换为nobody,只读共享/pub给所有客户端,并且所有用户访问NFS服务器时都将身份转为nobody,读写共享/home/rain给用户rain所有用户访问NFS时候都将身份换为uid=600的用户,并且所在组更改为在gid=600的用户组。
针对上面须求,写出配置文件如下
   /tmp         *(ro)      #只读共享/tmp给所有客户端
   /web         10.0.0.2(rw)     #读写共享/web给特定ip(10.0.0.2)
   /knowledge   *.fish.com(ro)      #只读共享/knowledge给fish.com域成员
   /      rain.fish.com(rw,no_root_squash)   #读写共享/给特定主机(rain.fish.com)
   /pub         *(rw,all_squash)    #只读共享/pub给所有客户端
   /home/rain   rain(rw,all_squash,anonuid=600,anongid=600) #读写共享/home/rain给用户rain

在options也可以标注sync or async 是否同步,默认不加就是同步
例如     /web      10.0.0.2(rw,sync) 不+的话生效的时候他会给你警告不过不要紧,全当没看到,他会给你默认的sync.

3、修改完成后保存退出,使用exportfs -r生效。

4、确保nfs启动
/etc/init.d/nfs restart

5、客户端工具
察看NFS服务器RPC信息
rpcinfo -p iporservername

showmount -e iporname
察看NFS服务器共享信息

mount nfsserver:/share /path/dirname

二、DHCP
    DHCP是"动态主机配置协议"(Dynamic Host Configuration Protocol)的缩写,DHCP可以为连接到TCP/IP网络的系统提供网络配置信息。网络上的主机作为DHCP客户端可以从网络中的DHCP服务器下载网络的配置信息。包括IP地址,子网掩码、网关、DNS服务器和代理服务器地址。
    DHCP的原理:当网络内配置了DHCP的计算机一开机,就会强制发送一个有限地址广播(255.255.255.255),本地网络中DHCP服务器受到广播后,会根据收到的物理地址在服务器上寻找相应的配置,并从划定的IP区域中发送某个IP地址附加选项(如租用期)掩码,网关等信息给该计算机,该计算机受到信息以后会相应一条注册信息给服务器,告诉该IP地址已被租用,防止IP地址冲突。整个过程实际上相当复杂,双方经过多次的信息交换最终才能注册成功,注册成功以后计算机就可以直接上网了。

下面开始配置这样一个服务器
1、默认的安装Red hat enterprise linux 4 DHCP是没有安装的
检察是否安装
rpm -qa | grep dhcp
如果没有安装可以从第四张光盘安装
rpm -ivh dhcp-3.0.1-12_EL

2、拷贝配置文件
默认的DHCP的配置文件不在/etc/下我们去拷贝一个模版过来
cp /usr/share/doc/dhcp-3.0.1/dhcpd.conf.sample /etc/dhcpd.conf -p

3、接下来我们修改配置文件

原配置文件如下:
ddns-update-style interim;
ignore client-updates;

subnet 192.168.0.0 netmask 255.255.255.0 {    #用户可以通过subnet语句通过IP地址段和子网掩码告之DHCP服务器可以分配的IP

# --- default gateway
        option routers                  192.168.0.1;      #默认路由和网关的IP地址
        option subnet-mask              255.255.255.0;    #设置子网掩码

        option nis-domain               "domain.org";     #unix下的域名(NIS:network information service的域名)
        option domain-name              "domain.org";     #DNS的域名
        option domain-name-servers      192.168.1.1;      #设置DNS服务器的IP地址可以多个。

        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;    #通过range语句,可以指定动态分配给客户端的IP地址范围
        default-lease-time 21600;                           #客户端IP地址默认租用的时间长度,单位:秒
        max-lease-time 43200;                               #最长租用时间
# we want the nameserver to appear at a fixed address
        host ns {        #给某些主机邦定固定IP(可多个)
                next-server marvin.redhat.com;             #设置第一服务器从引导文件装入的主机名,一般用于无盘站
                hardware ethernet 12:34:56:78:AB:CD;       #需要邦定地址的网卡MAC地址
                fixed-address 207.175.42.254;              #指定MAC分配的IP地址

DHCP配置实例:
  网关为192.168.5.49地址段为192.168.5.20-192.168.5.49, 子网掩码是255.255.255.128.其中192.168.5.20和192.168.5.30要分配给固定的主机(PC1macaddress:00-D0-59-A8-35-2B,PC2macaddress:00-50-56-C0-00-01).
    步骤1、复制/usr/share/doc/dhcp-3.0.1/dhcpd.conf.sample 到/etc/dhcpd.conf
    cp /usr/share/doc/dhcp-3.0.1/dhcpd.conf.sample /etc/dhcpd.conf -p
    步骤2、修改配置文件/etc/dhcpd.conf  (下面呈现修改好的配置文件)
ddns-update-style interim;
ignore client-updates;

subnet 192.168.5.0 netmask 255.255.255.128 {

#default gateway
        option routers                  192.168.5.254;
        option subnet-mask              255.255.255.128;

#       option nis-domain               "domain.org";
        option domain-name              "fish.com";
        option domain-name-servers      61.134.1.4,61.134.1.8,202.100.4.15; #用逗号分隔

        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.5.20 192.168.5.49;   
        default-lease-time 3600;                        
        max-lease-time 7200;
# we want the nameserver to appear at a fixed address
        host PC1  {
#               next-server marvin.redhat.com;
                hardware ethernet 00-D0-59-A8-35-2B;
                fixed-address 192.168.5.20;
        }
        host PC2  {
#               next-server marvin.redhat.com;
                hardware ethernet 00-50-56-C0-00-01;
                fixed-address 192.168.5.30;
        }
     步骤3、重新启动服务
          /etc/init.d/dhcpd restart


三、正式开始

我的主机ip为10.0.0.20根据自己更改。
1、首先把光盘或镜像的文件全部拷贝到一个目录下
    这里需要注意一点首先unalias cp因为RHEL默认的cp=cp -i,或者拷贝命令用"\cp",否则你会死的很惨,不信试试看,要你输入确定到死。
cp /media/cdrom/* /RHEL4 -r  #我拷贝到跟下的/RHEL4了。
2、下面检查所需要的软件包安装情况
A、DHCP
[root@rain media]# rpm -q dhcp
dhcp-3.0.1-12_EL
B、TFTP
[root@rain media]# rpm -q tftp-server
tftp-server-0.39-1
C、PXE
[root@rain media]# rpm -q system-config-netboot
system-config-netboot-0.1.32-1_EL4
D、KICKSTART
[root@rain media]# rpm -q system-config-kickstart
system-config-kickstart-2.5.16.1-1
[root@rain tftpboot]# rpm -qa |grep nfs
system-config-nfs-1.2.8-1
nfs-utils-1.0.6-65.EL4
3、TFTP开机自动启动就行了,因为pxe装好以后自动在/tftp/下面放了很多相关文件。为了能够让客户机

加载网络安装的引导程序。
chkconfig --level 35 tftp on
4、配置nfs
共享出/RHEL4
echo "/RHEL4" >> /etc/export*
使之生效
**portfs -r
开机自动运行
chkconfig --level 35 nfs on
5、配置DHCP
拷贝模板文件之/etc/下
cp /usr/share/doc/dhcp-3.0.1/dhcpd.conf.sample /etc/dhcpd.conf -p
配置(前面有文档,这里不详细解释,更改后的配置文件如下)
ddns-update-style interim;
ignore client-updates;

next-server 10.0.0.20;                 #告诉客户机TFTP服务器位置
filename "linux-install/pxelinux.0";    #告诉客户机文件位置

subnet 10.0.0.0 netmask 255.0.0.0 {

# --- default gateway
        option routers                  10.0.0.20;
        option subnet-mask              255.0.0.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 10.0.0.30 10.0.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;
        }
}

6、KICKSTART(这一步为了网络安装的时候可以做到无干预安装,如果你仅仅想不需要光驱手动也可以可

以忽略此步骤)
进入xwin生成ks.cfg(如果你不想进xwin或者没有安装,手写也可以)
startx
Applications-System Tools-kickstart

定制你要安装的操作系统

Installation Method
  choose the Installation Method
  选择NFS
   NSF server:填写你的NFS服务器地址
   NFS Directory: 填写你的安装文件所放的目录,也就是通过NFS共享出去的目录

Display Config Uration
  video card 和 Monitor 选择自动搜索 除非大家配置一样

Post-Installation Script
可以写一些shell 例如加一些固定的帐户等等。

生成的ks.cfg放在/RHEL4下
下面我把ks.cfg文件内容拿出来 省得没有装xwin的朋友的麻烦
#Generated by Kickstart Configurator
#platform=x86, AMD64, or Intel EM64T

#System  language
lang en_US
#Language modules to install
langsupport zh_** --*efault=en_US
#System keyboard
keyboard us
#System mouse
mouse
#Sytem timezone
timezone Asia/Shanghai
#Root password
rootpw --iscrypted $1$zgZ7DcOT$D9dVhG5kYDW0MOF9hqgce.
#Reboot after installation
reboot
#Install OS instead of upgrade
install
#Use NFS installation Media
nfs --server=10.0.0.2  --dir=/RHEL4
#System bootloader configuration
bootloader --location=mbr
#Clear the Master Boot Record
zerombr yes
#Partition clearing information
clearpart --all --initlabel
#Disk partitioning information
part /boot --fstype ext3 --size 100
part swap --size 500
part /boot --fstype ext3 --size 1 --grow
#System authorization infomation
auth  --useshadow  --enablemd5
#Firewall configuration
firewall --enabled
#XWindows configuration information
xconfig --depth=8 --resolution=640x480 --defaultdesktop=GNOME
#Package install information
%packages --resolvedeps



7、PXE
PXEreboot Execution Environment(预启动执行环境)

PXE环境的需求
A、主板支持从网络引导
B、以太网卡带有支持PXE引导的接口(引导模块)

PXE Configuration
pxeos [-a|-m|-d|-l] [-i <description> ] [-p <protocol> ] [-D<1|0>] [-s <server>] [-L

<location>] [-A <1|0>] [-u <user>] [-K <kickstart>] [-P <password>] name
-a:  添加操作系统描述
-m:  修改操作系统描述
-d:  删除操作系统描述
-l:  列出所有的操作系统描述
-i:  操作系统描述
-p:  访问存放操作系统的主机时使用的协议(NFS, HTTP, FTP)
-D:  是否建立无盘工作站信息
-s:  存放操作系统的服务器地址
-L:  服务器上存放操作系统的目录名称
-A:  如果使用FTP访问主机,是否使用匿名登录
-u:  如果使用FTP访问主机并且不使用匿名登录,指定用户名称
-P:  如果使用FTP访问主机并且不使用匿名登录,指定用户密码
-K:  如果使用kickstart自动安装功能,指定kickstart配置文件路径,比如:
  nfs:10.0.0.200:/RHEL/ks.cfg
name 自定义操作系统的缩写名称

运行命令
pxeos -a -i "Lizy_OS" -p NFS -D 0 -s 10.0.0.20 -L /RHEL4  -K

nfs:10.0.0.20:/RHEL4/ks.cfg  RainOs
命令解释-a添加 -i "Lizy_OS"操作系统描述(自定义)
-p NFS 访问存放操作系统的主机时使用的协议为NFS
-D 0 说明不是无盘站
-s 10.0.0.20 存放操作系统的服务器地址为10.0.0.20
-L 服务器上存放操作系统的目录名成为/RHEL4
-K 如果使用kickstart自动安装功能,指定kickstart配置文件路径 nfs:10.0.0.20:/RHEL4/ks.cfg
RainOs 定义操作系统的缩写名称(自定义)

抛砖引玉,希望喜峰尽快推出Windows的网络安装。将来出货的时候也不需要找那么些外援了~



分类浏览
关于我们
联系我们
技术联盟
云服务
云技术
云合作
帮助中心
发帖规则
QQ客服
内部通道
企业邮箱
企业论坛
版本选择
手机版
电脑版
用手机扫描下方二维码查看手机版页面

版权所有 西安云联电子科技有限公司
Copyright @ 2011-2022 | decoclouds.com All Rig
陕ICP备13002202号-1

快速回复 返回顶部 返回列表