下面由centos入門教程欄目給大家介紹通過網絡安裝centos系統的方法,希望對需要的朋友有所幫助!
一、基礎:
PXE(Pre-bootExecution Environment),預啟動執行環境,運行在Client/Server的工作模式;?
PXE Client會調用網際協議(IP)、用戶數據報協議(udp)、動態主機設定協議(DHCP)、小型文件傳輸協議(TFTP)等網絡協議。
PXE Client存放在網卡的ROM 中。當計算機引導時,BIOS 把 PXE Client 調入內存中執行,PXE BootROM(自啟動芯片)會發送一個UDP廣播請求,向本網絡中的DHCP服務器索取IP。
PXE的工作過程:
PXE協議運行的詳細工作流程,請參考以下圖文描述:
1. PXE Client 從自己的PXE網卡啟動,向本網絡中的DHCP服務器請求IP;
2. DHCP 服務器返回分配給客戶機的IP 以及PXE文件的放置位置(該文件一般是放在一臺TFTP服務器上) ;
3. PXE Client 向本網絡中的TFTP服務器索取pxelinux.0 文件(在 PXE Client 的 ROM 中,已經存在 TFTP Client);
4. PXE Client 取得pxelinux.0 文件后之執行該文件;
5. 根據pxelinux.0 的執行結果,通過TFTP服務器加載內核和文件系統 ;
6. 進入安裝畫面, 此時可以通過選擇http、FTP、NFS 方式之一進行安裝;
?
二、涉及軟件安裝及配置(syslinux、DHCP服務器、TFTP服務器、File server)
1、syslinux
通過網絡引導Linux的引導文件是pxelinux.0,這個文件由syslinux程序提供。SYSLINUX is a suite of bootloaders。
通過yum install syslinux安裝程序后,使用rpm -ql syslinux查看文件的時候,竟然沒有顯示pxelinux.0這個文件,以為自己安裝程序的問題,后來才發現只是未顯示而已,文件還是在/usr/share/syslinux/目錄下,使用ls?/usr/share/syslinux/就可以看到了。
將pxelinux.0復制到tftp目錄:?~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
2、將安裝光盤images/pxeboot/目錄下的initrd.img、vmlinuz復制到tftp目錄:cp images/pxeboot/{initrd.img,vmlinuz} /var/lib/tftpboot
復制isolinux目錄下的三個文件至tftp目錄:mnt]# cp isolinux/{boot.cat,vesamenu.c32,splash.jpg} /var/lib/tftpboot/
注:經驗證boot.cat、splash.jpg可以不用復制;boot.cat不復制不影響啟動,splash.jpg不復制顯示菜單的時候沒有背景圖片(如下圖)。?
? ? ? ? ? ? ? ? ? ? ?
但是vesamenu.c32文件必須要有,不然會報找不到該文件的錯誤
? ? ??
在/var/lib/tftpboot/下創建pxelinux.cfg:mnt]# mkdir /var/lib/tftpboot/pxelinux.cfg
將isolinux/isolinux.cfg復制到?/var/lib/tftpboot/pxelinux.cfg目錄下并命令為default:mnt]# cp isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
? 3、dhcp
subnet?172.16.0.0?netmask?255.255.0.0?{ ???????? range?172.16.100.151?172.16.100.170; ???????? option?routers?172.16.100.67; ???????? filename?"pxelinux.0"; ???????? next-server?172.16.100.67; }
4、然后啟動虛擬機,就可以顯示熟悉的安裝引導菜單了。(連接不是tftp服務器,檢查服務是否有開,iptables和selinux)
三、全自動通過http安裝Centos
以下內容為我整理的流程圖,從圖中可以看出pxelinux.0的文件功能相當于bootloader和isolinux.bin的集成版。
?
?1、修改default,增加一項ks;如果想在菜單項時間短一些,可以修改timeout時間。
label?ks ??menu?label?^Install?system?based?ks ??menu?default ??kernel?vmlinuz ??append?initrd=initrd.img? text?ks=http://172.16.100.67/ks.cfg label?linux ??menu?label?^Install?or?upgrade?an?existing?system ??kernel?vmlinuz ??append?initrd=initrd.img
2、修改ks.cfg文件,指定從http服務器加載安裝程序
#?Kickstart?file?automatically?generated?by?anaconda. #version=DEVELinstall#cdromurl?--url=http://172.16.100.67/centos6.6/lang?en_US.UTF-8keyboard?usnetwork?--onboot?no?--device?eth0?--bootproto?dhcp?--noipv6rootpw??--iscrypted?$6$3.bn6KZ9zigMQq.Z$V/Q8xF2asfM8KCWm6GsjhYBvTTmMM6B50i6A/AFFx38xkg1sP2kL.ECBAda4SLwG6itOZhLXG/41sgRCJBLf11firewall?--service=sshauthconfig?--enableshadow?--passalgo=sha512selinux?--enforcingtimezone?--utc?Asia/Shanghaibootloader?--location=mbr?--driveorder=sda?--append="crashkernel=auto?rhgb?quiet"#?The?following?is?the?partition?information?you?requested#?Note?that?any?partitions?you?deleted?are?not?expressed#?here?so?unless?you?clear?all?partitions?first,?this?is#?not?guaranteed?to?workclearpart?--all part?/boot?--fstype=ext4?--size=200part?/?--fstype=ext4?--size=7000part?swap?--size=2000 #repo?--name="CentOS"??--baseurl=cdrom:repodata/?--cost=100reboot%packages?--nobase@core%end
3、開啟dchpd、tftpd、httpd,關閉iptable、selinux,就可以完成自動安裝了。
后續:
在安裝的時候出現一個問題,提示this device may need to be reinitialized。
?
解決方法:
在ks文件中增加zeromb就可以了,#號這一行,可有可無,不影響。
#?Clear?the?Master?Boot?Record ?zeromb
配置修改為:
url?--url=http://172.16.100.67/centos6.6/ lang?en_US.UTF-8 keyboard?us network?--onboot?no?--device?eth0?--bootproto?dhcp?--noipv6 rootpw??--iscrypted?$6$3.bn6KZ9zigMQq.Z$V/Q8xF2asfM8KCWm6GsjhYBvTTmMM6B50i6A/AFFx38xkg1sP2kL.ECBAda4SLwG6itOZhLXG/41sgRCJBLf11 firewall?--service=ssh authconfig?--enableshadow?--passalgo=sha512 selinux?--enforcing timezone?--utc?Asia/Shanghai bootloader?--location=mbr?--driveorder=sda?--append="crashkernel=auto?rhgb?quiet" zerombr PEX部分內容來自于:https://www.cnblogs.com/sunhongleibibi/archive/2017/11/17/7851382.html