pxe无人值守智能安装linux

简介:

Pxe网络无人值守智能安装

       目前为止安装操作系统的途径相当的多,有光盘安装,U盘安装(当今比较流行),还有就是我今天要谈到的网卡安装,对于普通的个人PC机而言使用光盘或者U盘安装完全可以满足需求,但是如果针对大型企业或者是教育企业的网管人员而言上述的安装方案必然会带来相当大的麻烦,有需求就有了解决方案,通过网卡来安装操作系统是相当便捷的方式。       Pxe工作于c/s的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持来自网络的操作系统的启动过程,其启动过程中,终端要求服务器分配IP地址,再用TFTPtrivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中并执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。

       对于我们今天的实验来说,我自己画了一个图,来谈谈我对于pxe安装的理解,我是针对与linux操作系统来做的:

 

       下面我们就针对这个原理图来开始实验:

       实验需求:vm虚拟机,完整的linux镜像

使用虚拟机虚拟出一台Serverpc机,Server的需求比较多,客户机不需要太多的设置(在真实环境中客户机的网卡需要支持pxe

       1.Server需要的功能:

              ADhcp服务器的搭建:为了方便安装,我使用的是yum安装配置文件如下

[rhel-server]

name=Red Hat Enterprise Linux server

baseurl=file:///mnt/cdrom/Server

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

之后就是dhcp服务器的安装

 

配置dhcp服务器:一下是我的dhcpd.conf的配置参数,其中网段部分你可以根据自己的需求设置,要着重注意的是next-server参数(用于指明你的tftp服务器位置)和filename参数(指明你的pxe驱动位置)

 

#

# DHCP Server Configuration file.

ddns-update-style interim;

ignore client-updates;

 

subnet 192.168.111.0 netmask 255.255.255.0 {

 

# --- default gateway

        option routers                  192.168.111.254;

        option subnet-mask              255.255.255.0;

        option time-offset              -18000; # Eastern Standard Time

        range dynamic-bootp 192.168.111.128 192.168.111.200;

        default-lease-time 21600;

        max-lease-time 43200;

 

# --- tftp server

        next-server 192.168.111.10;

# --- pxe

        filename "pxelinux.0";

}

启动dhcp服务

 

Btftp服务器的搭建同样使用yum安装,有图有真相

 

对于tftp服务器,它的启动是用到超级守护进程的,所以要配置它的启动脚本/etc/xinetd.d/tftp,一下是我的配置参数

service tftp

{

        socket_type             = dgram

        protocol                = udp

        wait                    = yes

        user                    = root

        server                  = /usr/sbin/in.tftpd

        server_args             = -s /tftpboot

        disable                 = no

        per_source              = 11

        cps                     = 100 2

        flags                   = IPv4

}

然后重新启动超级守护进程

 

Tftp的根目录是在/tfptroot/,之后我们就要将linux内核文件、小镜像、启动配置文件、pxe驱动文件复制到tftp的根目录下,这些东西我们可以从linux的完整镜像中找到首先我们要将linux镜像挂载

mount /dev/cdrom /mnt/cdrom

cd /mnt/cdrom

进入images文件夹下并查看内容

 

其中pxeboot文件夹中有内核文件和小镜像

 

将文件拷贝到tftp根目录

 

拷贝pxe驱动文件到tftp根目录下

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

接下来要拷贝启动配置文件到tftp服务器上去

 

修改default文件,主要注意ks.cfg的路径

 

default linux

prompt 1

timeout 6

display boot.msg

F1 boot.msg

F2 options.msg

F3 general.msg

F4 param.msg

F5 rescue.msg

label linux

  kernel vmlinuz

  append initrd=initrd.img ks=ftp://192.168.111.10/ks.cfg

label text

  kernel vmlinuz

  append initrd=initrd.img text

label ks

  kernel vmlinuz

  append ks initrd=initrd.img

label local

  localboot 1

label memtest86

  kernel memtest

  append -

接下来就是来创建ks.cfg文件,可以使用system-config-kickstart软件来手工生成,当然这个软件是需要实现安装的同样是使用yum安装

yum install system-config-kickstart

然后打开软件创建ks.cfg文件,一下是我的操作截屏

基本配置  这里我设置了安装成功之后的root用户的密码123456

 

 

 

安装方法 这里我使用了root用户登录(这个在之后的ftp配置中要配置运行root用户登录)

 

这里有个错误ftp的根目录应该是/pub

 

 

引导选项

 

 

分区

 

 

网络设置使用dhcp自动获取

 

 

认证

 

 

防火墙设置

 

 

显示设置

 

 

软件包得选择可以根据个人情况定制

 

 

 

安装完成之后要执行的脚本

 

脚本内容如下

#!/bin/bash

ADDRESS=`/sbin/ifconfig eth0|grep -i "inet\>" |awk '{print $2}'`

NUM=${ADDRESS##*.}

NETADDRESS=${ADDRESS#*:}

sed -i -e "s/HOSTNAME.*/HOSTNAME=station$NUM.a.com/g" /etc/sysconfig/network

sed -i -e "s/127.0.0.1.*/127.0.0.1      station$NUM.a.com  localhost localhost.localdomain/g" /etc/hosts

sed -i -e "s/BOOTPROTO.*/BOOTPROTO=static\nIPADDR=$NETADDRESS\nNETMASK=255.255.255.0/g" /etc/sysconfig/network-scripts/ifcfg-eth0

之后将ks.cfg文件保存到/var/ftp/目录下

后还要修改一下ks.cfg文件,添上key –skip

  Cftp服务器的搭建

              yum install vsftp

       安装完成之后将/etc/vsftpd/ftpusers/etc/vsftpd/user_list文件中的root用户删除以保证root用户能够登录,将光盘重新挂载到ftp的根目录下可以省去拷贝光盘镜像文件到根目录下的麻烦,同时我在vsftp.conf文件中添加了local_root=/var/ftp/使得一root用户登陆默认目录也是/var/ftp

       

这样所有的准备工作就完成了

       2.pc机测试

打开虚拟PC机的电源,安装过程截图

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

到此启动成功,整个实验下来最重要的是要注意ks.cfg文件和安装后自动执行的脚本编写,希望你能成功!!!!





本文转自 chenming421  51CTO博客,原文链接:http://blog.51cto.com/wnqcmq/1157854

相关文章
|
15天前
|
Oracle 关系型数据库 Linux
linux8安装oracle 11g遇到的问题记录
Oracle 11g在Linux 8上安装时会遇到link编译环节的问题。官方建议忽略安装中的链接错误,安装完成后应用DBPSU 11.2.0.4.240716补丁及一次性补丁33991024,再重新编译二进制文件,并配置监听器和数据库。但因11g已退出服务期,这些补丁需付费获取。网上信息显示22年1月的PSU补丁也可解决问题,找到该补丁后按常规方式打补丁即可。如有需求或疑问可咨询我。
56 20
|
7天前
|
弹性计算 运维 Ubuntu
os-copilot在Alibaba Cloud Linux镜像下的安装与功能测试
我顺利使用了OS Copilot的 -t -f 功能,我的疑惑是在换行的时候就直接进行提问了,每次只能写一个问题,没法连续换行更有逻辑的输入问题。 我认为 -t 管道 功能有用 ,能解决环境问题的连续性操作。 我认为 -f 管道 功能有用 ,可以单独创建可连续性提问的task问题。 我认为 | 对文件直接理解在新的服务器理解有很大的帮助。 此外,我还有建议 可以在非 co 的环境下也能进行连续性的提问。
48 7
|
1月前
|
Linux Python
Linux 安装python3.7.6
本教程介绍在Linux系统上安装Python 3.7.6的步骤。首先使用`yum`安装依赖环境,包括zlib、openssl等开发库。接着通过`wget`下载Python 3.7.6源码包并解压。创建目标文件夹`/usr/local/python3`后,进入解压目录执行配置、编译和安装命令。最后设置软链接,使`python3`和`pip3`命令生效。
|
1月前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
166 20
|
1月前
|
NoSQL 关系型数据库 MySQL
Linux安装jdk、mysql、redis
Linux安装jdk、mysql、redis
182 7
|
1月前
|
Unix Linux 编译器
UNIX/Linux 上的安装
UNIX/Linux 上的安装。
53 2
|
2月前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
104 4
|
2月前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
256 8
|
2月前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
981 6