自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux的PXE與UEFI PXE遠程安裝系統(tǒng)

原創(chuàng)
運維 系統(tǒng)運維
在我們的系統(tǒng)運維的生涯中,經(jīng)常要安裝操作系統(tǒng),我們一般都會建立一個PXE服務(wù)器,通過網(wǎng)絡(luò)來批量部署系統(tǒng)。本文主要介紹硬件環(huán)境差異比較大的情況下,如何搭建一機多用的PXE服務(wù)器,下面以CentOS-6.4-x86_64版本為例,進行服務(wù)器的配置。

在Linux中有多種的安裝方式:HD、USB、CDROM、PXE及遠程管理卡等。在我們的系統(tǒng)運維的生涯中,經(jīng)常要安裝操作系統(tǒng),然而我們維護的機器不是一兩臺而已,一般的企業(yè)服務(wù)器數(shù)量都在幾十、幾百、幾千、甚至上萬臺。這么多的機器,如果人工的一臺一臺去安裝,那我們這些運維人員,可能要把大部分時間都花費在了安裝系統(tǒng)上,所以,我們一般都會建立一個PXE服務(wù)器,通過網(wǎng)絡(luò)來批量部署系統(tǒng)。

隨著計算機產(chǎn)品的更新?lián)Q代以及IT企業(yè)的發(fā)展,一個公司的計算機型號種類越來越多,硬盤也不一樣,那么我們維護的手段也需要與時俱進。本文主要介紹硬件環(huán)境差異比較大的情況下,如何搭建一機多用的PXE服務(wù)器,下面以CentOS-6.4-x86_64版本為例,進行服務(wù)器的配置。

一、普通機器的PXE系統(tǒng)部署

實現(xiàn)自動獲取IP網(wǎng)絡(luò)安裝linux是這樣的:客啟端PXE網(wǎng)卡啟動-->通過Bootp協(xié)議廣播dhcp請求-->DHCP服務(wù)器-->獲取IP,TFTP服務(wù)器地址-->從TFTP上下載 pxelinux.0以及系統(tǒng)內(nèi)核文件vmlinuz、initrd.img-->啟動系統(tǒng)-->(到指定url去下載ks.cfg文件-->根據(jù)ks.cfg文件去NFS/HTTP/FTP服務(wù)器自動下載軟件包)安裝系統(tǒng)-->完成安裝。

主要使用的使用到的服務(wù),F(xiàn)TP server用來發(fā)布linux系統(tǒng)的安裝樹(也可以使用NFS、HTTP或HTTPS),DHCP server為客戶端分配ip并提供TFTP服務(wù)器地址及PXE啟動文件位置,TFTP server為客戶端提供引導(dǎo)文件。三個服務(wù)可以安裝在同一臺服務(wù)器上,也可以安裝在三臺服務(wù)器上。

1、安裝配置FTP server

  1. [root@pxe ~]# yum install vsftpd 
  2. [root@pxe ~]# chkconfig vsftpd on 
  3. [root@pxe ~]# service vsftpd start 

vsftpd的默認配置文件在/etc/vsftpd/vsftpd.conf,共享目錄在/var/ftp/pub/下,不用做什么修改就可以直接使用了。安裝好后要把系統(tǒng)盤鏡像的全部文件復(fù)制到這里,或掛載到這個目錄下,我就是把光盤鏡像掛載到了這里,因為還有個ks.cfg文件要發(fā)到這里,所以我在這里有建立了mirror目錄,將系統(tǒng)鏡像掛載到了/var/ftp/pub/mirror/下。

2、安裝配置DHCP server

  1. [root@pxe ~]# yum install dhcp 

