zoukankan      html  css  js  c++  java
  • PXE——无人值守自动安装Linux操作系统(踩坑记录)

    在这里插入图片描述

    DHCP服务

    DHCP服务器主要实现在企业内部网络为客户端分配IP地址等网络参数。

    在无人值守环境中,当客户端选择从网络启动后,就会通过发送广播数据包的形式寻找DHCP服务器,从DHCP获得IP地址等参数后才可以通过TFTP共享读取启动文件。

    (1)安装DHCP服务操作 yum install -y dhcp
    (2)修改配置文件以实现为客户端分配网络参数

    [root@python ~]# vim /etc/dhcp/dhcp.conf
    #dhcpd.conf
    #
    # Sample configuration file for ISC dhcpd
    log-facility local7;
    
    # A slightly different configuration for an internal subnet.
    subnet 192.168.213.0 netmask 255.255.255.0 {
      range 192.168.213.3 192.168.213.254;
      option domain-name-servers 192.168.213.163;
      option subnet-mask 255.255.255.0;
      option routers 192.168.213.2;
      default-lease-time 600;
      max-lease-time 7200;
      next-server 192.168.213.163;
      filename "pxelinux.0";
    }
    [root@python ~]# systemctl start dhcpd
    [root@python ~]# systemctl enable dhcpd
    [root@python ~]# netstat -tunpl|grep 67
    udp        0      0 0.0.0.0:67              0.0.0.0:*                           5440/dhcpd
    udp        0      0 0.0.0.0:67              0.0.0.0:*                           1506/dnsmasq
    

    TFTP服务

    TFTP服务为客户端提供一种简单的文件共享,他不具备向FTP那样丰富的功能,不过由于简单的设计,TFTP非常适用于传输小且简单的PXE启动文件。

    #安装TFTP
    [root@python ~]# yum install -y tftp-server
    #修改配置文件
    [root@python ~]# cat /etc/xinetd.d/tftp
    service tftp
    {
            socket_type     = dgram
            protocol        = udp
            wait            = yes
            user            = root
            server          = /usr/sbin/in.tftpd
            server_args     = -s /var/lib/tftpboot
            disable         = no	#关闭禁用状态
            per_source      = 11
            cps             = 100 2
            flags           = IPv4
    }
    

    安装tftp的动态管理工具
    tfpt是被xinetd动态管理的服务,启动服务,只需要启动xinetd即可

    [root@python ~]# yum install xinetd
    #将客户端所需要的启动引导文件复制到TFTP服务器
    [root@python ~]# yum install -y syslinux	#通过该软件包获取引导文件
    [root@python ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
    [root@python ~]# mount -o loop -t iso9660 /iso/CentOS-7-x86_64-DVD-1908.iso /var/ftp/centos7u7
    [root@python ~]# cp /var/ftp/centos7u7/isolinux/vmlinuz /var/lib/tftpboot/centos7u7/
    [root@python ~]# cp /var/ftp/centos7u7/isolinux/vesamenu.c32 /var/lib/tftpboot
    [root@python ~]# cp /var/ftp/centos7u7/isolinux/initrd.img /var/lib/tftpboot/centos7u7/
    [root@python ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
    [root@python ~]# cp /var/ftp/centos7u7/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
    [root@python ~]# cd /var/lib/tftpboot/pxelinux.cfg/
    [root@python pxelinux.cfg]# chmod 644 default
    [root@python ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
    default vesamenu.c32
    timeout 60
    display boot.msg
    menu background splash.jpg
    menu title CentOS X of Zhao
    
    label centos7 64 <Auto Installation>
      menu label Install CentOS Linux ^7 x86_64 <Auto>
      kernel centos7u7/vmlinuz
      append initrd=centos7u7/initrd.img inst.stage2=ftp://192.168.213.163/centos7u7 inst.repo=ftp://192.168.213.163/centos7u7 inst.ks=ftp://192.168.213.163/centos-7-ks.cfg
    
    label local
      menu default
      menu label Boot from ^local drive
      localboot 0xffff
    
    menu end
    #准备图片
    [root@python ~]# cp splash.jpg /var/lib/tftpboot/splash.jpg
    [root@python ~]# systemctl start xinetd
    [root@python ~]# systemctl enable xinetd
    [root@python ~]# ss -nutlp|grep 69
    udp    UNCONN     0      0         *:69                    *:*                   users:(("xinetd",pid=14264,fd=5))
    

    FTP服务

    FTP(file Transfer Protocol)文件传输协议,vsftp就是一种利用FTP协议进行数据共享的软件,vsftp主要特色就是提供一种安全的数据共享服务

    使用vsftp作为Centos系统文件的共享服务平台,当客户端从网络从网络启动正式进入到安装界面后,还需要读取Centos光盘中的系统文件,以完成最后的安装,这些文件就通过vsftp共享给网络用户。

    [root@python ~]# yum install -y vsftpd
    [root@python ~]# systemctl start vsftpd
    [root@python ~]# systemctl enable vsftpd
    

    自动化安装实例

    初始化系统环境

    [root@python ~]# systemctl stop firewalld
    [root@python ~]# systemctl disable firewalld
    [root@python ~]# sed -i.bak 's/=enforcing/=disabled/' /etc/sysconfig/selinux
    [root@python ~]# sed -i.bak 's/=enforcing/=disabled/' /etc/selinux/config
    [root@python ~]# setenforce 0
    [root@python ~]# cd /var/ftp/
    

    创建安装目录结构

    [root@python ftp]# mkdir centos6u8
    [root@python ftp]# mkdir centos7u7
    [root@python ftp]# cd /var/lib/tftpboot/
    [root@python tftpboot]# mkdir centos6u8
    [root@python tftpboot]# mkdir centos7u7
    

    配置启动DHCP

    配置启动TFTP

    创建自动应答文件

    [root@python ~]# yum install system-config-kickstart
    [root@python ~]# system-config-kickstart
    #检查有无语法错误
    [root@python ~]# ksvalidator ks.cfg
    [root@python ~]# mv ks.cfg /var/ftp/centos-7-ks.cfg
    

    自动安装虚拟机测试

    踩坑

    (1)引导装载程序选项
    在这里插入图片描述

    # System bootloader configuration
    bootloader --location=mbr	#在主引导记录(MBR)中安装引导装载程序
    # Partition clearing information
    clearpart --all
    

    若不安装引导装载程序(如下),开机会黑屏,卡在booting from local disk

    # System bootloader configuration
    bootloader --location=none
    

    内核参数添加 net.ifnames=0 biosdevname=0,会修改网卡名称为eth0

    # System bootloader configuration
    bootloader --append="net.ifnames=0 biosdevname=0" --location=mbr
    

    (2)安装方法
    在这里插入图片描述FTP目录也可在配置文件centos-7-ks.cfg中修改

    (3)记得挂载镜像
    mount -o loop -t iso9660 /iso/CentOS-7-x86_64-DVD-1908.iso /var/ftp/centos7u7

    若不挂载,会报错 can't find installer maininage path in .treeinfo

    Warning: can't find installer maininage path in .treeinfo
    Warning: Downloading 'ftp://192.168.213.163/centos7u7/Live0S/squashfs.img' failed!
    Warning anaconda: failed to fetch stage2 from ftp://192.168.213.163/centos7u7
    

    (4)导出ks.cfg文件后,要修改名称,在最后添加如下内容

    %packages
    @^minimal
    @core
    %end
    

    (5)装机图片有尺寸(640像素*480像素)要求,不符合要求的可能图片会显示失败
    (6)不正确的镜像可能会使操作系统安装失败

    测试CentOS-6.10-x86_64-minimal.iso无法全自动安装
    在这里插入图片描述
    (7)报错 failed to fetch kickstat from ftp
    可能是selinux没关或ftp未设置匿名模式
    (8)VMware Workstation 与 Device/Credential Guard 不兼容
    以管理员身份运行Windows Powershell (管理员)(Windows键+X),运行命令bcdedit /set hypervisorlaunchtype off,重启电脑

    此问题应该与windows的系统版本有关,是在windows 10自动更新后出现的

  • 相关阅读:
    数据绑定表达式语法(Eval,Bind区别)
    使用博客园的第一件事 自定义主题
    sql2000 跨服务器复制表数据
    使用UpdatePanel 局部刷新出现中文乱码的解决方法!!
    MMC不能打开文件MSC文件
    sql 日期 、时间相关
    loaded AS2 swf call function in AS3 holder
    Rewrite the master page form action attribute in asp.net 2.0
    100万个不重复的8位的随机数
    flash 中实现斜切变型
  • 原文地址:https://www.cnblogs.com/zhaoya2019/p/12761520.html
Copyright © 2011-2022 走看看