zoukankan      html  css  js  c++  java
  • 通过 pxe(网络安装)完成centos 系统的网络安装

    首先交代环境。本地2台主机,一台windows主机,一台等待安装centos的主机。2台主机在同一个局域网。通过路由器自动获取ip上网。
    网上大多数pxe安装方式都采用自己搭建dns服务器的方式来进行,but,我们的dns服务器就是一个小破路由器,自然是做不来这个事情。
    所以经过一番google,决定使用dnsmasq来搞定我们的dns服务器。临时凑合用用(主要是,突然发现家里没有一个大一点的U盘,也是醉了),网络环境:路由器网关 192.168.2.1,win ip:192.168.2.2,pxe server ip:192.168.2.3

    1.win主机上,hyper-v虚拟一个centos,暂称为 pxe server

    hyper-v 安装centos

    2.安装配置dnsmasq。

    #安装dnsmasq
    yum install dnsmasq
    #配置dnsmasq
    mv /etc/dnsmasq.conf  /etc/dnsmasq.conf.backup
    vi /etc/dnsmasq.conf
    #编辑如下类容
    #网卡名字,通过ip addr获取
     interface=eno16777736,lo
     domain=centos7.lan
     # DHCP range-leases
     dhcp-range= eno16777736,192.168.1.100,192.168.1.253,255.255.255.0,1h
     # PXE
     dhcp-boot=pxelinux.0,pxeserver,192.168.1.20
     # Gateway
     dhcp-option=3,192.168.1.1
     # DNS
     dhcp-option=6,92.168.1.1, 8.8.8.8
     server=8.8.4.4
     # Broadcast Address
     dhcp-option=28,10.0.0.255
     # NTP Server
     dhcp-option=42,0.0.0.0
     pxe-prompt="Press F8 for menu.", 60
     pxe-service=x86PC, "Install CentOS 7 from network server 192.168.1.20", pxelinux
     enable-tftp
     tftp-root=/var/lib/tftpboot
    

    参数解释:
    interface – 服务器需要监听并提供服务的网络接口。
    bind-interfaces – 取消注释来绑定到该网络接口
    domain – 替换为你的域名。
    dhcp-range – 替换为你的网络掩码定义的网段。
    dhcp-boot – 替换该IP地址为你的网络接口IP地址。
    dhcp-option=3,192.168.1.1 – 替换该IP地址为你的网段的网关。
    dhcp-option=6,92.168.1.1 – 替换该IP地址为你的DNS服务器IP——可以定义多个IP地址。
    server=8.8.4.4 – 这里放置DNS转发服务器IP地址。
    dhcp-option=28,10.0.0.255 – 替换该IP地址为网络广播地址——可选项。
    dhcp-option=42,0.0.0.0 – 这里放置网络时钟服务器——可选项(0.0.0.0地址表示参考自身)。
    pxe-prompt – 保持默认——按F8进入菜单,60秒等待时间。
    pxe=service – 使用x86PC作为32为/64位架构,并在字符串引述中输入菜单描述提示。其它类型值可以是:PC98,IAEFI,Alpha,Arcx86,IntelLeanClient,IA32EFI,BCEFI,XscaleEFI和X86-64EFI。
    enable-tftp – 启用内建TFTP服务器。
    tftp-root – 使用/var/lib/tftpboot——所有网络启动文件所在位置。

    3.安装syslinux和tftp-server并完成配置

    yum install syslinux
    yum install tftp-server
    #copy 安装引导文件
    cp -r /usr/share/syslinux/* /var/lib/tftpboot
    mkdir /var/lib/tftpboot/pxelinux.cfg
    #创建安装引导配置文件并编辑为下面的内容
    touch /var/lib/tftpboot/pxelinux.cfg/default
    #我们使用syslinux引导安装,通过ftp传输安装包,所以,label 2,3,4可以删除。
    default menu.c32
    prompt 0
    timeout 300
    ONTIMEOUT local
    menu title ########## PXE Boot Menu ##########
    label 1
    menu label ^1) Install CentOS 7 x64 with Local Repo
    kernel centos7/vmlinuz
    #我们自己搭建的ftp地址:ftp://192.168.1.20/pub
    append initrd=centos7/initrd.img method=ftp://192.168.1.20/pub devfs=nomount
    
    label 2
    menu label ^2) Install CentOS 7 x64 with <http://mirror.centos.org> Repo
    kernel centos7/vmlinuz
    append initrd=centos7/initrd.img method=http://mirror.centos.org/centos/7/os/x86\_64/ devfs=nomount ip=dhcp
    
    label 3
    menu label ^3) Install CentOS 7 x64 with Local Repo using VNC
    kernel centos7/vmlinuz
    append  initrd=centos7/initrd.img method=ftp://192.168.1.20/pub devfs=nomount inst.vnc inst.vncpassword=password  
    
    label 4
    menu label ^4) Boot from local drive
    

    4.准备centos安装包

    #首先使用sftp之类的工具把我们的centos安装镜像上传到我们的pxe server
    #接着,挂在这个镜像
    5.mount -o loop /path/to/centos-dvd.iso  /mnt
    #创建tftp安装文件下载目录,并copy镜像内的文件到目录
    mkdir /var/lib/tftpboot/centos7
    cp /mnt/images/pxeboot/vmlinuz  /var/lib/tftpboot/centos7
    cp /mnt/images/pxeboot/initrd.img  /var/lib/tftpboot/centos7  
    #安装ftp。copy镜像文件到ftp目录。此处目录要和syslinux配置的引导配置文件中的地址要一致
    yum install vsftpd
    cp -r /mnt/*  /var/ftp/pub/ 
    #修改文件权限
    chmod -R 755 /var/ftp/pub
    

    5.准备工作已完成,接下来就是配置需要安装centos的主机了。

    检查主板是否开启并支持了pxe安装方式。大约就是进blos配置一下
    无耻的盗一下图:


    并且设置pxe为启动顺序第一位,然后保存配置重启主机。
    这个时候,不出意外的话,主机上就会显示我们在pxe server里配置syslinux引导菜单了。
    选择 label 1 开始安装。
    附上pxe server的日志

  • 相关阅读:
    PHP 设计模式系列 —— 资源库模式(Repository)
    在 Laravel 5 中使用 Repository 模式实现业务逻辑和数据访问的分离
    laravel集合
    2013项目总结
    项目总结
    到底创建了几个String对象?
    String s=new String("abc")创建了几个对象?
    局部刷新
    robot framework 在pycharm中语法无法高亮显示的,显示绿色解决办法(Robot Framework with PyCharm)
    UNIX环境高级编程——进程管理和通信(总结)
  • 原文地址:https://www.cnblogs.com/calvinK/p/7070587.html
Copyright © 2011-2022 走看看