編輯配置文件,這里是很重要的。

  1. [root@pxe ~]# vim /etc/dhcp/dhcpd.conf 
  2. default-lease-time 600; 
  3. max-lease-time 7200; 
  4. ddns-update-style none; 
  5. subnet 10.12.190.0 netmask 255.255.255.0 { 
  6. range dynamic-bootp 10.12.190.100 10.12.190.120; 
  7. option routers 10.12.190.254; 
  8. option subnet-mask 255.255.255.0; 
  9. filename "pxelinux.0";          //如果不是在TFTP根目錄下,要寫上目錄 
  10. next-server 10.12.190.140;      //tftp服務(wù)器地址 

3、安裝配置TFTP server

①安裝TFTP,然后編輯配置文件,開啟開啟服務(wù),默認的數(shù)據(jù)目錄/var/lib/tftpboot

  1. [root@pxe ~]# yum install tftp-server 
  2. [root@pxe ~]# vim /etc/xinetd.d/tftp 
  3. service tftp 
  4. socket_type             = dgram 
  5. protocol                = udp 
  6. wait                    = yes 
  7. user                    = root 
  8. server                  = /usr/sbin/in.tftpd 
  9. server_args             = -s /tftpboot   //這個可以自己修改 
  10. disable                 = no          //將yes改成no是啟用 
  11. per_source              = 11 
  12. cps                     = 100 2 
  13. flags                   = IPv4 
  14. [root@pxe ~]# service xinetd restart 

②將pxelinux.0拷貝到tftpboot目錄下

  1. [root@pxe ~]# cp /usr/share/syslinux/pxelinux.0 /tftpboot  //如果找不到這個文件,要安裝syslinux軟件包 

③將啟動文件從光盤中找到,并復(fù)制到該目錄下:

  1. [root@pxe ~]# ll /tftpboot/ 

總用量 36084:

  1. -rwxrw-rw- 1 root root 32491856 3月   2 2013 initrd.img      //這是一個初始化文件,一個最小的系統(tǒng)鏡像 
  2. -rwxrw-rw- 1 root root    26828 12月  9 22:57 pxelinux.0    //這文件是為legcay啟動,它是legcay的啟動鏡像, 
  3. drwxrwxrwx 2 root root     4096 1月  28 12:14 pxelinux.cfg  //該文件夾下放的是啟動菜單,手動創(chuàng)建 
  4. -rwxrw-rw- 1 root root   151230 3月   5 2013 splash.jpg     //背景圖片,可以不要 
  5. -rwxrw-rw- 1 root root   162860 3月   5 2013 vesamenu.c32  //legacy BIOS引導(dǎo)菜單工具,可以從光盤或 /usr/share/syslinux/ 中找到 
  6. -rwxrw-rw- 1 root root  4043888 3月   5 2013 vmlinuz       //內(nèi)核文件 

④在pxelinux.cfg目錄下,建立默認文件,該文件可以使用光盤中的isolinux.cfg文件來當(dāng)模板,這個啟動菜單很重要

  1. [root@pxe ~]# vim /tftpboot/pxelinux.cfg/default 
  2. default vesamenu.c32 
  3. timeout 30 
  4. menu background splash.jpg 
  5. menu title Welcome to PXE CentOS-6.4-x86_64! 
  6. menu color border 0 #ffffffff #00000000 
  7. menu color sel 7 #ffffffff #ff000000 
  8. menu color title 0 #ffffffff #00000000 
  9. menu color tabmsg 0 #ffffffff #00000000 
  10. menu color unsel 0 #ffffffff #00000000 
  11. menu color hotsel 0 #ff000000 #ffffffff 
  12. menu color hotkey 7 #ffffffff #ff000000 
  13. menu color scrollbar 0 #ffffffff #00000000 
  14. label linux 
  15. menu label ^ Install or upgrade CentOS-6.4-x86_64 an existing system from to Network 
  16. kernel vmlinuz 
  17. append initrdinitrd=initrd.img ksdevice=eth0 repo=ftp://10.12.190.187/pub/mirror ip=dhcp 
  18. label linux 
  19. menu label ^ Install CentOS-6.4-x86_64 use kisckstart file 
  20. menu default 
  21. kernel vmlinuz 
  22. append initrdinitrd=initrd.img ip=10.12.190.183 netmask=255.255.255.0 gateway=10.12.13.254 dns=202.106.0.20 ksdevice=eth0  ks=ftp://10.12.190.187/pub/ks.cfg 
  23. label rescue 
  24. menu label ^Rescue installed system 
  25. kernel vmlinuz 
  26. append initrdinitrd=initrd.img rescue ksdevice=eth0 repo=ftp://10.12.190.187/pub/mirror ip=dhcp 
  27. label local 
  28. menu label Boot from ^local drive 
  29. localboot 0xffff 

以上參數(shù)可以接在kernel后邊,也可以接在initrd.img后邊,都不影響。

ksdevice= 是為了指定使用哪塊網(wǎng)卡,因為機器有多塊網(wǎng)卡,無人值守會卡在這里。

 

repo= 是指定安裝鏡像的url,如果沒有,就會提示要一下畫面,那就需要手工處理了。

ip= 可以指定網(wǎng)卡自動獲取ip,還是使用固定ip,如果使用固定ip,系統(tǒng)將把這個ip寫入到配置文件中去。

ks= 是指定ks.cfg文件的url,ks.cfg是個應(yīng)答文件,可以替我們處理所有安裝時,所有需要手工設(shè)置的內(nèi)容,該文件可以直接編輯系統(tǒng)中的/home/anaconda-ks.cfg文件,或者在圖形化下使用system-config-kickstart包來編輯一個,非常好用。

有的時候,可能需要手工來處里某一臺機器,還要跑到那臺機器前嗎?當(dāng)然不需要,安裝的時候也可以使用vnc來遠程操作的。機器不一樣,用途也不一樣,有的時候不能完全自動,也需要我們手工做些改動。

⑤允許遠程訪問安裝系統(tǒng)

在另一個系統(tǒng)上顯示圖形或字符安裝界面,這時就可以使用vnc服務(wù),這是操作系統(tǒng)本身就支持的功能,vnc選項啟動VNC服務(wù),vncpassword選項用來設(shè)置一個遠程訪問的密碼,VNC密碼必須至少6個字符,不設(shè)置密碼去掉vncpassword選項也可以。使用方法很簡單,可以寫在PXE的引導(dǎo)菜單中,添加在kernel或initrd.img后邊,或是在出現(xiàn)菜單畫面時,按Tab鍵,編輯某一行,在最后邊加入vnc vncpassword=123456字段,或是按Esa鍵,在命令行里直接輸入linux vnc vncpassword=123456就可以了,U盤安裝,光盤裝都有效。

假設(shè)遠程機器ip是10.12.190.181.,被安裝機器的ip是10.12.190.101

(1)正向連接方式:

  1. linux vnc ip=10.12.190.101 netmask=255.255.255.0 gateway=10.12.190.254 vncpassword=123456 

指定被安裝機器的ip是10.12.190.181 網(wǎng)關(guān)是10.12.190.254 掩碼是24, vnc連接的密碼是123456

由遠程vnc客戶端,連入被安裝機器進行安裝,之后的操作就和平時一樣了。在安裝系統(tǒng)上將顯示如下信息:

vnc連接地址為10.12.190.101:1

(2)反向連接方式:

在遠程啟動vnc的被動連接:vncviewer.exe -listen,當(dāng)客戶端安裝過程啟動后,遠程端的vnc會自動連接

  1. linux vnc vncconnect=10.12.190.181 vncpassword=123456 

vnc會自動反向聯(lián)接10.12.190.181,如果遠程機器開啟vnc監(jiān)聽,在10次超時15秒后,會變成主動方式連接,在安裝系統(tǒng)上將顯示如下信息:

以上2種方式,如果IP是DHCP自動獲取的話,使用反向連接方式比較好,這樣,無需知道安裝系統(tǒng)的客戶端獲取的IP是多少,也可以建立連接。

⑥另一種安裝菜單的寫法:

  1. label linux 
  2. menu label ^ Install or upgrade CentOS-6.4-x86_64 an existing system from to Network 
  3. kernel /vmlinuz ksdevice=eth0 repo=ftp://10.12.190.187/pub/mirror ip=dhcp 
  4. initrd /initrd.img 
  5. label linux 
  6. menu label ^ Install CentOS-6.4-x86_64 use kisckstart file 
  7. menu default 
  8. kernel /vmlinuz ip=10.12.190.183 netmask=255.255.255.0 gateway=10.12.13.254 dns=202.106.0.20 ksdevice=eth0  ks=ftp://10.12.190.187/pub/ks.cfg 
  9. initrd /initrd.img 

以上就是普通PXE安裝系統(tǒng)的所有操作方法,現(xiàn)在就可以使用了。

二、UEFI PXE的系統(tǒng)部署

對于使用UEFI來啟動的機器來說,上述方法已經(jīng)完全無效了,根本無法順利的安裝系統(tǒng)了,如果想順利的安裝系統(tǒng),必須首先加載UEFI驅(qū)動才可以。UEFI PXE和上邊的方法區(qū)別就在于TFTPserver所提供的系統(tǒng)啟動必須文件,和DHCP server的設(shè)置, 所使用到的服務(wù)還是這幾個。

1、TFTP server的配置

配置文件與上邊一樣,只是目錄中的文件要更換一下,這次要從系統(tǒng)盤中提取三個文件。

將光盤中的efiboot.img掛在到系統(tǒng)中:

  1. [root@pxe ~]# mount -o loop efiboot.img /mnt 
  2. [root@pxe ~]# ll /mnt/EFI/BOOT/ 
  3. total 250 
  4. -rwxr-xr-x 1 root root    411 Mar  5  2013 BOOTX64.conf     //為grub的配置文件,用于顯示引導(dǎo)菜單 
  5. -rwxr-xr-x 1 root root 251274 Mar  5  2013 BOOTX64.efi          //UEFI的啟動鏡像 
  6. -rwxr-xr-x 1 root root   1341 Mar  5  2013 splash.xpm.gz        //UEFI啟動菜單工具 
  7. [root@pxe ~]# cp /mnt/EFI/BOOT/* /tftpboot/ 

BOOTX64.efi就是我們開機所需要的,這三個文件也可也直接使用光盤中EFI目錄下的文件。

2、DHCP server配置

DHCP重點是要修改一下/etc/dhcp/dhcpd.conf文件,把開機前引導(dǎo)改成BOOTX64.efi,之前我們指定的是pxelinux.0這個文件。

  1. [root@pxe ~]# vim /etc/dhcp/dhcpd.conf 
  2. default-lease-time 600; 
  3. max-lease-time 7200; 
  4. ddns-update-style none; 
  5. subnet 10.12.190.0 netmask 255.255.255.0 { 
  6. range dynamic-bootp 10.12.190.100 10.12.190.120; 
  7. option routers 10.12.190.254; 
  8. option subnet-mask 255.255.255.0; 
  9. filename "BOOTX64.efi"; 
  10. next-server 10.12.190.140; 

3、創(chuàng)建開機啟動菜單

  1. [root@pxe ~]# vim /tftpboot/efidefault 
  2. default=0 
  3. timeout=15 
  4. splashimage=(nd)/splash.xpm.gz 
  5. title Install CentOS-6.4-x86_64 (UEFI) 
  6. root (nd) 
  7. kernel  /vmlinuz method=ftp://10.12.190.187/pub/mirror/ ip=10.12.16.100 netmask=255.255.255.0 gateway=10.12.16.1 lang=en_US keymap=us ksdevice=eth0 vnc vncpassword=123456 
  8. initrd /initrd.img 
  9. title Install CentOS-6.4-x86_64 use Kickstart File 
  10. root (nd) 
  11. kernel /vmlinuz ks=ftp://10.12.190.187/pub/ks.cfg ksdevice=eth0 ip=dhcp 
  12. initrd /initrd.img 
  13. title Rescue installed system 
  14. root (nd) 
  15. kernel /vmlinuz rescue method=ftp://10.12.190.187/pub/mirror 
  16. initrd /initrd.img 

注意這個菜單只能這樣編寫,選項參數(shù)都要加在kernel行后邊,不然無法加載,使用的參數(shù)和普通的PXE是一樣的,編輯好之后就可以使用了。

選擇一個菜單后,等待的時間比較長,當(dāng)你看到這是小企鵝時,UEFI驅(qū)動已經(jīng)加載上了,說明你TFTP server和DHCP server設(shè)置都沒有問題。

如果你看到上面的錯誤信息,說明是的你的菜單寫得有問題,initrd /initrd.img要另起一行,不能與kernel同行。

UEFI安裝系統(tǒng)時,也可以使用vnc遠程安裝,但硬盤的分區(qū)表必須是GPT格式的,如果你的硬盤不是這種格式的,那就需要多一步操作了,使用parted命令去修改。遺憾的是vnc沒有提供Ctrl+Alt+F1~F6快捷鍵,讓你切換到一個字符終端去操作。不過也不是沒有辦法,我們可以在救援模式下連上vnc,這樣輸入命令操作就行了。

parted命令的使用,請參考此文檔。

三、混合模式

一般情況下,我們的機房里,2種類型的服務(wù)都會有,可能還會有安騰架構(gòu)的機器,不會是統(tǒng)一型號的。這樣的話,每次都要去修改DHCP server服務(wù),比較麻煩,將這些不同的機器劃分不同的vlan里,每個vlan里都做個DHCP服務(wù)器,這樣有點太浪費資源了。所以就要用個更好的方法,一臺服務(wù)器同時提供多種系統(tǒng)安裝,而要安裝系統(tǒng)的客戶端機器,會自己從服務(wù)器下載屬于自己的引導(dǎo)文件。

1、TFTP server配置

在/tftpboot/目錄下,不同平臺需要的文件是不一樣的,可以直接把它們?nèi)挤旁赥FTP的根目錄下,但這樣管理不太方便,所以我將普通PXE的引導(dǎo)文件放在/tftpboot/Legacy/下,將UEFI的引導(dǎo)文件放在/tftpboot/UEFI下,其他平臺的也這樣操作就可以了。

2、DHCP server配置

想要實現(xiàn)混合模式,最關(guān)鍵的就是DHCP的配置文件了

  1. [root@pxe ~]# vim /etc/dhcp/dhcpd.conf 
  2. default-lease-time 600; 
  3. max-lease-time 7200; 
  4. ddns-update-style none; 
  5. option space PXE; 
  6. option PXE.mtftp-ip    code 1 = ip-address; 
  7. option PXE.mtftp-cport code 2 = unsigned integer 16; 
  8. option PXE.mtftp-sport code 3 = unsigned integer 16; 
  9. option PXE.mtftp-tmout code 4 = unsigned integer 8; 
  10. option PXE.mtftp-delay code 5 = unsigned integer 8; 
  11. option arch code 93 = unsigned integer 16; 
  12. subnet 10.12.190.0 netmask 255.255.255.0 { 
  13. option routers 10.12.190.254; 
  14. range 10.12.190.10 10.12.190.20; 
  15. class "pxeclients" { 
  16. match if substring (option vendor-class-identifier, 0, 9) = "PXEClient"; 
  17. next-server 10.12.190.181; 
  18. if option arch = 00:02 { 
  19. filename "ia64/elilo.efi"; 
  20. } else if option arch = 00:06 { 
  21. filename "X86PC/bootia32.efi"; 
  22. } else if option arch = 00:07 { 
  23. filename "UEFI/BOOTX64.efi"; 
  24. } else { 
  25. filename "Legacy/pxelinux.0"; 

這里不再詳細解釋每行的含義,具體可以參考相關(guān)資料。這里很重要的一點是根據(jù)客戶端信息進行判斷來指定服務(wù)器為客戶端提供哪些信息。

啟動文件名稱(如果客戶端使用EFI,啟動名稱為bootia32.efi和boottx64.efi,如果客戶端使用Legacy BIOS啟動,名稱為pxelinux.0),其它服務(wù)部分沒有什么變化,F(xiàn)TP服務(wù)不需要做什么更改。

至此,我們就大功告成了,所有的準(zhǔn)備工作就都完成了,現(xiàn)在就可以使用這個多平臺的PXE進行批量部署了。

責(zé)任編輯:黃丹 來源: 51CTO.com
相關(guān)推薦

2009-11-26 11:29:48

安裝SUSE Linu

2018-12-07 09:05:15

CentOSPXE服務(wù)器

2021-08-18 11:42:06

UbuntuUbuntu Serv系統(tǒng)運維

2010-09-01 11:43:06

KickstartPXE無人值守

2012-12-25 13:36:35

無人值守自動化運維

2011-02-23 09:52:40

批量部署DebianFAI

2009-10-30 08:51:01

Windows 7部署PXE

2021-12-09 10:17:25

部署實戰(zhàn)Linux

2017-05-08 18:10:54

2011-04-03 14:39:02

Windows

2015-11-09 13:23:49

PXEUbuntu 14.0Linux

2018-10-23 09:45:05

Arch LinuxGRUB命令

2022-12-19 10:04:54

LinuxUEFI

2010-04-26 14:19:22

BondLinux系統(tǒng)安裝

2010-01-11 10:15:47

wine安裝

2010-03-03 13:09:08

Linux安裝

2011-03-22 15:17:19

Nagios監(jiān)控

2010-01-06 14:50:49

Linux操作系統(tǒng)

2010-01-18 10:05:25

2010-01-12 17:37:26

Linux ARA安裝
點贊
收藏

51CTO技術(shù)棧公眾號