redhat网络安装系统 之三

简介: 5、  PXE引导配置     要配置TFTP所要传输的bootstrap,首先要准备好引导文件、内核镜像文件、跟文件系统文件。 1. bootstrap文件:pxelinux.0  文件位置在/usr/lib/syslinux目录中。

5、  PXE引导配置

    要配置TFTP所要传输的bootstrap,首先要准备好引导文件内核镜像文件跟文件系统文件

1. bootstrap文件:pxelinux.0

 文件位置在/usr/lib/syslinux目录中。将其拷贝到/tftpboot目录中

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


 2 .内核镜像文件(用于网络启动的内核文件):vmlinuz  

    vmlinuz文件在RH5镜像文件下的/images/pxeboot目录中,将vmlinuz拷贝到/tftpboot目录中[假定光盘加载到/mnt/cdrom]

 #cp/mnt/cdrom/images/pxeboot/vmlinuz    /tftpboot

 

3.根文件系统文件用于网络启动的内核文件initrd.img

     initrd.img文件在RHEL5光盘下的/images/pxeboot目录中,将initrd.img拷贝到/tftpboot目录中[假定光盘加载到/mnt/cdrom]

 #cp/mnt/cdrom/images/pxeboot/initrd.img   /tftpboot

 

由于多个客户端可以从一个PXE服务器引导,PXE引导映像使用了一个复杂的配置文件搜索方式来查找针对客户机的配置文件。如果客户机的网卡的MAC地址为'''88:99:AA:BB:CC:DD''',对应的IP地址为192.168.1.195,那么客户机首先尝试以MAC地址为文件名匹配的配置文件,如果不存在就以IP地址来查找。根据上述环境针对这台主机要查找的以一个配置文件就是/tftpboot/pxelinux.cfg/01-88-99-aa-bb-cc-dd。如果该文件不存在,就会根据IP地址来查找配置文件了,这个算法更复杂些,PXE映像查找会根据IP地址16进制命名的客户机配置文件。例如:192.168.1.195对应的16进制的形式为C0A801C3。(可以通过syslinux软件包提供的gethostip命令将10进制的IP转换为16进制)

如果C0A801C3文件不存在,就尝试查找C0A801C文件,如果C0A801C也不存在,那么就尝试C0A801文件,依次类推,直到查找C文件,如果C也不存在的话,那么最后尝试default文件。

总体来说,pxelinux 搜索的文件的顺序是:

/tftpboot/pxelinux.cfg/01-88-99-aa-bb-cc-dd

/tftpboot/pxelinux.cfg/C0A801C3

/tftpboot/pxelinux.cfg/C0A801C

/tftpboot/pxelinux.cfg/C0A801

/tftpboot/pxelinux.cfg/C0A80

/tftpboot/pxelinux.cfg/C0A8

/tftpboot/pxelinux.cfg/C0A

/tftpboot/pxelinux.cfg/C0

/tftpboot/pxelinux.cfg/C

/tftpboot/pxelinux.cfg/default

对于一台需要支持很多安装机器的安装服务器来说,将配置写在与 IP 地址对应的文件里很不灵活。把所有配置都集中在 default 文件中是个不错的主意,可以减轻配置文件维护负担。

4.创建pxelinux.cfg目录与default文件

    pxelinux.cfg为远程安装客户端配置文件所在目录,您可以为不同的计算机制定不同的安装方式或者方法。但是基本上我们都可以用default配置文件来进行为所有的计算机进行配置。

 #cd       /tftpboot
 #mkdir    pxelinux.cfg
[root@localhost tftpboot]# cp *.msg /tftpboot/pxelinux.cfg/        ——将.msg的文件拷到目录
 
[root@localhost tftpboot]# cp isolinux.cfg pxelinux.cfg/      ——这个isolinux.cfg就是default文件的前身。  
 
[root@localhost tftpboot]# cd pxelinux.cfg/                    
 
[root@localhost pxelinux.cfg]# mv isolinux.cfg default                   (重命名)    
 

 #vi       default
 
 default内容如下:

default linux                    # 默认启动的是 'label linux' 中标记的启动内核

prompt 1                         # 显示 'boot: ' 提示符。为 '0' 时则不提示,将会直接启动 'default' 参数中指定的内容。

timeout 600                  # 在用户输入之前的超时时间,单位为 1/10 秒。 

display  boot.msg         #显示某个文件的内容,注意文件的路径。默认是在 /tftpboot 目录下。也可以指定位类似 'install/rhel4.4-inst/boot.msg'这样的,路径+文件名。

F1 boot.msg              #按下 'F1' 这样的键后显示的文件。注意路径。默认是 /tftpboot。注:syslinux 官方网站上说目前只能使用 F1-F10。

F2 options.msg

F3 general.msg

F4 param.msg

F5 rescue.msg

label linux             # 'label' 指定你在 'boot:' 提示符下输入的关键字。 比如:boot: linux[ENTER]这个会启动 'label linux' 下标记的 kernel 和 initrd.img 文件。

