zoukankan      html  css  js  c++  java
  • 搭建Pxe引导RamOS Linux内存系统

    PXE引导RamOS内存系统Linux无盘启动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.csdn.net/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地址    

  • 相关阅读:
    Nacos配置失败(java.lang.IllegalStateException: failed to req API:/nacos/v1/ns/instance after all server)
    数据库事务
    Consider defining a bean of type 'redis.clients.jedis.JedisPool' in your configuration.
    Mybatis+SpringBoot 项目All elements are null
    docker安装Sentinel
    docker安装nacos
    Docker 配置 Seata 集成 Nacos
    mybatis转义反斜杠_MyBatis Plus like模糊查询特殊字符_、、%
    在linux上配置Maven环境变量
    spring cache 学习——整合 redis 实现声明式缓存配置
  • 原文地址:https://www.cnblogs.com/zhangxinglong/p/14154434.html
Copyright © 2011-2022 走看看