基於Linux系統的PXE搭建方法
本文分享自天翼雲開發者社群《 基於Linux系統的PXE搭建方法》 ,作者: t***n
連結: https://www.ctyun.cn/developer/article/410621015138373
一、底層環境準備
1、安裝RedHat7.6系統
2、關閉防火牆和Selinux
systemctl stop firewalld
chkconfig firewalld off
vim /etc/sysconfig/selinux
修改 SELINUX=disabled
3、配置本地yum源
vim /etc/yum.repos.d/rhel7.repo
[rhel7]
name=RHEL7
baseurl=file:///mnt
enabled=1
gpgcheck=0
4、安裝需要的服務及軟體包
yum install vsftpd tftp-server dhcp syslinux system-config-kickstart
dhcp:提供dhcp服務
vsftpd:管理本地掛在的OS完整映象
tftp-server:使可啟動映象透過使用tftp協議網路下載
syslinux:包含網路啟動所需的boot loader
system-config-kickstart:配置kickstart的圖形介面的工具
5、本地物理機網路配置
vim /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=static
NAME=eth0
DEVICE=eth0
>
IPADDR=192.168.64.25
NETMASK=255.255.255.0
GATEWAY=192.168.64.2
二、配置 DHCP服務
vim /etc/dhcp/dhcpd.conf
新增如下:
option arch code 93 = unsigned integer 16;
allow booting;
allow bootp;
subnet 192.168.64.0 netmask 255.255.255.0 {
option routers 192.168.64.2;
range 192.168.64.100 192.168.64.200; #分配出去的IP範圍
class "pxeclients" {
match if substring (option vendor-class-identifier,0,9) = "PXEClient";
next-server 192.168.64.25; #tftp地址,即本機PXE server IP
if option arch = 00:07 {
filename "pxelinux/BOOTX64.EFI"; #6系統UEFI模式下PXE啟動時的引導檔案,7系列系統還可以使用shim&grubx64.efi
}
else {
filename "pxelinux/pxelinux.0"; #Legacy模式
}
}
}
注意:啟動 DHCP前要配好本機網路地址資訊,否則無法啟動dhcpd
啟動服務:
#service dhcpd start [ok]
#service dhcpd restart [ok]
三、配置 tftp服務
vim /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
service_args = -s/tftpboot ###修改為引導檔案的路徑,本文以 /var/lib/tftpboot為例
per_xource = 11
cps = 100 2
flags =IPv4
disable = no ###將disable改為no
}
啟動服務:
#service xinetd restart [ok]
四、配置 PXE啟動引導目錄
1、將系統映象mount或複製到PXE伺服器上
mkdir /var/ftp/pub/RHEL7_6 ###因為用ftp搭建,所以要放在/var/ftp/資料夾中,RHEL7_6是以系統命名的,若還要其它系統可同時存在,做好區分即可
mount /dev/sr0 /mnt
cp /mnt/* /var/ftp/pub/RHEL7_6/ ###此處全copy過去,若掛載為mount /dev/sr0 /var/ftp/pub/RHEL7_6,但是mount是一次生效的,後續再用還需要mount,且安裝系統過程中mount 不能中斷
2、copy引導檔案到/var/lib/tftpboot/pxelinux中
mkdir /var/lib/tftpboot/pxelinux/RHEL7_6 ###因為可能會做多個系統,所以在pxelinux中建立不同系統所對應的資料夾
cp /var/ftp/pub/RHEL7_6/images/pxeboot/vmlinuz /var/lib/tftpboot/pxelinux/RHEL7_6
cp /var/ftp/pub/RHEL7_6/images/pxeboot/initrd.img /var/lib/tftpboot/pxelinux/RHEL7_6
cp /var/ftp/pub/RHEL7_6/EFI/BOOT/BOOTX64.EFI /var/lib/tftpboot/pxelinux
cp /var/ftp/pub/RHEL7_6/EFI/BOOT/grubx64.cfg /var/lib/tftpboot/pxelinux
3、建立Legacy模式的安裝啟動檔案default
mkdir /var/lib/tftpboot/pxelinux/pxelinux.cfg
vim default
default 0 #預設進label0
timeout 600 #600秒後自動進label1系統安裝
prompt 1
label 0
localboot 0
label 1
kernel RHEL7_6/vmlinuz
append initrd=RHEL7_6/initrd.img inst.repo=ftp://192.168.64.25/pub/RHEL7_6/ ip=dhcp nomodeset ks=ftp://192.168.64.24/pub/RHEL7_6/ks7_6.cfg
4、建立UEFI模式的引導檔案grub.efi
vim /var/lib/tftpboot/pxelinux/grub.efi
menuentry 'Install Red Hat Enterprise Linux 7.6' --class fedora --class gnu-linux --class gnu --class os {
linuxefi /pxelinux/RHEL7_6/vmlinuz inst.repo=ftp://192.168.64.25/pub/RHEL7_6 ks=ftp://192.168.64.24/pub/RHEL7_6/ks7_6.cfg
initrdefi /pxelinux/RHEL7_6/initrd.img
}
5、將/var/lib/tftpboot/pxelinux.0檔案複製到/var/lib/tftpboot/pxelinux資料夾中
五、重啟 PXE伺服器
六、重啟 PXE伺服器系統下的相關服務
service dhcpd restart
service xinetd restart
service vsftpd restart
service tftp restart
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70014251/viewspace-2949169/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux系統下搭建基於Geany的Python程式設計環境LinuxPython程式設計
- 基於Linux的傳真系統(轉)Linux
- pxe基於虛擬機器的自啟動虛擬機
- 基於linux的叢集系統(二)(轉)Linux
- 基於Linux系統的影片點播系統的實現(轉)Linux
- 基於ThinkPHP搭建的仿Wordpres個人部落格系統PHP
- 利用Raspberry Pi搭建一個基於OpenMediaVault系統的NAS
- 基於 EKS Fargate 搭建微服務效能分析系統微服務
- 基於 Laravel 搭建使用者邀請系統Laravel
- pxe+kickstart無人值守安裝linux作業系統Linux作業系統
- PXE 網路化安裝linux系統—原理+步驟薦Linux
- ZT:通過PXE遠端安裝Linux系統全程解析Linux
- 基於Vue + Antd 搭建自己的部落格後臺管理系統Vue
- 基於windows系統上搭建git-server服務WindowsGitServer
- 基於Linux的docker mysql主從搭建LinuxDockerMySql
- 基於Linux的虛擬主機搭建Linux
- linux下搭建pxe自動化安裝環境薦Linux
- 基於Linux的影片點播系統的實現(轉)Linux
- 基於 Zabbix 系統監控 Windows、Linux、VMwareWindowsLinux
- 語音識別--kaldi環境搭建(基於Ubuntu系統)Ubuntu
- 版本控制系統之基於httpd搭建私有git倉庫httpdGit
- 基於 Linux 的 Flutter 方法通道 ChannelsLinuxFlutter
- PC基於Linux的叢集環境搭建?Linux
- 基於JavaScript的機器學習系統JavaScript機器學習
- Linux系統環境搭建Linux
- linux系統基於oracle的核心引數配置說明LinuxOracle
- 基於Linux系統的包過濾防火牆(3)(轉)Linux防火牆
- 基於Linux系統的包過濾防火牆(1)(轉)Linux防火牆
- 基於Linux系統的包過濾防火牆(2)(轉)Linux防火牆
- Linux系統安裝後的基礎優化-基於CentOS(5.8/6.4)Linux優化CentOS
- PXE實現系統自動化安裝
- iOS作業系統是不是基於Linux呢?iOS作業系統Linux
- 基於函式計算快速搭建Zblog部落格系統函式
- 基於nuxt和iview搭建後臺管理系統實踐(1)UXView
- pxe基礎的批次化裝機
- 基於Linux的 工作環境配置方法Linux
- 基於Web的系統測試Web
- 基於Gin+Gorm框架搭建MVC模式的Go語言後端系統GoORM框架MVC模式後端