天天看点

通过PXE远程引导系统

服务器托管在外地,系统出了大问题无法正常启动,虽然有远程控制卡可以操作,可以看到屏幕,而且通过控制卡提供的程序可以加载iso,但是本地连过去的网络太慢,很多时间是干着急,这时就想到用PXE引导,尝试了一下还是很方便的。

首先需要确认和准备几件事:

  • 网卡支持PXE,有些服务器只支持内置的网卡引导,这时候就得注意这个网卡在交换机上如何访问到。
  • 可以远程控制目标机器的启动过程,KVM,DRAC或Console线都可以
  • 同网段内有另外一台机器可以操作,最好是在自己的内网内操作,否则会不安全
  • 可引导用的vmlinuz和initrd,可以从一些安装盘或live cd上找到
  • 提供服务器的机器需要安装好 syslinux, dhcp服务器和tftp服务器

修改tftp服务器的配置,它通过xinetd启动,编译 /etc/xinetd.d/tftp:

service tftp

{

socket_type = dgram

protocol = udp

wait = yes

user = root

server = /usr/sbin/in.tftpd

server_args = -u nobody -s /tftpboot

disable = no

per_source = 11

cps = 100 2

flags = IPv4

}

启动tftp服务器:

chkconfig tftp on

编辑 /etc/dhcpd.conf:

ignore client-updates;

allow booting;

allow bootp;

subnet 192.168.1.0 netmask 255.255.255.0 {

option routers 192.168.1.1;

option subnet-mask 255.255.255.0;

option time-offset -18000;

range dynamic-bootp 192.168.1.10 192.168.1.100;

default-lease-time 21600;

max-lease-time 43200;

next-server 192.168.1.1;

filename "/pxelinux.0";

}  

启动dhcpd:

/etc/init.d/dhcpd start

安装引导文件:

cp /usr/lib/syslinux/pxelinux.0 /tftpboot/

cp /path/to/vmlinuz /tftpboot/

cp /path/to/initrd /tftpboot/

mkdir /tftpboot/pxelinux.cfg

最后编辑 /tftpboot/pxelinux.cfg/default

default linux

label linux

kernel vmlinuz

append initrd=initrd  

之后远程控制要引导的机器,控制它使用适当的网卡启动,通过DHCP获得IP引导就可以了。

继续阅读