DHCP+TFTP+PXE自动网络引导安装Linux操作系统

简介:

DHCP+TFTP+PXE自动网络引导Linux+NFS/FTP/HTTP Push多个Linux操作系统

原理:

1)客户端PXE网卡启动

2)DHCP服务器获得IP

3)TFTP服务器上下载pxelinux.0default

4)根据配置文件default指定的vmlinuzinitrd.img启动系统内核,并下载指定的ks.cfg文件

5)跟据ks.cfg(HTTP/FTP/NFS)服务器下载RPM包并安装系统

6)完成安装

·DHCP:


  1. [root@rhel6 ~]# cat /etc/dhcp/dhcpd.conf

  2. ddns-update-style none;

  3. option routers 192.168.1.119;

  4. option subnet-mask 255.255.255.0;

  5. option domain-name "xfcy.org";

  6. option domain-name-servers 192.168.1.119;

  7. default-lease-time 21600;

  8. max-lease-time 43200;

  9. subnet 192.168.1.0 netmask 255.255.255.0 {

  10. range 192.168.1.101 192.168.1.200;

  11. #  TFTP Server

  12. filename "pxelinux.0";

  13. next-server rhel6.xfcy.org;

  14. host vm.xfcy.org {

  15. hardware ethernet 00:0c:29:c0:a7:99;

  16. fixed-address 192.168.1.19;

  17. }

  18. }

  19. [root@rhel6 tftpboot]# /etc/init.d/dhcpd restart

  20. Shutting down dhcpd:          [ OK ]

  21. Starting dhcpd:            [ OK ]

154055797.png

