遠程網絡安裝RHEL5

一:Linux安裝工作原理

眾所周知,在安裝過程中Linux首先需要一個引導程序來讓安裝光盤啟動,再實行配置與安裝。但目前轉化為遠程網絡安裝那么就需要我們的安裝程序能夠遠程地通過網絡傳送給客戶端。因此在搭建遠程Linux安裝服務器時候首先要值得注意以下幾個問題:

??? 1.遠程客戶端屬于裸機。在這里所定義的裸機是除了標準硬件之外沒有任何的操作系統與軟件程序。當然也可以擁有操作系統或者是軟件,之所以告訴大家是裸機是主要說明最簡單的一種思維方式。

??? 2.遠程客戶端必須能夠支持網絡啟動。在這里所說明的問題是遠程客戶端為了能夠發送安裝請求必須能夠通過網絡的方式進行,將安裝請求發送給服務器端。因此客戶端必須存在網卡,并且網卡上擁有PXE ROM[預引導執行環境]芯片而且BIOS能夠支持網絡啟動。

??? 3.在遠程計算機啟動后將會出現初始化設置,此時因客戶端沒有進入操作系統或處于在裸機狀態下,不可能綁定我們所熟悉TCP/IP地址或者其他網絡協議地址。因此他們之間的溝通必須通過IP地址自動分配服務----DHCP來為客戶端進行分發IP地址,從而實現Client-Server端之間的鏈接與溝通。

??? 4.在遠程安裝客戶端得到IP地址之后,將請求遠程安裝服務器給客戶端一個Linux引導程序以便于引導Linux并在客戶端上實現安裝界面。但是在TCP/IP協議棧中如果采用TCP協議進行傳送服務,那么將會出現著名的TCP三次握手過程,從而導致遠程客戶端等待超時而無法完成引導過程。因此就需要采用UDP協議進行快速傳遞,確保遠程客戶端的引導。因此筆者在這里所采用的程序為TFTP[瑣碎文件傳輸協議]服務作為遠程傳輸服務器傳送Linux引導程序的服務器。

??? 5.雖然UDP速度非常快速(這是本身結構有關),但是其仍然屬于不可靠協議之一不具備糾錯、確保數據到達目的地等保障機制,因此在傳輸大量文件或者是大文件時候還是需要采用TCP方式,這樣將不會出現因UDP協議傳輸丟包而導致安裝無法進行。

??? 在這里有多種方式供大家選擇:
?1)NFS[網絡文件系統]
?2)HTTP
?3)FTP等
??? 筆者在這里選擇采用FTP方式,主要原因在于FTP的方式比較簡單。

??? 因此準備建立遠程安裝服務器至少需要三個服務:DHCP、TFTP、FTP,三個服務可以再三臺不同的計算機上,也可以在同一臺計算機上進行實現。

原理歸納:
??? 遠程客戶端計算機啟動,由于BIOS設置了網卡啟動,所以網卡PXE ROM中的程序被調入內存執行。首先,客戶端在網絡中尋找DHCP服務器,然后請求一個IP地址;同時DHCP服務器聯系到TFTP服務器為此客戶端發送一個bootstrap(引導程序)。客戶端收到bootstrap(文件pxelinux.0)后執行,bootstrap會請求TFTP傳送bootstrap的配置文件(pxelinux.cfg)。收到后讀配置文件。根據配置文件內容和客戶情況,客戶端請求TFTP傳送內核映象文件(vmlinuz)和根文件系統文件(initrd.img)。最后啟動內核。這就是一個完整的pxe構建過程。然而要使網卡啟動后再繼續網絡安裝系統,則最后還需要FTP服務將系統所需安裝文件放置FTP相應目錄中進行傳輸安裝。

??? 下面用圖形來表述原理:

?????????????????????????


二:Linux安裝實現步驟

??? 這里實現中所使用的平臺為vmware6+RHEL5,您可以在FC系列、RH9、CenOS中都可以實現。

?? 首先創建ks.cfg文件。如果你先前已安裝了一個rhel5,則在root目錄下有一個anaconda-ks.cfg文件,你可以對它進行編輯,然后保存為ks.cfg文件,如果沒有就要手工創建或者用其他方法創建我的如下所示:
# Kickstart file automatically generated by anaconda.

install
nfs --server=mail.xzxj11.com --dir=/tools/i386
lang en_US.UTF-8
keyboard us
xconfig --startxonboot
network --device eth0 --bootproto dhcp
rootpw --iscrypted $1$PGpgheN.$eAAu/giXgKY4iU4AMcyi20
firewall --enabled --port=22:tcp
authconfig --enableshadow --enablemd5
selinux --enforcing
timezone Asia/Chongqing
bootloader --location=mbr --driveorder=sda --append="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 work
clearpart --linux
part /boot --fstype ext3 --size=100 --grow --maxsize=100
part / --fstype ext3 --size=100 --grow
part swap --size=100 --grow --maxsize=512

