一、环境准备

  • 1.rhel7 主机

  • 2.关闭防火墙和 selinux

  • 3.开启主机图形 init 5 开启图形(有图形界面可不做)

# 最小化安装可以yum安装以下图形界面
yum group install "Server with GUI" -y
# 开启图形界面
init 5
  • 4.配置网络可用

  • 5.关闭 VMware dhcp 功能

 


 

二、配置 Kickstart

2.1.安装 Kickstart 工具

  • 下载安装 Kickstart 
  • 注意:RHEL7.9后 就没有 system-config-kickstart 工具
yum install system-config-kickstart -y

 

  •  启动 Kickstart
system-config-kickstart

 

  • 修改 ks.cfg 文件,添加上需要安装的软件
vim ks.cfg

 

 

2.2.HTTP 搭建安装源

  • 安装 httpd
yum install httpd -y

 

  • 查看 /dev/sr0 挂载的目录,把目录链接到 /var/www/html/ 下
[root@rhel-7-server ~]# df
Filesystem            1K-blocks    Used Available Use% Mounted on
devtmpfs                 914520       0    914520   0% /dev
tmpfs                    931512       0    931512   0% /dev/shm
tmpfs                    931512   10536    920976   2% /run
tmpfs                    931512       0    931512   0% /sys/fs/cgroup
/dev/mapper/rhel-root  14665728 4925284   9740444  34% /
/dev/sda1               2086912  187108   1899804   9% /boot
/dev/sr0                4420474 4420474         0 100% /mnt
tmpfs                    186304      24    186280   1% /run/user/0
[root@rhel-7-server ~]# ln -s /mnt/ /var/www/html/
[root@rhel-7-server ~]# cd /var/www/html
[root@rhel-7-server html]# ls
mnt

 

  •  把 ks.cfg 文件通过 httpd 共享到网络,以供使用
[root@rhel-7-server ~]# ls
anaconda-ks.cfg  Documents  initial-setup-ks.cfg  Music     Public     Videos
Desktop          Downloads  ks.cfg                Pictures  Templates
[root@rhel-7-server ~]# vim ks.cfg 
[root@rhel-7-server ~]# ls
anaconda-ks.cfg  Documents  initial-setup-ks.cfg  Music     Public     Videos
Desktop          Downloads  ks.cfg                Pictures  Templates
[root@rhel-7-server ~]# mv ks.cfg /var/www/html/
[root@rhel-7-server ~]# cd /var/www/html
[root@rhel-7-server html]# ls
ks.cfg  mnt
  • 开启 httpd
systemctl enable --now httpd

 

  • 通过浏览器查看是否搭建好安装源

 


 

三、搭建 DHCP 服务器

  • IP 地址分配:为客户端自动分配 IP 地址,使无盘或未安装系统的设备能接入网络。

  • PXE 引导参数传递:通过 DHCP 协议的 next-server 和 filename 选项,告知客户端:

    • next-server:TFTP 服务器的 IP 地址。

    • filename:PXE 引导文件(如 pxelinux.0)在 TFTP 服务器上的路径。

  • 下载安装DHCP
yum install dhcp -y

 

  • 复制 DHCP 配置文件模板到 /etc/dhcp/dhcp.conf
\cp -f /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf

  • 编辑DHCP配置文件
vim /etc/dhcp/dhcpd.conf 

option domain-name "haha.org";
option domain-name-servers 223.5.5.5;

default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 192.168.67.0 netmask 255.255.255.0 {
  range 192.168.67.20 192.168.67.30;
  option routers 192.168.67.2;
  next-server 192.168.67.156;
  filename "pxelinux.0";
}

  • 开启DHCP
systemctl enable --now dhcpd

 


 

四、搭建 TFTP 服务器

4.1.THTP 简介

TFTP作用:

  • 传输引导文件:通过简单的无认证文件传输协议(TFTP),向客户端提供以下文件:

    • PXE 引导文件:如 pxelinux.0(由 Syslinux 提供)。

    • 内核与初始化镜像:如 vmlinuz(Linux 内核)和 initrd.img(初始化内存盘)。

    • 配置文件:如 pxelinux.cfg/default(启动菜单配置文件)。

  • 典型文件结构

/var/lib/tftpboot/
├── pxelinux.0                 # Syslinux 提供的 PXE 引导程序
├── vmlinuz                    # Linux 内核
├── initrd.img                 # 初始化内存镜像
└── pxelinux.cfg/
    └── default                # 启动菜单配置文件
  • 下载安装TFTP
yum install tftp-server -y

 

 

4.2.Syslinux 简介

Syslinux作用:

  • 提供 PXE 引导程序:生成 pxelinux.0 文件,作为 PXE 启动的引导加载程序(Bootloader)。

  • 配置启动菜单:通过 pxelinux.cfg/default 文件定义启动选项,例如:

    • 加载内核和初始化镜像。

    • 指定 Kickstart 自动安装配置文件(ks.cfg)的路径。

  • 下载安装Syslinux

