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,如需转载请自行联系原作者




相关文章
|
1月前
|
安全 Linux 数据安全/隐私保护
Vanilla OS:下一代安全 Linux 发行版
【10月更文挑战第30天】
60 0
Vanilla OS:下一代安全 Linux 发行版
|
1月前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
67 4
|
1月前
|
人工智能 安全 Linux
|
5月前
|
安全 Linux 网络安全
部署07--远程连接Linux系统,利用FinalShell可以远程连接到我们的操作系统上
部署07--远程连接Linux系统,利用FinalShell可以远程连接到我们的操作系统上
|
5月前
|
Linux 虚拟化 数据安全/隐私保护
部署05-VMwareWorkstation中安装CentOS7 Linux操作系统, VMware部署CentOS系统第一步,下载Linux系统,/不要忘, CentOS -7-x86_64-DVD
部署05-VMwareWorkstation中安装CentOS7 Linux操作系统, VMware部署CentOS系统第一步,下载Linux系统,/不要忘, CentOS -7-x86_64-DVD
|
2月前
|
Unix 物联网 大数据
操作系统的演化与比较:从Unix到Linux
本文将探讨操作系统的历史发展,重点关注Unix和Linux两个主要的操作系统分支。通过分析它们的起源、设计哲学、技术特点以及在现代计算中的影响,我们可以更好地理解操作系统在计算机科学中的核心地位及其未来发展趋势。
|
4月前
|
编解码 安全 Linux
基于arm64架构国产操作系统|Linux下的RTMP|RTSP低延时直播播放器开发探究
这段内容讲述了国产操作系统背景下,大牛直播SDK针对国产操作系统与Linux平台发布的RTMP/RTSP直播播放SDK。此SDK支持arm64架构,基于X协议输出视频,采用PulseAudio和Alsa Lib处理音频,具备实时静音、快照、缓冲时间设定等功能,并支持H.265编码格式。此外,提供了示例代码展示如何实现多实例播放器的创建与管理,包括窗口布局调整、事件监听、视频分辨率变化和实时快照回调等关键功能。这一技术实现有助于提高直播服务的稳定性和响应速度,适应国产操作系统在各行业中的应用需求。
143 3
|
5月前
|
弹性计算 运维 Linux
基于在Alibaba Cloud Linux 3 的OS Copilot 产品评测
作为一名技术运维的工作者,每天做的最多一件事就是在Linux下敲各种各样的命令,或完成功能性的部署,或检查系统的稳定性。如果 OS Copilot 作为我的日常工具,我使用场景会更集中于快捷命令或脚本的实现,智能帮我生成各类功能脚本,为我提高运维效率。
基于在Alibaba Cloud Linux 3 的OS Copilot 产品评测
|
5月前
|
Linux 测试技术 数据安全/隐私保护
阿里云Linux os copilot 运维助手初体验
阿里云Linux os copilot 初体验
415 1
阿里云Linux os copilot 运维助手初体验
|
5月前
|
弹性计算 运维 自然语言处理
阿里云OS Copilot测评:重塑Linux运维与开发体验的智能革命
阿里云OS Copilot巧妙地将大语言模型的自然语言处理能力与操作系统团队的深厚经验相结合,支持自然语言问答、辅助命令执行等功能,为Linux用户带来了前所未有的智能运维与开发体验。