UOS無人值守PXE系統安裝


1. 前言

單台或者少數幾台機器安裝,可以通過u盤等方式一台一台的安裝,但是當面對局域網內上百台,甚至更多的機器需要安裝操作體系時,一台一台的安裝顯然是不可取的了,此時省時省力的自動化PXE方式就派上用場了。

2. PXE介紹

PXE即Preboot Execution Environment,翻譯過來就是“預啟動執行環境”。是由inter公司開發,基於C / S模式提供了一種使用網絡接口(Network Interface)啟動計算機的機制。這種機制讓計算機的啟動可以不依賴本地數據存儲設備(如硬盤)或本地已安裝的操作系統。

PXE服務器端需要DHCP服務器、TFTP服務器和一個文件服務器,其中文件服務器可以是ftp,http,nfs等文件服務器。

服務端

DHCP-------用來分配IP地址,定位引導程序

TFTP-------提供引導程序下載

NFS-------網絡中文件共享

客戶端

網卡支持PXE協議

主板支持網絡啟動

PXE部署系統自動化安裝流程:

1) 設置擁有PXE功能的客戶端主機開機啟動項為網絡啟動;

2) 客戶端開機之后進入網絡啟動,此時客戶端沒有IP地址需要發送廣播報文(PXE網卡內置DHCP客戶端程序),DHCP服務器相應客戶端請求,分配給客戶端相應的IP地址與掩碼等信息;

3) 客戶端得到IP地址之后,與TFTP通信,下載pxelinux.0,default,vmlinuz,initrd文件,根據default指定的vmlinuz,initrd啟動系統內核,下載指定系統安裝包。

4) 根據setting.cfg文件去文件共享服務器(http/ftp/nfs)上面下載系統安裝包開始安裝系統。

 

3. 環境准備

本文整個環境將在vmware虛擬機上驗證。

兩個虛擬機:UOS01、UOS02

為了簡化操作本次使用DHCP、TFTP和NFS均安裝在同一個虛擬機中

UOS01:搭建安裝環境(DHCP、TFTP和NFS)

ip地址:192.168.114.128  (網卡名為:ens33)

系統安裝文件已放到/home/uos/iosdir目錄下

UOS02:驗證PXE無人值守系統安裝

 

4. 搭建安裝環境

4.1. 搭建DHCP

1) 安裝dhcp

1 uos@uos-PC:~$ sudo apt install isc-dhcp-Server

2) 配置dhcp

 1 uos@uos-PC:~$ sudo vi /etc/dhcp/dhcpd.conf
 2 
 3 subnet 192.168.114.0 netmask 255.255.255.0 {  #dhcpserver 分配ip的子網192.168.114網段,必須和PXE server的一個網卡同一個網段
 4 
 5         range 192.168.114.130 192.168.114.200;     #為客戶端分配ip范圍
 6 
 7         option subnet-mask 255.255.255.0;
 8 
 9         option routers  192.168.114.2;
10 
11         default-lease-time 600;
12 
13         max-lease-time 7200;
14 
15         next-server 192.168.114.128;    #指定tftp server的ip
16 
17         }
18 
19         filename "pxelinux.0";
20 
21 uos@uos-PC:~$ sudo vi /etc/default/isc-dhcp-server
22 
23 INTERFACESv4="ens33" 

3) 啟動dhcp

1 uos@uos-PC:~$ sudo systemctl start nfs-kernel-server
2 
3 uos@uos-PC:~$ sudo systemctl enable nfs-kernel-server

4.2. 搭建TFTP

1) 安裝TFTP

1 uos@uos-PC:~$ sudo apt install tftpd-hpa

2) 配置TFTP

uos@uos-PC:~$ cat /etc/default/tftpd-hpa ##使用默認配置即可。

# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"

TFTP_DIRECTORY="/srv/tftp"

TFTP_ADDRESS="0.0.0.0:69"

TFTP_OPTIONS="--secure"

3) 安裝PXELINUX

1 uos@uos-PC:~$ sudo apt install pxelinux

 4) 配置PXE啟動文件

uos@uos-PC:~$ sudo mkdir -p /srv/tftp/pxelinux.cfg

uos@uos-PC:~$ sudo cp -r /home/uos/isodir/isolinux/ /srv/tftp

uos@uos-PC:~$ sudo cp /home/uos/isodir/live/vmlinuz /srv/tftp

uos@uos-PC:~$ sudo cp /home/uos/isodir/live/initrd.lz /srv/tftp

uos@uos-PC:~$ sudo cp /usr/lib/PXELINUX/pxelinux.0 /srv/tftp

uos@uos-PC:~$ sudo vi /srv/tftp/pxelinux.cfg/default

default vesamenu.c32

    timeout 5

    menu autoboot Starting Linux install in # second{,s}. Press any key to interrupt.

    menu clear

    menu title UOS20

    label UOS

      menu label Start UOS20

      kernel vmlinuz

      append initrd=initrd.lz boot=live livecd-installer netboot=nfs nfsroot=192.168.114.128:/home/uos/isodir  locale=zh_CN.UTF-8

5) 啟動TFTP

1 uos@uos-PC:~$ sudo systemctl start tftpd-hpa
2 
3 uos@uos-PC:~$ sudo systemctl enable tftpd-hpa

4.3. 搭建NFS

1) 安裝NFS

1 uos@uos-PC:~$ sudo apt install nfs-kernel-server

2) 配置NFS

1 uos@uos-PC:/srv/tftp$ sudo vi /etc/exports
2 
3 /home/uos/isodir *(ro)

