• PXE+kickstart网络安装CentOS7.4系统及过程中各种报错



    环境:关闭防火墙、selinux

    注意:虚拟机进行网络安装的话,7.3以后的系统是需要2G以上的内存

    复制代码
    [root@kickstart ~]# cat /etc/redhat-release
    CentOS Linux release 7.4.1708 (Core)
    [root@kickstart ~]# uname -r
    3.10.0-693.el7.x86_64
    [root@kickstart ~]# getenforce
    Disabled
    [root@kickstart ~]# systemctl status  firewalld.service
    ● firewalld.service - firewalld - dynamic firewall daemon
       Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
       Active: inactive (dead)
         Docs: man:firewalld(1)
    [root@kickstart ~]# hostname -I
    10.0.0.201 172.16.1.201
    复制代码

    博主使用的是虚拟机搭建

    此篇博主在搭建中的每一步都列出了会出现的错误和解决方式,如果出错了,不要着急,耐心看。

    有错、排错是提升的最快方式。

    kickstart的原理及组件

    首先安装DHCP

    yum install dhcp -y

    配置DHCP配置文件

    复制代码
    cat >>/etc/dhcp/dhcpd.conf<<EOF
    subnet 172.16.1.0 netmask 255.255.255.0 {   ## 指定网段   
    range 172.16.1.100 172.16.1.199;     ## 地址范围   
    option subnet-mask 255.255.255.0;   ## 分配的掩码 
    default-lease-time 21600;   ## 地址租约   
    max-lease-time 43200;       ## 最大租约   
    next-server 172.16.1.201;   ## 下一步找什么  
    filename "/pxelinux.0";    ## 要下载的文件(请求下载启动文件)
    }
    EOF
    复制代码

    启动dhcp查看日志

    systemctl start dhcpd     --- 启动
    systemctl status dhcpd    --- 查看状态
    tailf /var/log/messages   --- 查看日志

    dhcp相关错误须知

     

    然后安装TFTP

    yum install tftp-server -y

    启动服务

    复制代码
    [root@kickstart ~]# systemctl start tftp.socket 
    [root@kickstart ~]# systemctl status tftp.socket 
    ● tftp.socket - Tftp Server Activation Socket
       Loaded: loaded (/usr/lib/systemd/system/tftp.socket; disabled; vendor preset: disabled)
       Active: active (listening) since 二 2017-11-14 10:09:55 CST; 25s ago
       Listen: [::]:69 (Datagram)
    
    11月 14 10:09:55 kickstart systemd[1]: Listening on Tftp Server Activation ...t.
    11月 14 10:09:55 kickstart systemd[1]: Starting Tftp Server Activation Socket.
    Hint: Some lines were ellipsized, use -l to show in full.
    复制代码

    tftp相关错误须知

     

    报错是在TFTP服务的根目录找不到启动文件pxelinux.0

    解决:下载安装syslinux

    安装syslinux,生成/pxelinux.0文件

    [root@kickstart tftpboot]# yum install syslinux -y
    [root@kickstart tftpboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
    [root@kickstart tftpboot]# ll
    总用量 28
    -rw-r--r-- 1 root root 26764 11月 14 10:16 pxelinux.0

    错误须知

     

    首先排除最简单故障原因:selinux是否关闭,防火墙是否关闭

    上面的错误是因为pxelinux.0这个小系统的配置文件(default)不存在,或者文件名不对

     然后进行镜像挂载

    检查一下虚拟机是否使用了镜像

    然后进行挂载

    复制代码
    [root@kickstart tftpboot]# mkdir -p /var/www/html/CentOS7
    [root@kickstart tftpboot]# mount /dev/cdrom /var/www/html/CentOS7/
    mount: /dev/sr0 写保护,将以只读方式挂载
    [root@kickstart tftpboot]# df -h
    文件系统        容量  已用  可用 已用% 挂载点
    /dev/sda3        98G  1.5G   97G    2% /
    devtmpfs        479M     0  479M    0% /dev
    tmpfs           489M     0  489M    0% /dev/shm
    tmpfs           489M  6.8M  482M    2% /run
    tmpfs           489M     0  489M    0% /sys/fs/cgroup
    /dev/sda1      1014M  120M  895M   12% /boot
    tmpfs            98M     0   98M    0% /run/user/0
    /dev/sr0        4.3G  4.3G     0  100% /var/www/html/CentOS7
    复制代码

    从镜像中找到相关的配置文件

    [root@kickstart tftpboot]# cp -a /var/www/html/CentOS7/isolinux/* /var/lib/tftpboot/
    [root@kickstart tftpboot]# mkdir -p /var/lib/tftpboot/pxelinux.cfg 
    [root@kickstart tftpboot]# cp /var/www/html/CentOS7/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

    安装http

         作用1:提供自动应答文件下载

         作用2:提供安装系统所需的所有rpm包下载

    下载安装
    [root@kickstart tftpboot]# yum install httpd -y
    启动服务
    [root@kickstart tftpboot]# systemctl start httpd.service
    检测
    [root@kickstart tftpboot]# curl http://172.16.1.201/CentOS7/

    编辑default配置文件

    复制代码
    [root@kickstart ks_config]# cat /var/lib/tftpboot/pxelinux.cfg/default 
    default ks
    prompt 0
    label ks
      kernel vmlinuz
      append initrd=initrd.img ks=http://172.16.1.201/ks_config/CentOS7-ks.cfg net.ifnames=0 biosdevname=0 ksdevice=eth1
    复制代码

    自动安装(编写ks文件)

    命令段

        install开头,到%pre

    包组段

        以%packages开头,以%end结束

    脚本段

        以%post开头,以%end结束,在安装完系统之后执行的相关Linux命令、脚本

        以%pre开头,以%end结束,在安装完系统之前执行的相关Linux命令、脚本

     一大坨ks文件信息

    低级错误

    报错原因:selinux没关

    解决:关闭selinux

    CentOS7.4网络安装

     安装过程的常见报错

    原因:CentOS6和7的default文件中的append这一行不同

    解决方法:改append这一行

  • 相关阅读:
    [文摘20070930]激励员工20种非经济手段
    [文摘20071010]绿领
    新增及删除Grid行
    SqlAnyWhere相关示例SQL语句
    [文摘20071008]全国软考相关计算机技术与软件专业资格(水平)考试
    愉悦的时候
    [文摘20070924]导致事业不成功的心理致命伤
    快乐的生活
    给网络创业者的十大建议
    [转]winForm:DataGridView的一些技巧
  • 原文地址:https://www.cnblogs.com/wjlovezzd/p/13170194.html
Copyright © 2020-2023  润新知