成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linux的PXE與UEFI PXE遠程安裝系統

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

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

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

一、普通機器的PXE系統部署

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

主要使用的使用到的服務,FTP server用來發布linux系統的安裝樹(也可以使用NFS、HTTP或HTTPS),DHCP server為客戶端分配ip并提供TFTP服務器地址及PXE啟動文件位置,TFTP server為客戶端提供引導文件。三個服務可以安裝在同一臺服務器上,也可以安裝在三臺服務器上。

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/下,不用做什么修改就可以直接使用了。安裝好后要把系統盤鏡像的全部文件復制到這里,或掛載到這個目錄下,我就是把光盤鏡像掛載到了這里,因為還有個ks.cfg文件要發到這里,所以我在這里有建立了mirror目錄,將系統鏡像掛載到了/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服務器地址 

3、安裝配置TFTP server

①安裝TFTP,然后編輯配置文件,開啟開啟服務,默認的數據目錄/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軟件包 

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

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

總用量 36084:

  1. -rwxrw-rw- 1 root root 32491856 3月   2 2013 initrd.img      //這是一個初始化文件,一個最小的系統鏡像 
  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  //該文件夾下放的是啟動菜單,手動創建 
  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引導菜單工具,可以從光盤或 /usr/share/syslinux/ 中找到 
  6. -rwxrw-rw- 1 root root  4043888 3月   5 2013 vmlinuz       //內核文件 

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

  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 

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

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

 

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

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

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

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

⑤允許遠程訪問安裝系統

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

假設遠程機器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 網關是10.12.190.254 掩碼是24, vnc連接的密碼是123456

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

vnc連接地址為10.12.190.101:1

(2)反向連接方式:

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

  1. linux vnc vncconnect=10.12.190.181 vncpassword=123456 

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

以上2種方式,如果IP是DHCP自動獲取的話,使用反向連接方式比較好,這樣,無需知道安裝系統的客戶端獲取的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安裝系統的所有操作方法,現在就可以使用了。

二、UEFI PXE的系統部署

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

1、TFTP server的配置

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

將光盤中的efiboot.img掛在到系統中:

  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的配置文件,用于顯示引導菜單 
  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文件,把開機前引導改成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、創建開機啟動菜單

  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 

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

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

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

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

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

三、混合模式

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

1、TFTP server配置

在/tftpboot/目錄下,不同平臺需要的文件是不一樣的,可以直接把它們全都放在TFTP的根目錄下,但這樣管理不太方便,所以我將普通PXE的引導文件放在/tftpboot/Legacy/下,將UEFI的引導文件放在/tftpboot/UEFI下,其他平臺的也這樣操作就可以了。

2、DHCP server配置

想要實現混合模式,最關鍵的就是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"; 

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

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

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

責任編輯:黃丹 來源: 51CTO.com
相關推薦

2009-11-26 11:29:48

安裝SUSE Linu

2018-12-07 09:05:15

CentOSPXE服務器

2021-08-18 11:42:06

UbuntuUbuntu Serv系統運維

2010-09-01 11:43:06

KickstartPXE無人值守

2012-12-25 13:36:35

無人值守自動化運維

2011-02-23 09:52:40

批量部署DebianFAI

2021-12-09 10:17:25

部署實戰Linux

2009-10-30 08:51:01

Windows 7部署PXE

2017-05-08 18:10:54

2015-11-09 13:23:49

PXEUbuntu 14.0Linux

2011-04-03 14:39:02

Windows

2018-10-23 09:45:05

Arch LinuxGRUB命令

2022-12-19 10:04:54

LinuxUEFI

2010-01-11 10:15:47

wine安裝

2010-04-26 14:19:22

BondLinux系統安裝

2010-03-03 13:09:08

Linux安裝

2011-03-22 15:17:19

Nagios監控

2010-01-06 14:50:49

Linux操作系統

2010-01-18 10:05:25

2017-10-25 14:41:19

UPS遠程監控電源
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一级电影免费看 | 成人亚洲性情网站www在线观看 | 中文字幕在线一区二区三区 | 精品国产乱码久久久久久蜜柚 | 九九亚洲 | 91视频网址 | 日韩一区二区三区在线看 | 欧美精品久久久 | 一区二区三区视频在线 | 国产伊人久久久 | 天堂一区二区三区四区 | 黄a在线观看 | 久久激情五月丁香伊人 | 青青草综合 | 国产一极毛片 | 天天躁日日躁性色aⅴ电影 免费在线观看成年人视频 国产欧美精品 | 自拍偷拍在线视频 | 在线观看中文字幕视频 | 中文字幕日本一区二区 | 久久久久中文字幕 | 欧美久久一级特黄毛片 | 韩日一区 | 国产高清精品在线 | 97成人在线| 日韩美av | 天天色综网 | 日韩亚洲一区二区 | 成人在线视频网址 | 成人精品一区二区三区中文字幕 | 久久9视频 | 久久精品综合 | 精品国产视频 | 欧美精品电影一区 | 超碰av免费 | 三级免费毛片 | 99精彩视频 | 一级黄色片免费在线观看 | 男女羞羞视频在线观看 | 日韩无 | 99久久精品一区二区成人 | 欧美一级二级三级视频 |