3) 啟動NFS

1 uos@uos-PC:~$ sudo systemctl start nfs-kernel-server
2 
3 uos@uos-PC:~$ sudo systemctl enable nfs-kernel-server

4.4. 配置無人值守 

 1 uos@uos-PC:/srv/tftp$ vi  /home/uos/isodir/oem/settings.ini
 2 
 3 [General]
 4 
 5 # deb repository entry to be added in the sources.list file.
 6 
 7 apt_source_deb="deb-src https://professional-packages.chinauos.com/desktop-professional eagle main contrib non-free"
 8 
 9 skip_select_language_page = true
10 
11 skip_select_language_page_on_first_boot = true
12 
13 skip_select_component_page = true
14 
15 skip_system_info_page = true
16 
17 skip_partition_page = true
18 
19 skip_network_page=true
20 
21 skip_timezone_page=true
22 
23 skip_repair_system_page=true
24 
25 skip_virtual_machine_page=true
26 
27 partition_do_auto_part = true
28 
29 timezone_default = true
30 
31 timezone_default=Asia/Shanghai
32 
33 select_language_default_locale = zh_CN
34 
35 system_info_default_keyboard_layout = us
36 
37 system_info_setup_after_reboot = true
38 
39 system_info_default_username="didtx"
40 
41 system_info_default_hostname="didtx-PC"
42 
43 system_info_hostname_auto_suffix=-PC
44 
45 system_info_hostname_reserved=localhost
46 
47 system_info_default_password="zh**420427"

 

5. 無人值守驗證

進入UOS2的BIOS頁面選擇網絡啟動:

 

 

 

  

6. 附錄

6.1. setting.cfg文件說明

  1 #跳過語言選擇界面
  2 
  3 skip_select_language_page = true
  4  
  5 
  6 #跳過后配置語言選擇界面
  7 
  8 skip_select_language_page_on_first_boot = true
  9 
 10 
 11 #跳過組件選擇界面
 12 
 13 skip_select_component_page = true
 14 
 15 
 16 #不跳過創建賬戶界面
 17 
 18 skip_system_info_page = false
 19 
 20 
 21 #跳過分區界面
 22 
 23 skip_partition_page = true
 24 
 25 
 26 #跳過網絡設置界面
 27 
 28 skip_network_page=true
 29 
 30 
 31 #跳過時區設置界面
 32 
 33 skip_timezone_page=true
 34 
 35  
 36 #跳過系統修復界面
 37 
 38 skip_repair_system_page=true
 39 
 40 
 41 #跳過鍵盤布局選擇界面
 42 
 43 skip_system_keyboard_page = true
 44 
 45 
 46 #不跳過虛擬機環境提示界面
 47 
 48 skip_virtual_machine_page=false
 49 
 50 
 51 #執行自動分區操作
 52 
 53 partition_do_auto_part = true
 54 
 55 
 56 #設置默認時區為亞洲/上海
 57 
 58 timezone_default=Asia/Shanghai
 59  
 60 
 61 #設置默認語言為中文
 62 
 63 select_language_default_locale = zh_CN
 64 
 65 
 66 #設置默認安裝組件集類型為Server-Environment-with-GUI,目前組件集類型有:Basic-Server-Environment、Cloud-and-Virtualzalition、Big-Data、Server-Environment-with-GUI、Custom-Installation可以根據需要選擇其中的一個
 67 
 68 
 69 #對於組件集的詳細包含內容可以參見packages_default.json和packages_choice.json,如果拿到是服務版操作系統的iso鏡像文件,則可在live目錄找到packages_default.json和packages_choice.json,桌面版iso不需要配置該字段
 70 
 71 
 72 selected_component_install_type = Server-Environment-with-GUI
 73 
 74  
 75 #如果selected_component_install_type字段未指定則使用該字段指定的組件集類型,桌面版iso不需要配置該字段
 76 
 77 select_component_default_install_type = Server-Environment-with-GUI
 78 
 79 
 80 #設置默認鍵盤布局為us
 81 
 82 system_info_default_keyboard_layout = us
 83 
 84  
 85 #設置不使用后配置
 86 
 87 system_info_setup_after_reboot = false
 88 
 89 
 90 #設置是否將用戶密碼設置為root密碼
 91 
 92 set_root_password_from_user = false
 93 
 94 
 95 #設置用戶信息,指定用戶名為“uos”
 96 
 97 system_info_default_username="uos"
 98 
 99 
100 #設置用戶信息,指定主機名為“uos-PC”
101 
102 system_info_default_hostname="uos-PC"
103 
104 
105 #設置用戶信息,指定主機名自動后綴為“-PC”
106 
107 system_info_hostname_auto_suffix=-PC
108 
109 
110 system_info_hostname_reserved=localhost
111 
112 
113 #設置用戶信息,指定用戶密碼為“uos123“
114 
115 system_info_default_password="uos123"
116 
117 
118 DI_FULLDISK_MULTIDISK_DEVICE="/dev/sda;/dev/sdb"(注意:等號后面的 "/dev/sda;/dev/sdb"要用英文雙引號包含起來 ) 其中指定了/dev/sda為系統盤,/dev/sdb為數據盤,目前要求系統盤和數據盤都要求至少64Gib
119 
120 在oem定制項目中可能出現配置了該字段,數據盤仍然不是data分區也沒有自動掛載的情況,可能有兩種原因:1.檢查full_disk_policy.json中是否刪除了data分區的設置,2.數據盤的空間是否大於等於64Gib。

 


免責聲明!

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



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