Centos7 Pxelinux无盘启动centos7与ubuntu16.04的实现

服务器运维实战:RAID配置与PXE网络启动全流程解析 在数据中心运维与服务器管理中,RAID(独立磁盘冗余阵列)和PXE(预启动执行环境)是两项基础且关键的技术。RAID通过将多块物理磁盘组合成逻辑单元,在数据冗余、读写性能与存储容量之间提供平衡,其级别如RAID 0、RAID 1、RAID 5和RAID 10分别适用于不同性能与安全需求的场景。PXE则是一种网络启动协议,允许计算机在没有本地存储设备的情况下,通过局域网从远程服务器加载操作系统镜像,这为服务器批量部署、系统快速恢复和集中化管理提供了核心支撑。结合浪潮服务器等硬件平台,运维工程师可以高效完成从底 阅读详情

                   Centos7 Pxelinux无盘启动centos7与ubuntu16.04的实现

========================================================================================================================================
说明: 本文基于CENTOS7_x86_64操作系统, 所需的软件安装推荐使用yum以简化安装流程.关于YUM源的设定请参照本文最后一章的说明. 如使用7.0以上版
本的RHEL/CentOS制作,服务的开启等通过systemctl命令管理,请自行查找使用方法.Ubuntu使用的是Ubuntu 16.04 desktop,其他版本的ubuntu,自行查找
本文只制作了centos与ubuntu的服务器与客户端,centos为主

切记不要将DHCP Server网口连到非本地测试网络外的其他网络,会导致其他网络IP分配异常.
========================================================================================================================================


所需软件和服务

服务器端: 
    DHCP:        为客户端分配IP
    TFTP:        Tiny FTP, 传送PXE Menu, Kernel, Initrd等文件
    NFS-utils:        网络文件系统,可供Client挂载,存储文件等
    Rpcbind:        NFS的守护进程
    Syslinux:         提供PXE启动引导文件pxelinux.0

客户端
    需要先在本机硬盘内完整安装一遍Linux操作系统,然后将该操作系统的镜像稍作修改后拷贝到nfs服务的启动目录内,以后相同硬件平台的客户端机
    器都可以从该目录启动和挂载根文件系统,实现PXE无盘操作.
        