·TFPT:


  1. [root@rhel6 ~]# rpm -qa | egrep 'tftp|xinetd'

  2. tftp-0.49-7.el6.x86_64

  3. xinetd-2.3.14-33.el6.x86_64

  4. tftp-server-0.49-7.el6.x86_64

  5. [root@rhel6 ~]# cat /etc/xinetd.d/tftp

  6. # default: off

  7. service tftp

  8. {

  9. socket_type       = dgram

  10. protocol        = udp

  11. wait          = yes

  12. user          = root

  13. server         = /usr/sbin/in.tftpd

  14. server_args       = -s /var/lib/tftpboot

  15. disable         = no

  16. per_source       = 11

  17. cps           = 100 2

  18. flags          = IPv4

  19. }

  20. [root@rhel6 ~]# chkconfig xinetd on

  21. [root@rhel6 ~]# /etc/init.d/xinetd restart

  22. Stopping xinetd:             [ OK ]

  23. Starting xinetd:             [ OK ]

  24. [root@rhel6 ~]# netstat -lnup | grep :69

  25. udp  0  0 0.0.0.0:69  0.0.0.0:*    2751/xinetd

  26. [root@rhel6 ~]# yum -y install syslinux

  27. [root@rhel6 ~]# mkdir -p /var/lib/tftpboot/pxelinux.cfg/

  28. [root@rhel6 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

  29. [root@rhel6 ~]# cp /media/isolinux/initrd.img /var/lib/tftpboot/

  30. [root@rhel6 ~]# cp /media/isolinux/vmlinuz /var/lib/tftpboot/

  31. [root@rhel6 ~]# cp /media/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

  32. [root@rhel6 ~]# ls -R /var/lib/tftpboot/

  33. /var/lib/tftpboot/:

  34. boot.msg initrd.img pxelinux.0 pxelinux.cfg vmlinuz

  35. /var/lib/tftpboot/pxelinux.cfg:

  36. default

  37. [root@rhel6 ~]# vi /var/lib/tftpboot/pxelinux.cfg/default

  38. default rhel6_nfs

  39. prompt 1                #显示"boot: " 提示进行选择以下lable

  40. timeout 100               #10s 的超时后进入default所定义的lable

  41. display boot.msg            #以boot.msg进行文本提示(与以下的*.msg文件结合,非必选项)

  42. F1 boot.msg

  43. F2 options.msg

  44. F3 general.msg

  45. F4 param.msg

  46. F5 rescue.msg

  47. #可通过以下3种方式下载ks.cfg文件,通过default定义lable或在timeout时间之内选择lable即可

  48. label rhel6_nfs             #通过NFS方式

  49. kernel vmlinuz

  50. append ksdevice=eth0 load_ramdisk=1 initrd=initrd.img network ks=nfs:192.168.1.119:/var/ftp/pub/ks.cfg

  51. label rhel6_ftp             #通过FTP方式

  52. kernel vmlinuz

  53. append ksdevice=eth0 load_ramdisk=1 initrd=initrd.img network ks=ftp://192.168.1.119/pub/ks.cfg

  54. label rhel6_http            #通过HTTP方式

  55. kernel vmlinuz

  56. append ksdevice=eth0 load_ramdisk=1 initrd=initrd.img network ks=http://192.168.1.119/pub/ks.cfg

  57. label rescue              #用于rescue模式

  58. kernel vmlinuz

  59. append load_ramdisk=1 initrd=initrd.img rescue

154324985.png

154430246.png

·NFS


  1. [root@rhel6 ~]# ls /var/ftp/pub/

  2. images ks.cf  Packages  repodata  Server

  3. [root@rhel6 ~]# cat /etc/exports

  4. /var/ftp/pub  192.168.1.0/24(rw,sync,no_root_squash)  #共享路径必须与default文件定义的ks.cfg路径一致

  5. [root@rhel6 ~]# /etc/init.d/rpcbind status

  6. rpcbind (pid 1418) is running...

  7. [root@rhel6 ~]# /etc/init.d/nfs start

  8. Starting NFS services:         [ OK ]

  9. Starting NFS quotas:          [ OK ]

  10. Starting NFS daemon:          [ OK ]

  11. Starting NFS mountd:          [ OK ]

  12. [root@rhel6 ~]# showmount -e

  13. Export list for rhel6.xfcy.org:

  14. /var/ftp/pub 192.168.1.0/24

·HTTS


  1. [root@rhel6 ~]# cat /etc/httpd/conf/httpd.conf | grep DocumentRoot

  2. DocumentRoot "/var/ftp"#共享路径必须与default文件定义的ks.cfg路径一致

  3. [root@rhel6 ~]# /etc/init.d/httpd start

  4. Starting httpd:            [ OK ]

·Kickstart

使用红帽的Kickstart配置程序可以通过图形界面创建或直接修改Kickstart文件。

# yum install system-config-kickstart

该配置程序主要包含11个模块:

基本设置、安装方式、引导器设置、分区信息、网络配置、认证、防火墙配置、显示配置、软件包、Pre脚本、Post脚本

关于Kickstart文件的配置内容请看:http://missedyou.blog.51cto.com/2014866/1091631

154923999.png






     本文转自Vnimos51CTO博客,原文链接:http://blog.51cto.com/vnimos/1063154,如需转载请自行联系原作者




相关文章
|
2月前
|
Linux
linux下搭建tftp服务器教程
在Linux中搭建TFTP服务器,需安装`tftp-server`(如`tftpd-hpa`)。步骤包括:更新软件包列表,安装`tftpd-hpa`,启动并设置开机自启,配置服务器(编辑`/etc/default/tftpd-hpa`),添加选项,然后重启服务。完成后,可用`tftp`命令进行文件传输。例如,从IP`192.168.1.100`下载`file.txt`: ``` tftp 192.168.1.100 <<EOF binary put file.txt quit EOF ```
99 4
|
2月前
|
编解码 开发工具 Android开发
Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)2
Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)2
85 2
|
6天前
|
缓存 网络协议 Ubuntu
DHCP的开源实现及其在不同Linux发行版上的安装过程
DHCP的开源实现及其在不同Linux发行版上的安装过程
5 0
|
2月前
|
存储 人工智能 物联网
探索操作系统的心脏:内核的奥秘云计算与网络安全:技术融合与挑战
【5月更文挑战第31天】本文将深入探讨操作系统的核心—内核,揭示其运作原理与对计算机性能的影响。从内核的定义和功能出发,我们将逐步剖析其结构组成,包括进程管理、内存管理、文件系统和设备驱动等关键模块。文章旨在为读者提供一扇观察操作系统内部工作机制的窗口,帮助理解现代计算环境中,为何一个高效、稳定的内核对于整个系统的重要性不可或缺。
|
2月前
|
监控 负载均衡 网络协议
|
2月前
|
网络协议 Linux iOS开发
|
2月前
|
Linux 网络安全 Windows
网络安全笔记-day8,DHCP部署_dhcp搭建部署,源码解析
网络安全笔记-day8,DHCP部署_dhcp搭建部署,源码解析
|
2月前
|
程序员 Linux 网络安全
optee os syscall,35岁以后的网络安全程序员出路在哪里
optee os syscall,35岁以后的网络安全程序员出路在哪里
|
2月前
|
存储 Linux 网络安全
centos7使用yum网络安装
这些是使用Yum进行网络安装的基本步骤。根据你的需求,你可以重复步骤3和4来安装其他软件包。请注意,执行Yum操作需要root或具有sudo权限的用户。
102 1
|
2月前
|
安全 算法 网络安全
构筑网络长城:网络安全漏洞解析与防御策略深入理解操作系统:进程管理与调度策略
【4月更文挑战第30天】 在数字化时代,网络安全已成为维护信息完整性、确保数据流通安全和保障用户隐私的关键。本文将深入探讨网络安全的核心问题——安全漏洞,并分享关于加密技术的最新进展以及提升个人和企业安全意识的有效方法。通过对常见网络威胁的剖析,我们旨在提供一套综合性的网络防御策略,以助力读者构建更为坚固的信息安全防线。 【4月更文挑战第30天】 在现代操作系统的核心,进程管理是维持多任务环境稳定的关键。本文将深入探讨操作系统中的进程概念、进程状态转换及进程调度策略。通过分析不同的调度算法,我们将了解操作系统如何平衡各进程的执行,确保系统资源的高效利用和响应时间的最优化。文中不仅剖析了先来先