yum install syslinux -y

 

4.3.搭建服务器

  • 复制 ISO 文件到 TFTP 目录
  • 从 Syslinux 复制 PXE 引导文件
cp /mnt/isolinux/* /var/lib/tftpboot/
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

     

    • 创建 TFTP 根目录
    • 复制启动菜单文件
    cd /var/lib/tftpboot/
    mkdir pxelinux.cfg
    cp isolinux.cfg pxelinux.cfg/default

     

    • 配置启动菜单文件
    • 注意:保存文件时用wq!
    vim pxelinux.cfg/default
    default vesamenu.c32
    timeout 60
    
    display boot.msg
    
    # Clear the screen when exiting the menu, instead of leaving the menu displayed.
    # For vesamenu, this means the graphical background is still displayed without
    # the menu itself for as long as the screen remains in graphics mode.
    menu clear
    menu background splash.png
    menu title Red Hat Enterprise Linux 7.9
    menu vshift 8
    menu rows 18
    menu margin 8
    #menu hidden
    menu helpmsgrow 15
    menu tabmsgrow 13
    
    # Border Area
    menu color border * #00000000 #00000000 none
    
    # Selected item
    menu color sel 0 #ffffffff #00000000 none
    # Title bar
    menu color title 0 #ff7ba3d0 #00000000 none
    
    # Press [Tab] message
    menu color tabmsg 0 #ff3a6496 #00000000 none
    
    # Unselected menu item
    menu color unsel 0 #84b8ffff #00000000 none
    
    # Selected hotkey
    menu color hotsel 0 #84b8ffff #00000000 none
    
    # Unselected hotkey
    menu color hotkey 0 #ffffffff #00000000 none
    
    # Help text
    menu color help 0 #ffffffff #00000000 none
    
    # A scrollbar of some type? Not sure.
    menu color scrollbar 0 #ffffffff #ff355594 none
    
    # Timeout msg
    menu color timeout 0 #ffffffff #00000000 none
    menu color timeout_msg 0 #ffffffff #00000000 none
    
    # Command prompt text
    menu color cmdmark 0 #84b8ffff #00000000 none
    menu color cmdline 0 #ffffffff #00000000 none
    
    # Do not display the actual menu unless the user presses a key. All that is displayed is a timeout message.
    
    menu tabmsg Press Tab for full configuration options on menu items.
    
    menu separator # insert an empty line
    menu separator # insert an empty line
    
    label linux
      menu label ^Install Red Hat Enterprise Linux 7.9
      kernel vmlinuz
      menu default
      append initrd=initrd.img repo=http://192.168.67.156/mnt ks=http://192.168.67.156/ks.cfg quiet
    
    label check
      menu label Test this ^media & install Red Hat Enterprise Linux 7.9
      kernel vmlinuz
      append initrd=initrd.img inst.stage2=hd:LABEL=RHEL-7.9\x20Server.x86_64 rd.live.check quiet
    
    menu separator # insert an empty line
    
    # utilities submenu
    menu begin ^Troubleshooting
      menu title Troubleshooting
    
    label vesa
      menu indent count 5
      menu label Install Red Hat Enterprise Linux 7.9 in ^basic graphics mode
      text help
            Try this option out if you're having trouble installing
            Red Hat Enterprise Linux 7.9.
      endtext
      kernel vmlinuz
      append initrd=initrd.img inst.stage2=hd:LABEL=RHEL-7.9\x20Server.x86_64 xdriver=vesa nomodeset quiet
    
    label rescue
      menu indent count 5
      menu label ^Rescue a Red Hat Enterprise Linux system
      text help
            If the system will not boot, this lets you access files
            and edit config files to try to get it booting again.
      endtext
      kernel vmlinuz
      append initrd=initrd.img inst.stage2=hd:LABEL=RHEL-7.9\x20Server.x86_64 rescue quiet
    
    label memtest
      menu label Run a ^memory test
      text help
            If your system is having issues, a problem with your
            system's memory may be the cause. Use this utility to
            see if the memory is working correctly.
      endtext
      kernel memtest
    
    menu separator # insert an empty line
    
    label local
      menu label Boot from ^local drive
      localboot 0xffff
    
    menu separator # insert an empty line
    menu separator # insert an empty line
    
    label returntomain
      menu label Return to ^main menu
      menu exit
    
    menu end
    

    • 启动 TFTP
    systemctl enable --now tftp

     


     

    五、测试

    • 新建虚拟机:此步骤省略

    • 此后不用操作,等待自动安装完成

     

    • 等待虚拟机自动启动

    六、总结

     

    Logo

    openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

    更多推荐