========================================================================================================================================
以下为正文,所有操作均使用root用户权限完成.


                第1章 Centos7服务器端软件的安装,配置及启动

    关于Ubuntu16.04 desktop作为服务器请参考第6章
  1.1 设定本机固定IP:
      将要提供PXE启动服务的网口设定为固定IP 192.168.56.160,并重新启动网络, 查看IP是否生效. 此为Linux基本操作,不再详述.
      
  1.2 DHCP
      1.2.1    DHCP安装
            yum install -y dhcp
            
      1.2.2    修改DHCP配置文件
            vi /etc/dhcp/dhcpd.conf
            
            #内容如下,注意分号一定不能少
            # dhcpd.conf 部分参数说明:
            # default-lease-time      // 指定确认租赁时长,单位为秒,-1 表示无限制
            # max-lease-time          // 指定最大租赁时长
            # authritative            // 拒绝不正确的IP 地址的要求
            # subnet netmask {}       // 设置dhcp 区域
            # range                   // 提供动态分配IP 的范围;若所有工作站都是绑定的固定IP,可删除此配置
            # option routers          // 设置网关/路由器地址,多个地址用逗号隔开;若不想让客户端上网,可删除此配置
            # domain-name-servers     // 设置DNS,若不想让客户端上网,可删除此配置;多个地址用逗号隔开
            # next-server             // 告知工作站TFTP 服务器的地址,TFTP 服务提供启动引导
            # filename                // 告知工作站PXE 引导程序名
            # host XXX {}             // 此处是根据工作站的MAC 地址绑定固定的IP 地址,前提是知道MAC 地址
            # hardware ethernet       // 工作站的MAC 地址,一定要小写
            # fixed-address           // 绑定固定的IP 地址,和range 的不会有冲突,优先以它为主

            ddns-update-style none;
            ignore client-updates;
            default-lease-time -1;
            max-lease-time -1;
            authritative;
            
            subnet 192.168.56.0 netmask 255.255.255.0 {
                range 192.168.56.100 192.168.56.200;
                next-server 192.168.56.160;               
                filename "pxelinux.0";
            }
            
            
      1.2.3    重启DHCP,并加入开机自动启动: 
            service dhcpd restart /systemctl restart dhcpd.service
            chkconfig dhcpd on /systemctl enable dhcpd.service
            systemctl status dhcpd.service
            到此配置基本完成
            将DHCP服务器绑定在"ens33"网卡上
              在/etc/sysconfig/dhcpd文件末尾添加:  
            DHCPDARGS="ens33
            
      1.2.4    关闭防火墙,并确认防火墙是否关闭成功
            firewall-cmd --state /systemctl status firewalld.service
            service firewalld stop/systemctl stop firewalld.service              
            systemctl disable firewalld.service
            
            
            彻底关闭防火墙的方法: 
            vim /etc/selinux/config
            
            将 SELINUX=enforcing 改成:
            SELINUX=disabled
            重启系统后生效
            getenforce查看是否为Disabled
            
      1.2.5    检查DHCP server是否工作:可新建虚拟机连接到该server,若能正确分到192.168.56.161~192.168.56.170之间的IP,则说明DHCP工作正常.
      
      
  1.3 TFTP
      1.3.1    建立文件夹
            mkdir -p /pxeserver/tftpboot
            mkdir -p /pxeserver/models
            
      1.3.2    TFTP安装
            yum install -y tftp-server tftp
            
      1.3.3    修改TFTP配置文件
            vim /etc/xinetd.d/tftp
            
            只需修改如下两处
            server_args = -s /pxeserver/tftpboot #改成刚刚新建的地址 修改后没有成功继续使用的是/var/lib/tftpboot,所以就没有修改,直接用这个目录
            disable = no                         #disable改为no
            
      1.3.5 重启TFTP,并加入开机自动启动
            systemctl status tftp.service 
            systemctl starttftp.service
            systemctl enable tftp.servicet
                    
                    
  1.4 NFS    
      1.4.1    NFS安装
            yum install -y nfs-utils rpcbind
            
      1.4.2    修改NFS配置文件
            vim /etc/exports
            
            添加如下内容:
            /pxeserver/models    192.168.1.0/24(rw,async,no_root_squash,insecure)  #insecure这个是需要加的
            exportfs -rv 更新nfs
            
      1.4.3    重启rpcbind,nfs,并加入开机自动启动
            systemctl status rpcbind.service
            systemctl start rpcbind.service
            systemctl enable rpcbind.service

            systemctl status nfs.service
            systemctl start nfs.service
            systemctl enable nfs.service
            
            
      1.4.4    检查nfs文件夹是否发布成功
            exportfs
            
            应该可以看到如下内容:
            /pxeserver/models         
                            192.168.56.0/24


  1.5 syslinux
      1.5.1    syslinux安装
            yum install -y syslinux
            
      1.5.2 拷贝PXE引导文件pxelinux.0到tftpboot
            cp /usr/share/syslinux/pxelinux.0  /pxeserver/tftpboot
            
      1.5.3    拷贝内核vmlinuz和启动镜像initrd到/pxeserver/tftpboot
            从客户端的本地镜像/boot下拷贝过来,initrd会在客户端用dracut生成后再拷贝,后面2.6.2节有详细介绍
            
      1.5.4    创建配置文件,即PXE启动时看到的菜单相关的文件  这个启动文件原本在安装光盘下 /dev/cdrom/isolinux/isolinux.cfg可参考去修改,可参考3.2节
            mkdir -p /pxeserver/tftpboot/pxelinux.cfg
            vim /pxeserver/tftpboot/pxelinux.cfg/default
            
            添加如下基本内容:
            default auto
            label auto
            prompt 0
            kernel vmlinuz-work  
            append initrd=initrd-work.img root=nfs:192.168.56.160:/pxeserver/models/work selinux=0 ip=dhcp rw vga=0x314
            
            我的default为:
            default vesamenu.c32
            display boot.msg
            timeout 600
            prompt 1
            menu background splash.jpg
            label centos-7.6.1810
            kernel vmlinuz-work  
            append initrd=initrd-work.img root=nfs:192.168.56.160:/pxeserver/models/work selinux=0 ip=dhcp rw nomodeset  vga=0x314
            
            #append 不能换行
            #prompt 0 表示工作站立即启动,1 表示工作站等待选择
            # nomodeset 这个参数是配合后面的vga=参数一起使用,设置分辨率
            # vga= 这个参数值是设置分辨率,0x 表示十六进制,0314 表示800*600 16 位色;若无特殊需求,建议删除这2个参数
            #以上kernel file和initrd的文件名中work的最好与/pxeserver/models/work路径中一致,
            #取决于客户端建立镜像时使用的名称,建议以机器型号命名,如本文第2部分使用work
            
            
            
  1.6 /pxeserver路径下的结构如下
      /pxeserver
            |___models        -------------------- 此路径可存放多个客户端镜像路径,下一级路径建议以机器型号命名
            |        |____work    -------------------- 存放xxx机器的nfs文件系统
            |
            |___tftpboot        -------------------- 此路径存放tftp server及PXE启动相关的文件
                    |____pxelinux.cfg
                    |        |____default    -------- 默认的PXE启动配置文件
                    |        
                    |____pxelinux.0    -----------------PXE启动引导文件
                    |
                    |___vmlinuz-work    -----------------xxx型号机器的客户端linux kernel文件
                    |
                    |___initrd-work.img    ------------ xxx型号机器的客户端linux 启动镜像文件
                    
                    
  1.7 服务器端配置完成后重启一遍,再用service指令查看一下dhcp xinetd nfs是否正常启动,防火墙是否关闭.    
  
  
                第2章 Centos7客户端制作文件系统镜像及启动文件镜像

    Ubuntu 16.04 desktop 客户端制作文件系统镜像及启动文件镜像 请参考第5章                
  2.1 建立/pxeserver/models/xxx路径 
      mkdir -p /pxeserver/models/work       #此处可以用网卡命名为例建立路径
      mkdir -p /pxeserver/tftpboot
      
  2.2 使用rsync保存整个系统的文件镜像,注意此时不要挂载CD, U盘的大容量存储设备,会被一并添加到镜像,增加镜像的容量.也可用自行添加
      --exclude='挂载目录'的方式排除外部存储设备
      
      rsync -av --exclude='/proc' --exclude='/sys' --exclude='/tmp' --exclude='/var/tmp' --exclude='/etc/mtab' \
      --exclude='/pxeserver' /* /pxeserver/models/work
     rsync -avz  --exclude='/pxeserver' --exclude='/proc' --exclude='/sys' --exclude='/tmp' --exclude='/var/tmp' --exclude='/media' \
    --exclude='/mnt' --exclude='/etc/mtab' --exclude='/run' --exclude='/opt' --exclude='/dev'   /* /pxeserver/models/work
      
    ubuntu 有 --exclude='/lost+found'
      #如果客户端系统中有自建路径或文件不想加入镜像的可用 --exclude参数排除
    报错:rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1518) [generator=3.0.9]
    使用root登录在执行这个命令
    但是ubuntu可能没办法直接用root登录,所以需要修改ubuntu系统
      
  2.3 在work路径下自行建立上一步排除的路径,应该注意到这几个路径是fstab内的非本地硬盘挂载点.
      cd /pxeserver/models/work
      mkdir -p proc sys tmp var/tmp
      mkdir -p proc sys tmp var/tmp media mnt opt run dev 针对第二个rsync 
      如果没有同步dev,则要使用下面的命令创建设备:
        mknod -m 666 console c 5 1
        mknod -m 666 null c 1 3 
      
      
  2.4 删除以太网络配置文件,因为该配置内通常会含有MAC信息,后续其他机器启动时会自动建立该文件,如不删除有可能会造成客户端网卡启动异常.只留lo
      rm -f /pxeserver/models/work/etc/sysconfig/network-script/ifcfg-ens*
      
  2.5 修改文件系统挂载点设定文件 etc/fstab
      vim /pxeserver/models/work/etc/fstab
      
      删除其中本地文件系统相关的条目,换成nfs挂载点.
      例如删除如下3条(取决于安装操作系统时的分区layout),CENTOS6的本地文件系统一般是ext4
      
      /dev/mapper/VolGroup-lv_root              /        ext4    defaults        1 1
      UUID=b9db4c59-5da9-49d5-a99d-20629aac803c /boot    ext4    defaults        1 2
      /dev/mapper/VolGroup-lv_home               /home    ext4    defaults        1 2
      
      换成如下:
    192.168.56.160:/pxeserver/models/work /                       nfs     defaults,sync,rw,nolock        0 0
    tmpfs        /dev/shm    tmpfs        defauls        1 1
    devpts        /dev/pts    devpts        gid=5,mode=620    0 0
    sysfs        /sys        sysfs        defaults    0 0
    proc        /proc        proc        defaults    0 0
 2.6 打包压缩/pxeserver路径
      cd /      #确认当前路径不在/pxeserver内
      tar -zcvf work.tar.gz work    
      将生成的压缩文件通过优盘,移动硬盘或者通过nfs上传到服务器端 并解压
      tar -zxvf work.tar.gz 
      
  2.7 制作initrd-work.img 
  
      将同不好的客户机文件放到服务器的nfs目录下
      2.7.1    安装dracut和dracut-network
            yum install -y dracut dracut-network
      2.7.2  复制内核文件到tftp 服务器上
        cp /pxeserver/models/work/boot/vmlinuz-3.10.0-957.el7.x86_64  /var/lib/tftpboot/vmlinuz-work
            
      2.7.2    制作initrd镜像,拷贝kernel文件
            chroot /pxeserver/models/work 切换用户到客户机上开始制作镜像
            dracut initrd-`uname -r`.img `uname -r`
            exit  退出客户端
            chmod 644 initrd-`uname -r`.img
            mv initrd-`uname -r`.img /pxeserver/tftpboot/initrd-work.img
     2.7.3    查看镜像内是否包含nfs
             lsinitrd initrd-work.img | grep nfs
     2.7.4    dracut制作镜像的问题
            [root@localhost ~]# dracut initrd-`uname -r`.img `uname -r`
            Configuration file /etc/systemd/user.conf is marked executable. Please remove executable permission bits. Proceeding anyway.
            Configuration file /etc/systemd/user.conf is marked world-writable. Please remove world writability permission bits. Proceeding anyway.

            修改文件的权限:chmod 644 /etc/systemd/user.conf    
  
                第3章 在服务器端解压缩镜像并配置
      
 
                
  3.1 PXE启动过程中常见错误及排除方法
  
      网卡报Check cable:         检查服务器端网络是否启动或网线
      DHCP进度条一直转分不到IP:         检查DHCP Server是否正常启动
      TFTP超时:             检查TFTP服务是否启动,防火墙是否关闭,/etc/xinetd.d/tftp内设置是否修改正确
      找不到kernel或启动镜像:         检查pxelinux.cfg/default文件配置是否有错误 或者kernel initrd文件是否正确的放在了
                    /pxeserver/tftpboot下,initrd要有644属性
      启动过程中无法挂载nfs:        检查nfs是否启动正常, pxelinux.cfg/default文件中nfs地址是否有错误
      
  3.2 服务器端高级pxelinux.cfg/default选单配置
  
      使用安装盘中的高级选单:
      将安装光盘中 isolinux路径下的splash.jpg vesamenu.c32 memtest 拷贝到/pxeserver/tftpboot路径下,
      将相同路径下的 isolinux.cfg拷贝到/pxeserver/tftpboot/pxelinux.cfg路径下并改名为default
      
      修改default文件内容如下,主要改动在每一个Label下的Kernel file, initrd file的名称,地址, root挂载点等. Modelname1,2为其他型号机器的范
      例,依照本文第2,3两部分完成客户端操作系统镜像制作后,Model1,2改为对应的型号名即可.splash.jpg为PXE启动菜单选择界面的背景图片,可以根据
      尺寸要求(640*480像素)个性化定制.
      
      default vesamenu.c32
      #prompt 1
      timeout 600
      
      display boot.msg
      
      menu background splash.jpg
      menu title Please select corresponding boot image-CentOS6.8
      menu color border 0 #ffffffff #00000000
      menu color sel 7 #ffffffff #ff000000
      menu color title 0 #ffffffff #00000000
      menu color tabmsg 0 #ffffffff #00000000
      menu color unsel 0 #ffffffff #00000000
      menu color hotsel 0 #ff000000 #ffffffff
      menu color hotkey 7 #ffffffff #ff000000
      menu color scrollbar 0 #ffffffff #00000000
      
      label DL360G9 
        menu label ^DL360G9 PXE boot
        menu default
        kernel vmlinuz-DL360
        append initrd=initrd-DL360G9.img root=nfs:192.168.1.5:/pxeserver/models/DL360G9 selinux=0 ip=dhcp rw nomodeset vga=0x0314
        
      label Modelname1
        menu label Modelname^1 PXE boot
        menu default
        kernel vmlinuz-Modelname1
        append initrd=initrd-Modelname1.img root=nfs:192.168.1.5:/pxeserver/models/Modelname1 selinux=0 ip=dhcp rw nomodeset vga=0x0314
        
        label Modelname2
        menu label Modelname^2 PXE boot
        menu default
        kernel vmlinuz-Modelname2
        append initrd=initrd-Modelname2.img root=nfs:192.168.1.5:/pxeserver/models/Modelname2 selinux=0 ip=dhcp rw nomodeset vga=0x0314
      label local
        menu label Boot from ^local drive
        localboot 0xffff
        
      label memtest86
        menu label ^Memory test
        kernel memtest
        append -
        
               第4章 其他
  4.1 服务器端的设定可以在虚拟机中完成,易于备份和转移.
 
  4.2 关于YUM源的设定
      4.2.1 通过网络YUM源安装
            如果服务器能够直接连接到互联网,那么直接联网使用yum是最简便的方式,有时第一次使用yum时会遇到域名不能解析的问题,在
            /etc/resolv.conf中添加有效的DNS server地址即可,如加入以下一条
            nameserver 114.114.114.114

      4.2.2    使用本地CDROM或安装U盘做YUM源
            无法连接到互联网时,用CDROM或U盘做YUM源也是很方便的. 如下以使用安装U盘做YUM源为例介绍如何修改media YUM源.
            
            首先挂载U盘,建议直接挂载到/media :
            mount /dev/sdxx /media    #sdxx 为安装U盘所在的分区,建议使用FAT32格式,CENTOS6需要额外安装软件才能支持NTFS
            
            然后修改/etc/yum.repos.d/下的主配置文件CentOS-Base.repo,将其改名以屏蔽使用主配置:
            mv CentOS-Base.repo CentOS-Base.repo.bak
            
            最后修改/etc/yum.repos.d/下的CentOS-Media.repo,以使用本地媒体做YUM源:
            baseurl=file:///media/xxx
                    file:///media/xxx
                    file:///media/xxx    
            只需将上述三条中的任意一条映射到正确的挂载点即可,可修改第一条,并修改gpgcheck,enabled以开启media YUM源.
            baseurl=file:///media
                    file:///media/xxx
                    file:///media/xxx
            gpgcheck=0
            enabled=1
              

             第5章 ubuntu的无盘启动的镜像制作(针对上面的centos服务器)

5.1制作根目录
    5.1.1安装工具
        前提是ubuntu16.04作为客户端安装好了
        apt install nfs* initramfs-tools debootstrap
        #nfs为客户端的nfs-client 
        #initramfs-tools用来制作启动文件initrd.nfs
        #debootstrap 用来制作跟文件系统,但是这个方法不起作用
    5.1.2制作根目录        
        问题:在使用的rysnc这个同步命令可以试验一下,制作出来的根目录可不可以用?,但是根据第二章的制作方法,
                 ubuntu是找不到etc/sysconfig/network-script/ifcfg-ens*进行删除的
                 debootstrap --verbose --arch=amd64 xenial /nfsroot
                 debootstrap --verbose --arch=amd64 xenial /nfsroot  http://mirrors.aliyun.com/ubuntu
                 制作不出所需要的很目录
        
        因此采用cp的方式:
        cd /
        cp -rf bin/ boot/ dev/ home/ etc/ lib/ lib64/ root/ snap/ srv/ var/ /nfsroot/ 其中 var下的tmp要清空
                              mkdir -p proc sys tmp var/tmp media mnt opt run dev
        
    5.1.3 修改制作的根目录下的 etc/fstab 
        vim  /pxeserver/models/ubuntu/etc/fstab  # 这个文件为空 添加以下内容,(若果etc下有mtab,就删掉mtab,可以不删)
        在最后面添加一句
        dev/nfs       /               nfs    defaults          1       1
        
    5.1.5添加启动项
        Ubuntu在initrd镜像中不提供网络启动支持因此你需要创建一个新的initrd.img文件。首先添加下列行到/etc/initramfs-tools/initramfs.conf
        这是在制作镜像的时候需要的,因此,客户机上安装的这个工具要修改,自己制作的根目录也要修改
        vim /etc/initramfs-tools/initramfs.conf
        vim /pxeserver/models/ubuntu/etc/initramfs-tools/initramfs.conf 添加修改
        
        BOOT=nfs
        MODULES=netboot 
        #修改后就在也无法启动了,因此不要中途关机
        #不然在重启ubuntu的时候会一只找 nfsmount: need a path
        #连recovery 模式都进不去,只能重装系统,做好后最好修改回来

        
    5.1.5打包客户端
        打包制作的客户端根目录,放到centos服务器内解压
         tar -zcvf ubuntu.tar.gz /nfsroot
5.2制做启动镜像
    由于是直接cp的根目录所以无需chroot
    mkinitramfs -o initrd-ubuntu.img
    mkinitramfs -o initrd-ubuntu.nfs
    这两个应该都可以试一试
    将制作的initrd-ubuntu.img复制到centos/ubuntu服务器的tftp下/var/lib/tftpboot
    拷贝内核到服务器的/var/lib/tfftpboot/
    ls /boot/vmlinuz-`uname -r` 
    
5.3制作ubuntu root用户登录(这个可能不需要去做,因为我习惯root登录去做系统,所以就这样做了)
    5.3.1设置root密码
        passwd root
    5.3.2修改启动登录界面
        sudo gedit usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf
        在最后一行添加greeter-show-manual-login=true 
        如果要去掉guest用户添加allow-guest=false 

5.4.编写 ubuntu的启动参数

    5.4.1修改/var/lib/tftpboot/pxelinux.cfg/default
        vim /var/lib/tftpboot/pxelinux.cfg/default
        添加lable内容:
        label Ubuntu-16.04
        kernel vmlinuz-ubuntu
        append root=/dev/nfs  initrd=initrd-ubuntu.img nfsroot=192.168.56.160:/pxeserver/models/ubuntu ip=dhcp rw
    5.4.2注意pxelinux.0的使用
        问题: 在ubuntu下使用apt install syslinux 时,无论是 /usr/lib/syslinux下 还是/usr/share/syslinux下都没有pxelinux.0的启动文件
        方法:那是因为ubuntu安装的syslinux的版本6.03过高造成的,因此需要下载老的版本去找pxelinux.0
        wget https://mirrors.edge.kernel.org/pub/linux/utils/boot/syslinux/syslinux-4.05.tar.bz2   #参考centos7.6 安装的为4.05
        tar xvf syslinux-4.05.tar.bz2 
        cd syslinux-4.05/core      #pxelinux.0就在这个下面

            第6章 ubuntu作为无盘启动的服务器的方法
6.1参考网址
    这个过程与第一章的内容相似,但略有不同
    6.1.两个网址
        http://xmodulo.com/diskless-boot-linux-machine.html
        https://blog.youkuaiyun.com/politefish/article/details/4444417
        
        #这两个都比较老,仅供参考

6.2环境
        所使用的环境是ubuntu16.05 desktop版
        安装依赖库:
        apt install isc-dhcp* tftpd-hpa syslinux nfs* initramfs-tools
        apt update
        apt upgrade
6.3配置DHCP服务器
    
    6.3.1配置DHCP
        vim /etc/dhcp/dhcpd.conf
        添加:
        allow booting;
        allow bootp;

        subnet 192.168.56.0 netmask 255.255.255.0 {
            range 192.168.56.173 192.168.56.183;
            option broadcast-address 192.168.56.255;
            option routers 192.168.56.1;
            filename "pxelinux.0";
        }
        注意pxelinux.0参考5.4.2
    6.3.2重启服务器
        systemctl status isc-dhcp-server
         systemctl start isc-dhcp-server
        systemctl enablet isc-dhcp-server
6.4配置tftp服务器
    
    6.4.1修改配置文件
        vim etc/default/tftpd-hpa
        添加两行:
        RUN_DAEMON="yes"
        OPTIONS="-l -s /var/lib/tftpboot/"
    6.4.2重启tftp,并修改权限
        systemctl status tftpd-hpa.service 
        systemctl restart tftpd-hpa.service 
        systemctl enable  tftpd-hpa.service 
        
    6.4.3添加启动必须文件到/var/lib/tftpboot/
        
        cp pxelinux.0 /var/lib/tftpboot/ # 复制引导程序,关于pxelinux.0参考5.4.2
        cd /var/lib/tftpboot/
        mkdir pxelinux.cfg
        vim pxelinux.cfg/default
        添加:

        default Ubuntu
        prompt 0

        label Ubuntu
        kernel vmlinuz
        append root=/dev/nfs initrd=initrd.img nfsroot=192.168.56.172:/nfsroot ip=dhcp rw
        
        #拷贝内核镜像
         cp /boot/vmlinuz-`uname -r` /var/lib/tfftpboot/vmlinuz
        #拷贝第五章制作的根目录镜像
        cp initrd.img /var/lib/tfftpboot/
        chmod -R 777 /var/lib/tftpboot/
    6.4.4/var/lib/tftpboot/下的文件
        目录文件同1.6节的tftpboot
6.5配置NFS服务器
    6.5.1创建虚拟根目录
         sudo mkdir /nfsroot
        根据第五章将根目录拷贝到此目录下5.1.2
    6.5.2 配置nfs
        vim /etc/exportfs
        添加:
        /nfsroot             *(rw,no_root_squash,async,insecure,no_subtree_check)

        sudo exportfs -rv    # 刷新nfs
    6.5.3重启nfs
        systemctl status nfs-server.service    
        systemctl restarts nfs-server.service    
        systemctl enable nfs-server.service
        
        chmod -R 777 /nfsroot
致此ubuntu服务器配置完毕,建议服务器使用固定ip地址    


        
        

    


 

Ubuntu安装不是起点,而是系统生命周期的决定性分水岭 Linux发行版安装看似基础操作,实则是内核版本策略、硬件兼容性、安全启动链路与包管理哲学的集中体现。Ubuntu作为Debian系主流发行版,其Desktop/Server/Core三类安装介质差异远超界面形式,本质对应systemd架构、subiquity工程范式与原子化OTA等底层设计。LTS版本的内核冻结机制与HWE升级路径、UEFI固件配置对Secure Boot和IOMMU的支持、LUKS+LVM存储方案选型,共同构成生产环境稳定性的技术基线。本文深入解析ISO校验、自动部署(autoinsta 阅读详情

相关推荐

PXE批量安装系统:从原理到实战部署指南

在服务器运维和云计算环境中,自动化部署是提升效率、保障一致性的关键技术。其核心原理是通过网络引导技术,实现操作系统从远程服务器到目标设备的无人值守安装。这项技术的核心价值在于能够大规模、标准化地部署服务器,是数据中心自动化运维和基础设施即代码(IaC)实践的重要基石。其典型应用场景包括企业数据中心、云计算服务商批量初始化虚拟机、以及教育机构的机房统一管理。本文聚焦于PXE(预启动执行环境)技术,详细拆解了其工作流程,涉及DHCP、TFTP、HTTP等服务的协同,并提供了基于CentOS的实战配置步骤,特别是

weixin_34408624的博客 448

systemctl status警告:Configuration file is marked executable. Please remove executable permission bits

它们被设置为了可执行(executable)和全局可写(world-writable),这是不安全的,因为它允许任何用户更改配置文件。在执行上述命令之后,系统应该不会再报告关于这些配置文件权限的警告。(644),这意味着所有者具有读写权限,组成员具有读权限,而其他人只有读权限。要解决这个问题,你需要移除这些文件的可执行权限以及全局写权限。文件的执行权限,第二条命令移除其他用户的写权限。如果你想查看当前权限设置,可以使用。警告信息提示你的配置文件。确保文件的正确权限通常是。文件也执行相同的操作。

Dontla的博客 3086

iPXE裸金属装机实战:从DHCP到系统部署的90秒全链路解析

PXE(预启动执行环境)是物理服务器自动化装机的基础网络协议,其核心在于不依赖本地存储,在操作系统加载前完成引导。随着云原生普及,裸金属交付对效率与异构兼容性提出更高要求,iPXE作为可编程、支持HTTP/HTTPS/脚本化的升级形态,实现了从静态TFTP传输到动态引导调度的技术跃迁。它解决了传统PXE在大镜像加载、多品牌适配、国产系统支持及安全传输等方面的瓶颈,成为金融、电信等高可靠性场景中大规模物理节点标准化交付的关键基础设施。本文聚焦iPXE工程落地中的DHCP协同、HTTP服务优化、脚本分层设计与9

weixin_30561425的博客 675

Linux无盘教程,如何无盘启动Linux

第三步:配置DHCP服务你还需要在NFS服务器上配置DHCP服务来允许使用/var/lib/tftpboot/pxelinux.0启动。假设你在使用10.10.101.0作为子网,你的配置可能看起来像下面这样子。$ sudo vi/etc/dhcp3/dhcpd.confallow booting;allow bootp;subnet10.10.101.0netmask255.255.255.0{...

weixin_42361929的博客 1784

Crowbar:物理基础设施即代码的开源实践

物理基础设施即代码(Physical Infrastructure as Code)是实现裸金属自动化交付的核心范式,其本质是将服务器硬件、网络拓扑与固件配置等物理要素抽象为可版本化、可声明式定义、可自动收敛的代码资产。该理念源于对传统IDC部署中人工干预多、一致性差、审计困难等痛点的系统性回应,技术价值在于打通采购、上电、装机、组网到监控的全链路闭环。典型应用场景包括混合云底座构建、金融级灾备集群批量交付、以及AI训练集群的硬件标准化供给。Crowbar作为早期代表性框架,以Barclamp模块化架构和声

hideto 427

嵌入式linux:服务报错Please remove world writability permission bits. Proceeding anyway.

查看我的服务配置文件权限为666,systemd可能担心服务配置被其他用户恶意篡改,所以限制配置文件权限不能是全局可写。修改服务配置文件权限为644后,重启系统,服务正常启动。查看系统日志发现服务启动时报错。自定义服务,重启系统后服务不能正常启动(

吻等离子的博客 3094

centos7无盘启动_pxe-boot – Linux无盘启动 – 在ramdisk启动期间不挂载NFS共享

(这是我的第一篇文章,所以希望我正确地格式化它).我添加了尽可能多的信息,而不是TL:DR.我的基本问题是,当我尝试对NFS服务器(CentOS 6.7或CentOS 7)进行PXE无盘启动时,我遇到了问题.我尝试了各种各样的东西,似乎无法复制我最初使用CentOS7服务器和客户端所取得的成功.每次我跟着笔记,我都无处可去.我得到的最常见错误(取决于我使用的initrd.img文件或initram...

weixin_39760295的博客 947

Linux PXE 无盘工作站服务器

PXE(Preboot Execution Environment)是一种网络引导协议,允许计算机通过网络从远程服务器启动和安装操作系统,而无需本地硬盘。在这篇文章中,我们将介绍如何设置一个Linux PXE无盘工作站服务器,并提供相应的源代码。通过设置Linux PXE无盘工作站服务器,您可以轻松地通过网络从远程服务器启动和安装操作系统。要设置一个PXE无盘工作站服务器,您需要一台运行Linux操作系统的服务器和一些可启动的网络设备(如工作站或客户机)。步骤3:启用和启动DHCP服务器。

IsdCoding的博客 1189

Centos搭建PXE,安装部署操作系统centos+ubuntu

Centos搭建PXE,安装部署操作系统 一.原理: 1.什么是PXE: PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file tran...

付豪的博客 2019

Openclaw Onboarding向导全攻略——如何配置你的第一个AI助手

很多新手在成功运行 `openclaw --version` 后,面对黑底白字的终端就陷入了迷茫:“安装好了,然后呢?” 本篇我们就彻底解决这个问题,带你完整走完 `openclaw onboard` 交互式初始化配置向导的每一步,从“安装完成”到“真正能用”,只差这一个向导的距离。 本文为2026年3月最新版,适配OpenClaw v2026.2.x 稳定版,所有步骤均经过实测验证,可直接落地。

夏日清风 1918

【WLAN】【基础知识】WIFI那些事儿之AP扫描周边AP和STA

如本文对你有些许帮助,欢迎大佬打赏: 支付宝及微信打赏方式

一介草民,只为生活。 2885

linux网卡启动支持uefi,网络启动二:之PXE:CentOS6.9+TFTP+DHCP+BIOS+UEFI部署操作系统。...

网络启动二:之PXE:CentOS7.4/6.9 +TFTP+DHCP+BIOS+UEFI部署操作系统一、基础环境搭建:CentOS 7.4 Min 172.16.30.59安装略......。TFTP+DHCPyum install tftp-server dhcp xinetdyum 源修改自行百度。配置tftp、dhcp3.1 修改tftpsed -i '/disable/s/yes/no/...

weixin_39588252的博客 1245

QQ也能连接OpenClaw啦!手机QQ远程操控本地AI保姆级教程

2026年最新OpenClaw与QQ连接教程发布,支持手机远程操控本地AI。腾讯官方推出QQ Bot插件,无需服务器即可实现三步绑定。教程提供三种连接方案:新手首选的扫码连接(10分钟搞定)、稳定的QQ群机器人方案,以及公网接入方案。详细步骤包括版本更新、插件安装、扫码绑定和功能测试,并附常见问题解决方案。该功能让用户通过QQ指令即可实现文件整理、文档生成等电脑操作,真正实现"手机发指令,电脑自动干"。

通俗易懂学IT 594

Ubuntu18.04 PXE无人自动安装-2021.3.19

部署ubuntu无人值守安装系统 导读 无人值守安装(Unattended Setup)指软件安装时无需任何用户干预,直接按默认或通过应答文件设置安装,这对于无特殊需求的用户或企业大批量部署安装操作系统及软件时非常方便。 QQ:1450930976 欢迎留言,交流技术,分享时一件快乐的事情 大致原理: Client向PXE Server上的DHCP发送IP地址请求消息,DHCP检测Client是否 合法(主要是检测Client的网卡MAC地址),如果合法则返回Client的IP地 址,同时将启动文件px

Connor_xie的博客 3604

TPAMI 2024 | 面向大型城市场景的快速建筑实例代理重建

大规模城市场景(特别是建筑物)的数字化是一个长期存在的开放问题,这归因于数据获取方面的挑战,如场景覆盖不完整、缺乏语义、规划路径的效率和可靠性低。在本文中,我们针对从航拍图像中重建城市建筑的问题,提出了一个有效的工作流程和一些新颖的算法,用于大型城市场景中高效的3D建筑实例代理重建。具体来说,我们提出了一种基于学习的新型方法,用于从航拍图像中进行城市建筑的实例分割,然后通过基于投票的算法将多视图实例信息融合到稀疏点云中(使用标准结构从运动管道重建)。我们的方法实现了从点云中对建筑实例进行有效的实例分割。

小白学视觉 322

【实战项目开发技术分享】ROS1.0、ROS 2.0和CyberRT开源通信框架对比

随着机器人和自动驾驶技术的飞速发展,开源通信框架在机器人、自动驾驶行业扮演着重要的角色。ROS1.0是一个广泛应用于机器人领域的开源框架,ROS 2.0是其改进版本,而CyberRT是Baidu Apollo自动驾驶平台的通信框架。ROS和ROS 2.0都注重灵活性和共享性,适用于各种机器人应用。CyberRT则专注于实时性和高性能,适用于自动驾驶等对实时性要求较高的场景。选择适合的框架取决于具体应用需求和开发者的偏好。

xiewf的博客 2万+

使用PXE+DHCP+Apache+Kickstart无人值守安装CentOS5.8 x86_64

因为之前的工作需要搭建红帽实验室环境,由于机器数量比较多,所有需要批量自动化无人值守安装系统,所以我尝试使用RHEL5+PXE+DHCP+Apache+Kickstart安装了RHCE5.1 i386实验室环境,并取得了成功,不过过程比较漫长,所以我特地记录下PXE+DHCP+Apache+Kickstart无人值守安装的过程。另外,我在博客发表了相应的文章,很多热心的读者根据文章内容已成功批量安

#ifndefine maxwit #define maxwit...#endif 1254

VTK-9.5.0 1D2D3DWidget实现灰度图+深度图+3D点云显示(可轻松集成到自己的项目)

VTK1D2D3DWidget是一个基于Qt和VTK开发的3D点云可视化工具,支持RGB和深度点云数据的显示与处理。主要功能包括点云加载、可视化、保存为PLY格式文件,以及背景颜色、点间隔、坐标轴显示等参数的自定义设置。该工具采用模块化设计,核心组件包括主窗口管理类、VTK渲染组件和自定义鼠标交互样式,依赖Qt5+和VTK9.5.0库实现跨平台支持。项目提供完整的源码和构建指南,适用于点云数据的快速展示与分析。

Qt历险记,专注Qt技术,三年医疗设备研发经验,1年机器视觉研发经验,半年柔性传感研发经验。 387

裸机交付自动化:从PXE到Ansible的全链路实践

在数据中心大规模服务器上架场景中,裸机交付是基础设施自动化的第一道门槛。传统手动装机依赖运维逐台操作,效率低且易出错。通过理解PXE预启动执行环境、Kickstart无人值守安装、IPMI/Redfish带外管理等核心原理,可以构建一条从硬件发现、系统安装到配置下发的自动化流水线。此类技术能有效解决多机型适配、批量并发、状态回滚等工程难题,广泛应用于云机房建设、集群扩容与硬件生命周期管理。本文以开源项目BareMetalSkill为例,拆解其分层设计与实现细节,展现如何将裸机转化为可用的业务节点。

weixin_34416754的博客 445

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

PXE系列之四:PXE无盘LINUX工作站

PXE系列之四:PXE无盘LINUX工作站 (一)概念: 无盘引导,本机无硬盘,从pxe服务器上把一个小小的内核通过tftp传到客户端,运行于其内存中,这种应用 往往还需要一个存在于某个文件服务器上的文件系统(可以与pxe服务器相同),对于客户端来说,尽管这个文件系统是远程的,但用起来跟自己本地文件系统一样。     无盘引导需要:      服务器端(所有

chong232的专栏 1万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

PXE Centos 安装Ubuntu Server

Centos pxe环境安装ubuntu

IForFree 856

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

docker离线安装问题解决

docker离线安装问题解决。

人生就是不断地学习 5548

【CentOS 7笔记50】,Linux系统日志#171207

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33787529的博客 3393

centos7无盘启动_搭建无盘CentOS桌面环境

搭建无盘CentOS桌面环境Jun 18, 2016Technology网络准备创建一个无DHCP的网络:DHCP服务器我们将配置在PXE服务器节点上。PXE节点配置初始化配置最小化安装CentOS 7 Server。并配置其IP地址为10.19.20.2.关闭selinux和firewalld服务:# vi /etc/selinux/configSELINUX=disabled# systemc...

weixin_39950083的博客 1117
上一篇: iPXE的命令
下一篇: 解决隐藏Android系统鼠标光标问题以及隐藏状态栏问题
葫芦娃二娃
博客等级 码龄15年 1850粉丝 69原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值