|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
# u Y* m5 q) {& Y# U0 ]目录
3 C8 u/ q$ L' @$ {1. PXE 自动安装物理机 (DHCP服务由路由提供, 不能再配置)) c. I$ C, P" ]0 h3 D$ [
1.1. 需要的软件
; K6 M, f' o3 u. q9 C1.2. 启动 proxy dhcp 服务) O+ ^: K4 _5 h* W/ _" `
1.3. 关键的几个配置文件
3 l8 X+ `8 ~; i8 ] z3 v" T) P( d; B7 [. [3 j3 S7 D1 A
PXE 自动安装物理机 (DHCP服务由路由提供, 不能再配置)
) L- f& C: b& S6 ^. S# F0 E* f关于 PXE 自动安装物理机的方案, 网上有很多, 但是几乎都是通过配置 DHCP 服务器, 使得待安装的机器能够找到 tftp 提供的安装源.
3 k7 I* { n6 |" ]我目前的环境中, DHCP 是由路由器提供的, 也就不能像网上的教程那样通过 DHCP 服务来配置 tftp 的信息了.
( O( p. T+ X5 i' H i: w
Y F& _- }" N# w) _; Y下面重点记录如何不改变现有的 DHCP 服务, 而是通过 proxy-dhcp 来实现的.
: P. q1 r3 c( A. \6 z' K, v$ ?实验的系统是 CentOS6.6 x86_64 {# ?# c- p* a
( B6 [; |& l; J" F+ v+ u- P/ E& J需要的软件
5 e" D/ c& R% D2 z7 }需要的软件和网上大部分是一样的, (只是不需要 dhcp 服务相关package, 多了一个 proxy-dhcp 的安装)& y! |* e. |" a! y0 f
; F7 a9 @) K/ e/ G' O- L3 Q& h
- nfs 服务相关 package
- tftp 服务相关 package
- proxy-dhcp$ g# ]0 {. {2 A+ P; ?# d6 s
7 @5 C* v* @, m- z5 A9 h }nfs 和 tftp 的安装通过 apt-get 或者 rpm 都行, 这里就不详细介绍了.
* u; B: _4 Q% R主要介绍下 proxy-dhcp 的安装% m' D0 c) e6 L# o3 o
9 E9 i+ C4 A" }/ p% J
svn co http://svn.coderepos.org/share/lang/c/pxe-pdhcp8 V% x; L( C- b* G
cd pxe-pdhcp
. S# M# c+ X9 Z+ B4 J7 Y6 nmake
5 o& d" @, T5 t3 `
$ z* }3 x6 Q9 B% ~/ F如果 make 的时候出现数组越界的错误的话, 在出错的位置修改 (大概在 pxe-pdhcp.c 的 330行)
! P4 @( F$ ?- ?" i( q
- \6 [. [. q2 ?4 b. Mifr.ifr_name[IFNAMSIZ] = '\0';/ U$ k/ K& y/ g7 p4 H% m
修改为:
+ L; d9 X& q+ q- q. |ifr.ifr_name[IFNAMSIZ-1] = '\0';- f8 y7 W& |) l8 h' |
+ ]$ S5 g: m ^& ~2 }启动 proxy dhcp 服务2 B4 K3 K# N: e* L
5 p' k$ }- L0 g$ u' d/ ^: ~# a( w
make之后, 生成了 pxe-pdhcp 可执行文件.
+ R% [ u# ^( l/ r# l* e3 ?0 e8 v+ v }, r, `5 h
pxe-pdhcp -l 0.0.0.0 -b 255.255.255.0 -t 192.168.1.2 -d pxelinux.0+ L6 i i" a+ l3 {
7 D$ {/ p' T0 A; H$ y) F* V
其中 -t 选项是 tftp服务器的IP1 C4 v& L6 j2 f" W& u
4 c6 S3 D9 z2 _5 H3 V
nfs 服务和 tftp 服务的配置网上很多, 这里就不详细介绍了.2 @5 t/ d; R6 O7 h7 L; s
+ P7 C. F8 ~- t& W5 X6 B; M) z- H关键的几个配置文件
/ F' k% m: d& B: w7 P7 ]. m
/ p& Y! b' N9 {( m5 s+ j+ ]3 Z% T3 g- tftp 服务默认是 disable的, 要修改.( P- O8 K6 K) e
|+ E; |/ M% Q7 n3 L7 Z) Icat /etc/xinetd.d/tftp) f. A2 X9 P4 `1 {9 l% _9 \
service tftp
* H4 J2 q! U8 z7 B+ E{" l) M8 J" q+ v X
socket_type = dgram
% h2 {( T/ e' Fprotocol = udp2 m' M \' }, i2 s0 U( ~8 }
wait = yes
; V4 \' F3 \5 w1 Z0 ~user = root
+ f- g W5 \ {' ?server = /usr/sbin/in.tftpd7 L4 F# T! P- Y& Y& n
server_args = -s /var/lib/tftpboot5 G5 e" x5 x0 E" ?( E0 D% n* {
disable = no # <== 这里改成 no, 原先是 yes
3 y/ c: z( _3 Z/ Aper_source = 11
4 Q% E- f0 _, j5 ncps = 100 20 N0 s( ?* {7 W: U& G" p, P1 M
flags = IPv4/ r% w7 n8 T. Q7 l/ `; U
}
0 B3 h+ `( ]0 i
( d' r$ e5 |0 p. Q1 A0 O, } 2. tftp 中 pxe 的配置文件* w" C( d e& T4 y* w7 W) Z5 {
$ s/ n( ~! p5 X& p7 s. a5 u9 X4 m
没用 kickstart 方式, 引导成功后需要手动安装.
# s) M/ r. u* Y
" v$ M5 a; M4 L3 `" W* ecat /var/lib/tftpboot/pxelinux.cfg/default
. ?1 r4 }+ t7 Q+ R/ t8 DDEFAULT menu.c32. {0 c: z' Z. M% u7 d; c: Q
TIMEOUT 100
+ C6 e" x! {$ ]# O
3 I( z, b/ |; O) F; J6 S3 F; FLABEL centos6
. L2 Z6 a* L$ ]! T7 ^KERNEL centos6/vmlinuz* x/ }' A- d2 p
APPEND initrd=centos6/initrd.img nfsroot=nfs:10.0.1.1:/srv/centos6 ip=dhcp console=tty0
; e& c- R, b- F0 F4 L5 t8 Y1 Q3 O5 j5 n/ {
用 kickstart 方式的话, 只要将其中的
4 w3 g7 n# V7 }( N5 M+ u9 E i. o- t' h6 W( n
nfsroot=nfs:10.0.1.1:/srv/centos6: G3 e9 n0 T( n" d
改成
5 C0 `0 A, S. q) F4 o x& sks=nfs:10.0.1.1:/srv/centos6/centos6.ks 之类的就行
; u. f% W G5 M6 ] |
|