%packages
@admin-tools
@base
@base-x
@cluster-storage
@clustering
@core
@dialup
@dns-server
@editors
@ftp-server
@games
@gnome-desktop
@graphical-internet
@graphics
@legacy-network-server
@mail-server
@network-server
@news-server
@office
@printing
@server-cfg
@smb-server
@sound-and-video
@text-internet
@web-server
@x-software-development

??? 1、配置DHCP服務器
??? 配置DHCP服務器主要用途是為了能夠給客戶端分配IP地址,從而讓客戶端與TFTP及FTP進行聯系

??? 1.1 DHCP的配置文件
??? DHCP的配置文件的位置在/etc目錄下配置文件的名稱為dhcpd.conf。如果您的系統中不存在dhcpd.conf同時您又確認您確實安裝了DHCP程序,那么您可以手動建立dhcpd.conf文件。

??? 1.2 配置文件的內容:
?option space PXE;??? #DHCP對PXE的TFTP(瑣碎文件傳輸協議)應答選項
?option PXE.mtftp-ip code 1 = ip-address;
?option PXE.mtftp-cport code 2 = unsigned integer 16;
?option PXE.mtftp-sport code 3 = unsigned integer 16;
?option PXE.mtftp-tmout code 4 = unsigned integer 8;
?option PXE.mtftp-delay code 5 = unsigned integer 8;
?option PXE.discovery-control code 6 = unsigned integer 8;
?option PXE.discovery-mcast-addr code 7 = ip-address;

?class "pxeclients" {
?match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
?option vendor-class-identifier "PXEClient";
?vendor-option-space PXE;
?option PXE.mtftp-ip 0.0.0.0;
?filename "pxelinux.0";? #指定客戶端所需要的的bootstrap(引導器)文件名
?next-server 192.168.1.105;?? #指定TFTP服務器的IP地址
?}
?
?ddns-update-style interim;?
?ignore client-updates;
?default-lease-time 1200;
?max-lease-time 9200;
?option subnet-mask 255.255.255.0;
?option broadcast-address 192.168.1.255;
?option routers 192.168.1.1;
?option domain-name-servers 192.168.1.105;
?subnet 192.168.1.0 netmask 255.255.255.0 {
?range 192.168.1.2 192.168.1.254;
?}

?上述所指明的pxelinux.0為網絡遠程安裝引導程序bootstrap.其位置在/usr/lib/syslinux目錄中。

??? 1.3? 啟動DHCP服務
?#service dhcpd restart


??? 2、配置TFTP服務器

??? 配置TFTP服務器主要用途是為了能夠給客戶端傳送bootstrap程序[即pxelinux.0],這樣才能夠讓客戶端進行引導加載內核映象文件(vmlinuz)和根文件系統文件(initrd.img)以及啟動內核(Kernel)

??? 2.1? TFTP的配置文件
?TFTP的配置文件的位置在/etc/xinetd.d目錄下配置文件的名稱為tftp。
?配置內容如下:
?service tftp
?{??
?socket_type = dgram
?protocol = udp
?wait = yes
?user = root
?server = /usr/sbin/in.tftpd
?server_args =? -s /tftpboot??? #指定TFTP的根目錄所在位置,允許任何用戶可以進行訪問
?disable = no
?per_source = 11
?cps = 100 2
?flags = IPv4
?}

?在這里主要修改的字段是 disable ,將yes改為no。以打開TFTP服務
?
??? 2.2? 啟動TFTP服務
?#service xinetd restart

3、配置NFS服務器

#vi /etc/exports

/tools/i386??????????????????? *(ro,insecure,sync,no_root_squash)
/tools/ks????????????????????? *(ro,insecure,sync,no_root_squash)

#service nfs start

??? 4、配置bootstrap目錄
???
??? 要配置TFTP所要傳輸的bootstrap,首先要準備好引導文件、內核鏡像文件、跟文件系統文件。

??? 4.1 bootstrap文件:pxelinux.0
?文件位置在/usr/lib/syslinux目錄中。將其拷貝到/tftpboot目錄中
?#cp /usr/lib/syslinux /pxelinux.0? /tftpboot

??? 4.2.內核鏡像文件:vmlinuz