kernel vmlinuz    #kernel 参数指定要启动的内核。同样要注意路径,默认是 /tftpboot 目录。

append  ks=nfs:192.168.0.7:/pub/ks.cfg  initrd=initrd.img  # append 指定追加给内核的参数,能够在 gurb 里使用的追加给内核的参数,在这里也都可以使用。# 使用 kickstart 安装。可以在 ks 参数后直接指定 kickstart 文件的位置。我在用自己笔记本安装的时候把黄色部分删除了,手动安装成功。哈哈

#启动参数包括启动内核时所需要mount的挂载点和ramdisk大小。一般16384都可以满足了。

label text

kernel vmlinuz   #指定kernel文件

append initrd=initrd.img textdevfs=nomountramdisk_size=9216

label ks

  kernel vmlinuz   #指定kernel文件

  append ks initrd=initrd.imgdevfs=nomountramdisk_size=9216

label local

  localboot 0

修改default文件如下:

#vi /tftpboot/pxelinux.cfg/default(修改第3行,第12行.)
  3行:    timeout 10            //时间调小点
 12行:   append ks=nfs:192.168.0.7:/mnt/cdrom/ks.cfg  initrd=initrd.img             ——本机的ip加上。


 5.nfs网络文件传系统配置:

 [root@localhost /]# vi /etc/exports

/mnt/cdrom   *(ro)                                                (企5光盘挂载的目录作为nfs共享目录)

/pub  *(ro)

~

——————————————————————————

重启服务使配置生效。
[root@qiuri Server]#service portmap restart
停止 portmap:                                             [确定]
启动 portmap:                                             [确定]
[root@qiuri Server]#service nfs start 
关掉 NFS 配额:                                            [确定]
启动 NFS 守护进程:                                    [确定]
启动 NFS mountd:                                      [确定]
检查目录/mnt/install是否被正确共享:
[root@qiuri Server]#showmount –e localhost
Export list forlocalhost:
/mnt/install * 
[root@qiuri Server]#chkconfig --level 35 nfs on
启动 NFS 服务:                                            [确定]

到此nfs就配置好了,跟多参考:http://blog.csdn.net/changyanmanman/article/details/7646760


6.安装kickstart 配置ks.cfg

 

通常,我们在安装操作系统的过程需要大量的人机交互过程,减少交互过程,为了提高安装效率Red Hat Linux 开始支持一个称为 kickstart 的功能。使用这种方法,只需事先定义好一个Kickstart自动应答配置文件(通常存放在安装服务器上),并让安装程序知道该配置文件的位置,在安装过程中安装程序就可以自己从该文件中读取安装配置,这样就避免了繁琐的人机交互,实现无人值守的自动化安装。

我们可以通过多种方法生成Kickstart配置文件,无论使用哪种方法无非就是创建一个应答文件,当你安装好一台Red Hat Linux机器,Red Hat Linux 安装程序都会创建一个kickstart 配置文件,记录你的真实安装配置。如果你希望实现和某系统类似的安装,可以基于该系统的kickstart配置文件来生成你自己的kickstart配置文件。该文件位于/root/anaconda-ks.cfg

这里我直接使用该文件,拷贝本文件到/mnt/cdrom下。

[root@qiuri Server]# cp /root/anaconda-ks.cfg /pub/ks.cfg

[root@qiuri Server]# chmod a+rx /pub/ks.cfg # 修改ks.cfg权限

内容如下:

# Kickstart file automatically generated byanaconda.

install

nfs --server=192.168.0.7--dir=/mnt/cdrom   #这个选项告诉安装程序:到服务器192.168.0.7的NFS共享目录/mnt/cdrom下寻找安装介质

key --skip

lang zh_CN.UTF-8

keyboard us:

xconfig --startxonboot

network --device eth0 --bootproto dhcp

rootpw --iscrypted $1$3xvzZgwz$1jYjrh/XtXLblT00Mn3Ys0

firewall --enabled --port=22:tcp

authconfig --enableshadow --enablemd5

selinux --enforcing

timezone --utc Asia/Shanghai

bootloader --location=mbr --driveorder=sda--append="rhgb quiet"

… …

clearpart --all --drives=sda --initabel

part / --fstype ext3 --size=130000

part swap --fstype swap --size=2048

part /backup --fstype ext3 --size=100 --grow

 

%packages

@office

@admin-tools

… …

emacs

gcc43-c++

libgfortran43

注意:关闭服务器端防火墙和SELINUX

\
 
手动修改ks.cfg
 
     bootloader --location=mbr
 
     key --skip          //跳过安装序列号,需要手动修改添加
 
     (最后加入)
 
     %packages --resolvedeps
 
     @ base-x                  //最小化安装  (如果用kickstart不能选择安装包时需要手动添加)
 
 

5.最后检查一下/tftpboot目录中是否存在如下文件:

1)    pxelinux.0  #bootstrap文件

