搭建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地址    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM