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 网络安全
Web安全-Linux网络协议
Web安全-Linux网络协议
63 4
|
9天前
|
应用服务中间件 Linux nginx
Mac os 安装 nginx 教程(success)
这篇文章是关于如何在Mac OS系统上使用Homebrew安装nginx及其依赖,并解决安装过程中可能出现的权限问题。
22 0
Mac os 安装 nginx 教程(success)
|
12天前
|
网络协议 网络虚拟化 网络架构
【网络实验】/主机/路由器/交换机/网关/路由协议/RIP+OSPF/DHCP(上)
【网络实验】/主机/路由器/交换机/网关/路由协议/RIP+OSPF/DHCP(上)
37 1
|
12天前
|
网络协议 安全 Ubuntu
Linux中网络连接问题
【10月更文挑战第3天】
24 1
|
1月前
|
Windows
Windows操作系统部署安装Kerberos客户端
详细介绍了在Windows操作系统上部署安装Kerberos客户端的完整过程,包括下载安装包、安装步骤、自定义安装路径、修改环境变量、配置hosts文件和Kerberos配置文件,以及安装后的验证步骤。
154 3
Windows操作系统部署安装Kerberos客户端
|
12天前
|
网络协议 数据安全/隐私保护 网络虚拟化
【网络实验】/主机/路由器/交换机/网关/路由协议/RIP+OSPF/DHCP(下)
【网络实验】/主机/路由器/交换机/网关/路由协议/RIP+OSPF/DHCP(下)
33 0
|
17天前
|
监控 Linux 测试技术
Linux系统命令与网络,磁盘和日志监控总结
Linux系统命令与网络,磁盘和日志监控总结
40 0
|
17天前
|
监控 Linux 测试技术
Linux系统命令与网络,磁盘和日志监控三
Linux系统命令与网络,磁盘和日志监控三
33 0
|
1月前
|
机器学习/深度学习 安全 网络协议
Web安全-Linux网络命令
Web安全-Linux网络命令
28 1
|
1月前
|
网络协议 Linux
Linux 网络配置
了解基本命令与权限后,如何让Linux系统联网?可通过编辑`/etc/sysconfig/network-scripts/`下的`ifcfg-ethX`文件配置网卡,其中`ethX`代表第X块网卡。对于DHCP自动获取或静态IP,需设置`BOOTPROTO`参数,并指定IP、子网掩码和网关等。配置完成后,运行`/etc/init.d/network restart`重启网络。DNS可在`/etc/resolv.conf`中设置,添加`nameserver`行即可,无需重启网卡。配置好后,可用`ifconfig`查看IP信息,并通过远程工具如SecureCRT连接服务器。
59 0