qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請訪問 http://qaseven.github.io/

          pxe網(wǎng)絡(luò)安裝操作系統(tǒng) 原理與詳細過程

           摘要:在實際工作中,我們經(jīng)常會遇到這樣的情況:想要安裝Linux但是計算機不帶光驅(qū)或軟驅(qū),或者是筆記本配置的非標(biāo)準(zhǔn)的軟驅(qū)和光驅(qū),如1394接口,USB接口等,在Linux安裝時所引導(dǎo)的Linux內(nèi)核一般都不會帶這些接口的驅(qū)動,所以也無法通過本地安裝Linux,此外,在一些場合,如機房,IT實驗室,工廠生產(chǎn)線,有大量的計算機需要同時安裝Linux,如果通過光驅(qū)的方式一個個安裝,不僅效率低,也不利于維護。這是時候你就需要PXE的強大功能了。本文將就PXE的基本原理和工作方式進行簡要介紹。具體的時間過程需要比較豐富的網(wǎng)絡(luò)知識。
            1.操作系統(tǒng)安裝的流程
            通用流程:首先,bios啟動,選擇操作系統(tǒng)的啟動(安裝)模式(此時,內(nèi)存是空白的),然后根據(jù)相關(guān)的安裝模式,尋找操作系統(tǒng)的引導(dǎo)程序(不同的模式,對應(yīng)不同的引導(dǎo)程序當(dāng)然也對應(yīng)著不同的引導(dǎo)程序存在的位置),引導(dǎo)程序加載文件系統(tǒng)初始化(initrd)程序和內(nèi)核初始鏡像(vmlinuz),完成操作系統(tǒng)安裝前的初始化;接著,操作系統(tǒng)開始安裝相關(guān)的系統(tǒng)和應(yīng)用程序。
            硬盤安裝的流程:bios啟動——MBR尋找grub——grub程序讀取menu.list等配置文件,找到內(nèi)核啟動鏡像和相關(guān)初始化程序,安裝(或者啟動)。
            PXE(Pre-boot Execution Environment)是由Intel設(shè)計,可以使計算機通過網(wǎng)絡(luò)啟動的協(xié)議。協(xié)議分為client和server兩端,PXE client在網(wǎng)卡的ROM中,當(dāng)計算機啟動時,BIOS把PXE client調(diào)入內(nèi)存執(zhí)行,并顯示出命令菜單,經(jīng)用戶選擇后,PXE client將放置在遠端的操作系統(tǒng)通過網(wǎng)絡(luò)下載到本地運行。
            pxe網(wǎng)絡(luò)安裝的流程:bios啟動——pxe client中的程序進入內(nèi)存,顯示命令菜單——此程序開始尋找網(wǎng)絡(luò)引導(dǎo)程序(bootstrap文件,這個文件的名字隨著發(fā)行版的不同而不同,在centos中,它是pxelinux.0)——引導(dǎo)程序讀取配置文件pxelinux.cfg,獲得系統(tǒng)初始化的相關(guān)文件信息——系統(tǒng)啟動,開始進行安裝。
            2.pxe模式安裝操作系統(tǒng)的原理
            2.1安裝流程
            客戶機從自己的PXE網(wǎng)卡啟動,向本網(wǎng)絡(luò)中的DHCP服務(wù)器索取IP,并搜尋引導(dǎo)文件的位置
            DHCP服務(wù)器返回分給客戶機IP以及bootstrap文件的放置位置(該文件一般是放在一臺TFTP服務(wù)器上)
            客戶機向本網(wǎng)絡(luò)中的TFTP服務(wù)器索取bootstrap文件
            客戶機取得bootstrap文件后之執(zhí)行該文件
            根據(jù)bootstrap的執(zhí)行結(jié)果,通過TFTP服務(wù)器加載內(nèi)核和文件系統(tǒng)
            進入安裝畫面, 此時可以通過選擇FTP,HTTP,NFS方式之一進行安裝
            2.2流程小結(jié)
            總結(jié)就是:
            1)網(wǎng)卡的client              網(wǎng)卡rom                         尋找dhcp服務(wù)器,由/etc/dhcp.conf得到ip和引導(dǎo)程序所在地點
            2)有dhcp.conf(引導(dǎo)程序文件名)和tftp的配置(tftp跟路徑,里面有引導(dǎo)程序和系統(tǒng)初始化程序),得到引導(dǎo)程序pxelinux啟動文件的絕對路徑,運行引導(dǎo)程序,讀取啟動配置文件pxelinux.cfg/default,得到操作系統(tǒng)初始化的兩個相關(guān)文件
            3)選擇安裝方式
            客戶端廣播dhcp請求——服務(wù)器相應(yīng)請求,建立鏈接——由dhcp和tftp配置得到ip還有引導(dǎo)程序所在地點——客戶端下載引導(dǎo)程序并開始運行——引導(dǎo)程序讀取
            2.3.相關(guān)文件位置與內(nèi)容:
            dhcp配置文件/etc/dhcpd/dhcp.conf——ip管理與引導(dǎo)程序名稱
            tftp配置文件/etc/xinetd.d/tftp——tftp根目錄,和上面的引導(dǎo)程序名稱組成完整路徑
            引導(dǎo)程序讀取的配置文件/tftpboot/pxelinux.cfg/default——啟動內(nèi)核其他
            3.實戰(zhàn)過程
            實戰(zhàn)環(huán)境;centos 6.3,kernel 2.6.32
            3.1安裝前的準(zhǔn)備:
            軟硬件配置:網(wǎng)卡要支持pxe啟動,操作系統(tǒng)也要支持pxe啟動,另外有ftp服務(wù)器用于存儲操作系統(tǒng)的安裝文件,dhcp服務(wù)器用于分配ip
          3.2服務(wù)器配置
            1)配置dhcp服務(wù)器
            由于PXE客戶機通常是尚未裝系統(tǒng)的裸機,因此為了如服務(wù)器取得聯(lián)系并正確下載相關(guān)引導(dǎo)文件,需要預(yù)先配置好DHCP服務(wù)來自動分配地址并告知引導(dǎo)文件的位置。
          [root@localhost /]#yum -y install dhcp
          [root@localhost /]#vim /etc/dhcp/dhcp.conf
          ddns-update-style none;
          default-lease-time 21600;
          max-lease-time 43200;
          option domain-name         "benet.com";
          option domain-name-servers 8.8.8.8;
          subnet 192.168.122.0 netmask 255.255.255.0 {
          option routers 192.168.122.1;
          option subnet-mask 255.255.255.0;
          range 192.168.122.100 192.168.122.200;
          next-server 192.168.122.1;   #指定TFTP服務(wù)器的地址
          filename "pxelinux.0";     #指定PXE引導(dǎo)程序的文件名
          }
          [root@localhost /]#service dhcpd start
            注明:filename這一個選項很重要,它的作用是指明bootstrap所在的位置,一般是指向一個TFTP服務(wù)器的某個目錄下。這里是相對路徑,其中路徑的上半部分在的一個配置文件之中。
            2)配置tftp服務(wù)器
            TFTP服務(wù)的配置文件是/etc/xinetd.d/tftp,RedHat9 默認(rèn)安裝已經(jīng)生成了該文件
          service tftp
          {
          disable        = no
          socket_type                = dgram
          protocol                = udp
          wait                        = yes
          user                        = root
          server                        = /usr/sbin/in.tftpd
          server_args        = -s /tftpboot
          per_source                = 11
          cps                                = 100 2
          flags                        = IPv4
          }
            注明:這個文件基本上不用改動,但是需要注意的的是server_args= -s /tftpboot這一行,它的含義是將/tftpboot作為root目錄,這樣在dhcpd.conf中的filename一行就應(yīng)該寫bootstrap的相對路徑: filename “pxelinux.0”,這是出于安全方面考慮的.如果你去掉了-s這個參數(shù),那幺就要在filename一行指出bootstrap的絕對路徑: filename “/tftpboot/pxelinux.0”.注意,這里-s的內(nèi)容會因為發(fā)行版的內(nèi)容不同而不同,一般不用改動。
            3.3添加引導(dǎo)程序
            Bootstrap對于支持網(wǎng)絡(luò)安裝的操作系統(tǒng),Bootstrap基本上都可以從安裝源文件上找到,對于本例來說,centos的bootstrap就是cdrom:/isolinux/pxelinux.0我們把它們都拷貝到tftpboot下.
            3.4編輯引導(dǎo)配置文件
            把centos第一張安裝光盤上images/pxeboot目錄下的initr.img和vmlinux也考到tftpboot/目錄下。在/tftpboot創(chuàng)建pxelinux.cfg目錄,用于放isolinux的配制文件。光盤isolinux/下有一個isolinux.cfg文件,把它拷貝到/tftpboot/pxelinux.cfg/目錄下并改名為default.下面為修改后的default文件:
            default linux
            prompt 1
            timeout 30
            label linux
            kernel vmlinuz
            append initrd=initrd.img
            這個Default 文件很容易看懂,就是告訴啟動后使用那個內(nèi)核引導(dǎo)
            3.5開始安裝
            1)確保:服務(wù)器端剛才配置的幾個服務(wù)都處于開啟狀態(tài);關(guān)閉防火墻;bios中選擇從網(wǎng)絡(luò)啟動
            2)剩下的步驟和從硬盤安裝相同

          posted on 2013-10-14 09:44 順其自然EVO 閱讀(25636) 評論(0)  編輯  收藏 所屬分類: 測試學(xué)習(xí)專欄

          <2013年10月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 桑植县| 陆良县| 汪清县| 西丰县| 博湖县| 云南省| 香港 | 肃南| 那曲县| 宁陵县| 黄龙县| 师宗县| 大埔区| 乌鲁木齐县| 威海市| 凤凰县| 长沙县| 嵩明县| 菏泽市| 抚松县| 庄河市| 景东| 怀集县| 北安市| 朝阳区| 申扎县| 德安县| 库车县| 开封县| 宁津县| 乌兰县| 长垣县| 陇南市| 文成县| 当雄县| 阿荣旗| 九江县| 云浮市| 平凉市| 翼城县| 浮山县|