??? vmlinuz文件在RHEL5第一張光盤下的/images/pxeboot目錄中,將vmlinuz拷貝到/tftpboot目錄中[假定光盤加載到/mnt/cdrom]
?#cp /mnt/cdrom/images/pxeboot/vmlinuz /tftpboot
?
??? 4.3.根文件系統文件:initrd.img
???
??? initrd.img文件在RHEL5第一張光盤下的/images/pxeboot目錄中,將initrd.img拷貝到/tftpboot目錄中[假定光盤加載到/mnt/cdrom]
?#cp /mnt/cdrom/images/pxeboot/initrd.img?? /tftpboot

??? 5、創建pxelinux.cfg目錄與default文件

??? pxelinux.cfg為遠程安裝客戶端配置文件所在目錄,您可以為不同的計算機制定不同的安裝方式或者方法。但是基本上我們都可以用default配置文件來進行為所有的計算機進行配置。
?#cd??????? /tftpboot
?#mkdir???? pxelinux.cfg

?#vi? /tftpboot/pxelinux.cfg/default

?default內容如下:
? DEFAULT install
? PROMPT 1
? LABEL install
? KERNEL vmlinuz???????
APPEND initrd=initrd.img devfs=nomount ramdisk_size=16384 ##啟動參數包括啟動內核時所需要mount的掛載點和ramdisk大小。一般16384都可以滿足了。
???
?6、最后檢查一下/tftpboot下是否存在以下文件:
1.initrd.img
2.pxelinux.0
3.vmlinuz
4.pxelinux.cfg目錄
5.pxelinux.cfg/default

??? ok,啟動一臺機器進入bios里設置為lan啟動,如果沒有報錯的話就會出現boot:提示符,然后輸入install ks=nfs:192.168.1.105:/tools/ks/ks.cfg回車,無需人工干預就開始安裝了。
?

?
?原文地址 http://blog.chinaunix.net/u1/36549/showart_307973.html?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/535604.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/535604.shtml
英文地址,請注明出處:http://en.pswp.cn/news/535604.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

sed命令操作

sed 是一種數據流編輯器,它一次處理一行內容,處理時,把當前處理的行存儲在臨時緩沖區(pattern space稱為“模式空間”)中,在內存中處理,完成后把該行發送到屏幕上,清理pattern space中的內容,接著重復剛才的動作,讀入下一行,直到文件處理結束。文件內容并沒有 改變,…

Portainer簡介及部署

一、介紹 Portainer是Docker的圖形化管理工具,提供狀態顯示面板、應用模板快速部署、容器鏡像網絡數據卷的基本操作(包括上傳下載鏡像,創建容器等操作)、事件日志顯示、容器控制臺操作、Swarm集群和服務等集中管理和操作、登錄用…

Nexus搭建Maven私有倉庫

一、使用Docker安裝Nexus 1、查詢當前有哪些Nexus鏡像 docker search nexus2、下載sonatype/nexus3 docker pull docker.io/sonatype/nexus33、運行nexus容器 mkdir -p /usr/local/nexus3/nexus-data #新建掛載目錄 chown -R 200 /usr/local/nexus3/nexus-datadocker run -…

VI資料收集

1.6.1 vi 的工作模式Vi 在初始啟動后首先進入編輯模式,這時用戶可以利用一些預先定義的按鍵來移動光標、刪除文字、復制或粘貼文字等。這些按鍵均是普通的字符,例如 l 是向右移動光標,相當于向右箭頭鍵,k 是向下移動光標&#xff…

linux終端

終端就是處理計算機主機輸入輸出的一套設備,它用來顯示主機運算的輸出,并且接受主機要求的輸入,典型的終端包括顯示器鍵盤套件,打印機打字機套件等 linux終端類型終端名稱標識含義串行端口終端Serial Port Terminal/dev/ttySx 串行…

日常問題——VMware下的CentOS7 Ping不通百度

問題描述: 在VMware下新創建的CentOS ping 不通百度 解決方案: 1、點擊VMware的編輯按鈕下的虛擬網絡編輯器 2、更改設置后,選擇NAT類型,點擊NAT設置 3、記錄下,子網ip,掩碼,網管IP信息 4、…

linux查找文件find

查找命令文件whatis 從path還從man中查找which 從path環境變量中查找文件查找locate /var/lib/mlocate/mlocate.db 通過update更新數據庫 find 默認動作是 -print -ls -delete -ok -exec 命令 {} \; -name根據文件名查找-iname忽略大小寫-size根據文件及目錄大小查找…

linux下用ntp對時

更新系統時間的命令用&#xff1a;ntpdate <時間服務器>教育網下常用的時間服務器有s1a.time.edu.cn&#xff0c;或者210.72.145.44ntpdate 210.72.145.44更多教育下的時間服務器可在這里找到&#xff1a; http://www.time.edu.cn/mem.htm。如果想讓系統退出時的把時間寫…

CentOS7.6下安裝Ambari

