pxe安装linux dhcp失败,51CTO博客-专业IT技术博客创作平台-技术成就梦想
原理有必要說明一下 ? ? ? ? ? (百度偷來的)
原理和概念:
1.1 什么是PXE
嚴格來說,PXE 并不是一種安裝方式,而是一種引導的方式。進行 PXE 安裝的必要條件是要安裝的計算機中包含一個 PXE 支持的網卡(NIC),即網卡中必須要有 PXE Client。PXE (Pre-boot Execution Environment)協議使計算機可以通過網絡啟動。協議分為 client 和 server 端,PXE client 在網卡的 ROM 中,當計算機引導時,BIOS 把 PXE client 調入內存執行,由 PXE client 將放置在遠端的文件通過網絡下載到本地運行。運行 PXE 協議需要設置 DHCP 服務器和 TFTP 服務器。DHCP 服務器用來給 PXE client(將要安裝系統的主機)分配一個 IP 地址,由于是給 PXE client 分配 IP 地址,所以在配置 DHCP 服務器時需要增加相應的 PXE 設置。此外,在 PXE client 的 ROM 中,已經存在了 TFTP Client。PXE Client 通過 TFTP 協議到 TFTP Server 上下載所需的文件。
1.2 什么是KickStart
KickStart是一種無人職守安裝方式。KickStart的工作原理是通過記錄典型的安裝過程中所需人工干預填寫的各種參數,并生成一個名為ks.cfg的文件;在其后的安裝過程中(不只局限于生成KickStart安裝文件的機器)當出現要求填寫參數的情況時,安裝程序會首先去查找KickStart生成的文件,當找到合適的參數時,就采用找到的參數,當沒有找到合適的參數時,才需要安裝者手工干預。這樣,如果KickStart文件涵蓋了安裝過程中出現的所有需要填寫的參數時,安裝者完全可以只告訴安裝程序從何處取ks.cfg文件,然后去忙自己的事情。等安裝完畢,安裝程序會根據ks.cfg中設置的重啟選項來重啟系統,并結束安裝。
1.3 PXE + KickStart安裝的條件
執行 PXE + KickStart安裝需要的設備為:
? DHCP 服務器;
? TFTP 服務器;
? KickStart所生成的ks.cfg配置文件
? 一臺存放系統安裝文件的服務器,如 NFS、HTTP 或 FTP 服務器。
? 帶有一個 PXE 支持網卡的將安裝的主機;
工作過程圖?
安裝步驟
環境:
OS:CentOS 5.5 x86_64
ip adress:192.168.20.20
兩臺VM:一臺做Server,一臺來裝系統
(如果你的系統是CentOS 5.5 32位或者其它版本的Linux,請自行適合的修改)
1.mount CentOS DVD
mount /dev/cdrom /mnt[掛載光驅]
2.install tftp-server
yum -y install tftp-server.x86_64
vim /etc/xinetd.d/tftp
service?tftp
{
socket_type?????????????=?dgram
protocol????????????????=?udp
wait????????????????????=?yes
user????????????????????=?root
server??????????????????=?/usr/sbin/in.tftpd
server_args?????????????=?-s?/tftpboot
disable?????????????????=?no#[將'yes'改為'no']
per_source??????????????=?11
cps?????????????????????=?100?2
flags???????????????????=?IPv4
}
service xinetd start? ? ? ? ? ?[啟動tftp服務]
3.configuration PXE
mkdir /tftpboot ? ?[如果沒有這個文件夾就創建]
cp /usr/lib/syslinux/pxelinux.0 /tftpboot/
cp /mnt/p_w_picpaths/pxeboot/initrd.img /tftpboot/
cp /mnt/p_w_picpaths/pxeboot/vmlinuz /tftpboot/
cp /mnt/isolinux/*.msg /tftpboot/ ? ?[復制linux開機引導文件]
mkdir/tftpboot/pxelinux.cfg
cp /mnt/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
4.install DHCP
yum -y install dhcp.x86_64
cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf
vim /etc/dhcpd.conf
ignore?client-updates;
next-server?192.168.20.20;#[添加,next-server?是tftp?server]
filename?"/pxelinux.0";#[添加]
subnet?192.168.20.0?netmask?255.255.255.0?{#[網段申明]
#?---?default?gateway
option?routers??????????????????192.168.20.254;?????#[網關]
option?subnet-mask??????????????255.255.255.0;??????#[子網俺碼]
option?nis-domain???????????????"domain.org";
option?domain-name??????????????"domain.org";
option?domain-name-servers??????8.8.8.8;?????????????#[DNS]
option?time-offset??????????????-18000;?#?Eastern?Standard?Time
#???????option?ntp-servers??????????????192.168.1.1;
#???????option?netbios-name-servers?????192.168.1.1;
#?---?Selects?point-to-point?node?(default?is?hybrid).?Don't?change?this?unless
#?--?you?understand?Netbios?very?well
#???????option?netbios-node-type?2;
range?dynamic-bootp?192.168.20.20?192.168.20.254;#[ip?pools]
default-lease-time?21600;
max-lease-time?43200;
#?we?want?the?nameserver?to?appear?at?a?fixed?address
#???????host?ns?{
#???????????????next-server?marvin.redhat.com;
#???????????????hardware?ethernet?12:34:56:78:AB:CD;
#???????????????fixed-address?207.175.42.254;
#???????}#[由于本次實驗中DHCP?Server只用于安裝無人值守安裝,這些都用不著,注釋最后幾行。實際環境中,視情況而定]
}
service dhcpd start
5.install NFS
yum -y install nfs-* ? ? ?[CentOS默認是安裝的]
mkdir /tftpboot/ks ? ? ? ?[先在tftpboot目錄下創建ks文件,一會存放ks.cfg時用]
vim /etc/exports
/mnt????*(ro)? #[添加這兩個共享文件夾,'*'任何人可以訪問,'(ro)'即read only]
/tftpboot/ks/????*(ro)
service portmap start? ? ?[首先啟動這個服務,這是nfs的依賴服務]
service nfs start
6.install KickStart
yum -y install system-config-kickstart.noarch? ? [install kickstart]
yum -y groupinstall "X Window System" ? ? [如果GNOME環境,請執行本行及下行命令。如果你不希望安裝GNOME環境,KickStart也可以不安裝,直接復制我這的ks.cfg代碼合適的修改便可。當然其它版本的linux的ks.cfg代碼不一樣]
yum -y groupinstall "GNOME Desktop Environment"
startx[進入desktop,kickstart必須在desktop環境下配置]
system-config-kickstart? ? [start kickstart]
定制KickStart ? ? ? ? ? ? ?[下圖只是例子,實際根據各自需求而定]
因為CentOS安裝盤掛載在/mnt,所以這里的目錄是/mnt
記得最少安裝一個包,不然在安裝系統的時候,會彈出一個對話框,讓你手動選擇需要安裝的包
下面是利用KickStart生成的ks.cfg,也可以直接在這里適當修改參數
lang?en_US
#?Installation?logging?level
logging?--level=info
#?Use?NFS?installation?media
nfs?--server=192.168.20.20?--dir=/mnt
#?Network?information
network?--bootproto=dhcp?--device=eth0?--onboot=on
#?Reboot?after?installation
reboot
#Root?password
rootpw?--iscrypted?$1$SjnCI7rG$4JhDvTrZ4Xo4fdpjOriBU/
#?SELinux?configuration
selinux?--enforcing
#?Do?not?configure?the?X?Window?System
skipx
#?System?timezone
timezone??Asia/Shanghai
#?Install?OS?instead?of?upgrade
install
#?Disk?partitioning?information
part?swap?--bytes-per-inode=4096?--fstype="swap"--size=2048
part?/boot?--bytes-per-inode=4096?--fstype="ext3"--size=100
part?/?--bytes-per-inode=4096?--fstype="ext3"--size=10240
part?/data?--bytes-per-inode=4096?--fstype="ext3"--grow?--size=1
%packages
@editors
cp /root/ks.cfg /tftpboot/ks/
chmod 777 /tftpboot/pxelinux.cfg/default
vim /tftpboot/pxelinux.cfg/default
default?ks#[修改為'ks']
prompt?1
timeout?3
display?boot.msg
F1?boot.msg
F2?options.msg
F3?general.msg
F4?param.msg
F5?rescue.msg
label?linux
kernel?vmlinuz
append?initrd=initrd.img
label?text
kernel?vmlinuz
append?initrd=initrd.img?text
label?ks
kernel?vmlinuz
append?ks=nfs:192.168.20.20:/tftpboot/ks/ks.cfg?initrd=initrd.img#[這里是ks的路徑]
label?local
localboot?1
label?memtest86
kernel?memtest
append?-
7.closed Firewall and SElinux
setup
8.驗證奇跡的時刻來啦
開啟需要安裝的電腦,倒杯COFFEE,看它自動安裝嘍。。。。
默認情況下不需要任何設置,如果電腦自動不能找到PXE啟動或叫Network boot from XX開機啟動模式,就手動選擇吧。
一般臨時選擇是按Esc或F12或F11再或者其它,因電腦品牌而異。。
如果在boot里將設置PXE設置成第一啟動選項,記得安裝完系統后,改回硬盤啟動,否則電腦會一直裝系統,,,
9.總結
VM安裝需注意幾點:
關閉網卡自帶的DHCP;
網卡模式用橋接;
最后貼幾張PC安裝時的圖吧
總結
以上是生活随笔為你收集整理的pxe安装linux dhcp失败,51CTO博客-专业IT技术博客创作平台-技术成就梦想的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux c语言乘法口诀,shell
- 下一篇: c语言uint赋值给int,如何在C#中