2)    vmlinuz  #内核镜像文件

3)    initrd.img  #根文件系统文件

4)    pxelinux.cfg  #为远程客户端使用的配置文件目录,该文件夹下包含一个文件:default

5)    default  #为远程客户端使用的配置文件

6)   boot.msg #初始引导文件

    如果全部存在。那么现在可以启动dhcptftpftp三项服务,找个机器测试一下吧!

 http://www.cnblogs.com/JemBai/archive/2011/12/27/2303747.html

故障排除:

 

kickstart服务器排除

1、关闭防火墙,系统自带的和IPTABLES都要关闭

2、 从网卡启动,获取不到IP地址检查你的DHCP服务器是否开机,使用#netstat  -tulnp | grep dhcpd ,来查看是否在监听67号端口

3、获取IP后,在TFTP那步卡住了。检查你的DHCP配置文件,next-server 是不是指的正确的tftp服务器。TFTP服务器是否开启,是否运
行正常。 可以在linux里面使用这个方法来测试

#tftp 您的服务器IP   登陆进入后
tftp>get pxelinux.0  
tftp>quit
查看当前目录是否有pxelinux.0这个文件,有的话,证明你的tftp服务器是正常的最后检查你的网络中是不是还有其他dhcp服务器

3、内核成功加载后,系统有完成自动安装,需要人工介入,那就证明你的kickstart脚本文件出问题了,需要重新生成一个

 

4、监控服务器的/var/log/message文件,寻找故障原因

相关文章
|
7天前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
118 55
|
1月前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
72 2
|
2月前
|
机器学习/深度学习 数据采集 人工智能
未来的守护神:AI驱动的网络安全之盾,如何用智慧的光芒驱散网络黑暗势力?揭秘高科技防御系统背后的惊天秘密!
【10月更文挑战第3天】随着网络技术的发展,网络安全问题日益严峻,传统防御手段已显不足。本文探讨了构建AI驱动的自适应网络安全防御系统的必要性及其关键环节:数据采集、行为分析、威胁识别、响应决策和执行。通过Python库(如scapy、scikit-learn和TensorFlow)的应用实例,展示了如何利用AI技术提升网络安全防护水平。这种系统能够实时监控、智能分析并自动化响应,显著提高防护效率与准确性,为数字世界提供更强大的安全保障。
63 2
|
17天前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
99 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
3天前
|
数据采集 监控 安全
公司网络监控软件:Zig 语言底层优化保障系统高性能运行
在数字化时代,Zig 语言凭借出色的底层控制能力和高性能特性,为公司网络监控软件的优化提供了有力支持。从数据采集、连接管理到数据分析,Zig 语言确保系统高效稳定运行,精准处理海量网络数据,保障企业信息安全与业务连续性。
18 4
|
29天前
|
安全 Windows
【Azure Cloud Service】在Windows系统中抓取网络包 ( 不需要另外安全抓包工具)
通常,在生产环境中,为了保证系统环境的安全和纯粹,是不建议安装其它软件或排查工具(如果可以安装,也是需要走审批流程)。 本文将介绍一种,不用安装Wireshark / tcpdump 等工具,使用Windows系统自带的 netsh trace 命令来获取网络包的步骤
68 32
|
26天前
|
弹性计算 监控 数据库
制造企业ERP系统迁移至阿里云ECS的实例,详细介绍了从需求分析、数据迁移、应用部署、网络配置到性能优化的全过程
本文通过一个制造企业ERP系统迁移至阿里云ECS的实例,详细介绍了从需求分析、数据迁移、应用部署、网络配置到性能优化的全过程,展示了企业级应用上云的实践方法与显著优势,包括弹性计算资源、高可靠性、数据安全及降低维护成本等,为企业数字化转型提供参考。
52 5
|
1月前
|
存储 数据可视化 API
重磅干货,免费三方网络验证[用户系统+CDK]全套API接口分享教程。
本套网络验证系统提供全面的API接口,支持用户注册、登录、数据查询与修改、留言板管理等功能,适用于不想自建用户系统的APP开发者。系统还包含CDK管理功能,如生成、使用、查询和删除CDK等。支持高自定义性,包括20个自定义字段,满足不同需求。详细接口参数及示例请参考官方文档。
|
1月前
|
监控 安全 测试技术
网络信息系统的整个生命周期
网络信息系统规划、设计、集成与实现、运行维护及废弃各阶段介绍。从企业需求出发,经过可行性研究和技术评估,详细设计系统架构,完成设备安装调试和系统集成测试,确保稳定运行,最终安全退役。
46 1
网络信息系统的整个生命周期
|
1月前
|
数据库连接 Go 数据库
Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性
本文探讨了Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性;防御编程则强调在编码时考虑各种错误情况,确保程序健壮性。文章详细介绍了这两种技术在Go语言中的实现方法及其重要性,旨在提升软件质量和可靠性。
30 1

推荐镜像

更多
下一篇
DataWorks