一、準備工作 1.1、準備三臺CentOS 1.2、配置靜態IP、DNS vi /etc/sysconfig/network-scripts/ficfg-ens33IPADDR為 配置的ip NETMASK 子網掩碼 GATEWAY 網關 配置保存后重啟虛擬網絡 service network restart1.3、配置Hostname vi /etc/hostname#將第一行替換成新名字 m…

多主機推送公鑰、修改配置、修改密碼腳本

推送公鑰&#xff1a; !#/bin/bash if [! -f ~/.ssh/id_rsa ] ;thenssh-keygen -P "" -f ~/.ssh/id_rsa fifor i in seq 100 do {ip192.168.1.$iping -c1 $ip &>/dev/nullif [ $? -eq 0];thenecho $ip |tee addreee/usr/bin/expect<<-EOFset time 10…

shell生活序

從編程語言的觀點看linux shell-變量的作用域&#xff0c;環境變量&#xff0c;位置變量我們仍以BASH 為討論的shell 語言每一種編程語言中&#xff0c;我們都會碰到變量的作用域的問題。&#xff08;比如在函數中定義的變量在函數外不能使用的)BASH 中也有類似的問題&#xff…

linux下安裝phantomjs

PhantomJS俗稱為&#xff1a;無界面的瀏覽器。 PhantomJS是一個基于webkit的JavaScript API。它使用QtWebKit作為它核心瀏覽器的功能&#xff0c;使用webkit來編譯解釋執行JavaScript代碼。任何你可以在基于webkit瀏覽器做的事情。 1、下載安裝包 官網下載地址&#xff1a;htt…

shell 生活0806012145

引用&#xff1a;        學習 Shell Scripts 如果您真的很想要走信息這條路&#xff0c;并且想要好好的管理好屬于您的主機&#xff0c;那么&#xff0c;別說鳥哥不告訴您&#xff0c; Shell Scripts 真的是必須要學習的一項課題呢&#xff01;基本上&#xff0c; shel…

linux系統啟動流程詳解

一、MBR的概念 主引導扇區位于硬盤的0磁道0柱面1扇區,共512bytes,可存放一小段程序及主分區表,由三大部分組成: 硬盤主引導記錄MBR(Master Boot Record)占446bytes 分區表DPT(Disk Partition Table)占64bytes 硬盤有效標志(Magic Number)占2bytes。 硬盤…

linux下安裝davinci

官網地址 https://edp963.github.io/davinci/ 1、準備 JDK 1.8&#xff08;或更高版本&#xff09; MySql5.5&#xff08;或更高版本&#xff09; Mail Server (本人測試可以不用安裝) phantomjs 或 chrome&#xff08;需同時安裝chromedriver&#xff0c;清注意版本&#xf…

GRUB詳解

一、GRUB介紹 GRUB (GRand Unified Bootloader)是GNU 下的FSF 組織所推行的一套多重開機管理軟件,目前 GRUB 在 Linux 上使用的版本為 0.97 版,FSF 的官方網站表示已經不會在此版本上再追加任何新的功能,會將心思放在 GRUB 2 上。 GNU GRUB(GRand Unified Bootloader)是一…

好用的yum

從Windows轉到Linux下面&#xff0c;一個不習慣的地方就是在圖形界面下安裝和刪除軟件的時候非常緩慢。但是如果你掌握了用yum的命令行模式進行配置程序&#xff0c;你肯定會從心底喜歡上這個強大的工具。因為yum提供了查找、安裝、刪除某一個、一組甚至全部軟件包的命令&#…

Ambari系統架構

一、Ambari系統架構 Ambari框架采用的是Server/Client的模式&#xff0c;主要由兩部分組成&#xff1a;ambari-agent和ambari-server。ambari依賴其它已經成熟的工具&#xff0c;例如其ambari-server 就依賴python&#xff0c;而ambari-agent還同時依賴ruby, puppet&#xff0…

Linux系統的基本安裝

一、制作Linux安裝啟動盤 1.準備一個干凈的U盤&#xff0c;格式化。 2.下載64位系統鏡像&#xff1a;rhel-server-6.8-x86_64-dvd.iso。64位系統直接安裝就好&#xff0c; 3.首先制作一個啟動盤&#xff0c;解壓rhel-server-6.8-i386-dvd.iso文件 4.下載安裝UltraISO&#…

linux tips 技巧筆記一

作者: Jeffrey出處: http://blog.zhangjianfeng.com/?p171 實現RedHat非正常關機的自動磁盤修復先登錄到服務器&#xff0c;然后在/etc/sysconfig里增加一個文件autofsck,內容如下&#xff1a;AUTOFSCK_DEF_CHECKyesPROMPTyes 改變文件或目錄之最后修改時間(變為當前時間)執…