- 论坛徽章:
- 0
|
pxe安装ubuntu
这篇来自网路,我只是修改了下,在实际中可行!
今天和同事去机房安装硬盘,拆开机器,发现SCSI线不够长,只能接一个硬盘.看来只能用新硬盘替换下老硬盘,可是去的时候没有带任何光盘,无法给新硬盘 安装操作系统,同事说可以回去用PXE,远程安装系统.以前对PXE也有一些了解,不过没有实践过.在网上查了如下资料:
基本原理
1) 什么是PXE
PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络启动。协议分为client和server两端,PXE client在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行。
PXE协议的成功运行需要解决以下两个问题:
既然是通过网络传输,那么计算机在启动时,它的IP地址由谁来配置;
通过什么协议下载Linux内核和根文件系统
对于第一个问题,可以通过DHCP Server解决,由DHCP server来给PXE client分配一个IP地址,DHCP Server是用来给DHCP Client动态分配IP地址的协议,不过由于这里是给PXE Client分配IP地址,所以在配置DHCP Server时,需要增加相应的PXE特有配置。
至于第二个问题,在PXE client所在的ROM中,已经存在了TFTP Client。PXE Client使用TFTP Client,通过TFTP协议到TFTP Server上下载所需的文件。
这样,PXE协议运行的条件就具备了,下面我们就来看看PXE协议的工作过程。
2) 工作过程
在上图中,PXE client是需要安装Linux的计算机,TFTP Server和DHCP Server运行在另外一台Linux Server上。Bootstrap文件、配置文件、Linux内核以及Linux根文件系统都放置在Linux Server上TFTP服务器的根目录下。
PXE client在工作过程中,需要三个二进制文件:bootstrap、Linux 内核和Linux根文件系统。Bootstrap文件是可执行程序,它向用户提供简单的控制界面,并根据用户的选择,下载合适的Linux内核以及Linux根文件系统。
具体配置过程如下:
服务端环境:系统为:ubuntu-9.10-desktop for DVD计算机名:bootserverip:172.16.0.245
我的安装步骤如下:
一、在Ubuntu 安装tftp服务的方法
tftpd-hpa 服务端软件tftp-hpa 客户端软件
安装tftpd-hpa和xinetd在ubuntu下,tftp是不能单独运行的,需要xinetd这个服务管理来启动,所以需要同时安装这两个套件$ sudo apt-get install tftpd-hpa xinetd注:先要选择台湾的软件源,默认源没有xinetd下载
在/etc/xinetd.d/下建立一个tftp配置文档$ sudo vi /etc/xinetd.d/tftp
存入service tftp{ socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4}
完成以上设定后,还需要让xinetd读入新参数并重新启动sudo /etc/init.d/xinetd reloadsudo /etc/init.d/xinetd restart
檢查一下tftp是否真的在運作$ sudo netstat -anp | grep tftpudp 0 0 0.0.0.0:69 0.0.0.0:*
-----------------------------------------------------------------------------------打开/etc/default/tftpd-hpa#Defaults for tftpd-hpaRUN_DAEMON="no"OPTIONS="-l -s /var/lib/tftpboot"------------------------------------------------------------------------------------
二、配置pxe注意:ubuntu的alternate才支持网络安装,所以需要下载这种iso文件我下载的文件是:ubuntu-9.10-alternate-i386.iso
将iso文件中的/install/netboot/下的所有文件与目录复制到/var/lib/tftpboot/下(注意它的权限)$sudo cp install/initrd.gz /var/lib/tftpboot/
$sudo cp install/netboot.ubuntu_install/i386/linux /var/lib/tftpboot
/install/netboot/目录下有以下几个文件:pxelinux.cfg //快捷方式ubuntu-installer //目录pxelinux.0 //快捷方式version.info
二、安装dhcp和apache安装dhcp和apachesudo apt-get install dhcp3-server apache2
配置dhcp:sudo vi /etc/dhcp3/dhcpd.conf
option domain-name "mydomain";
ddns-update-style none;
max-lease-time 7200;
server-name "bootserver";
default-lease-time 600;
allow booting;
allow bootp;
subnet 172.16.0.0 netmask 255.255.255.0 {
range 172.16.0.230 172.16.0.232;
}
group pxe {
filename "/pxelinux.0";
host client1 { hardware ethernet 00:0C:29:70:24:5B;
fixed-address 172.16.0.230;
}
}
重启dhcpdsudo /etc/init.d/dhcp3-server restart
#文件pxelinux.0(在TFTP服务器的根目录中)将作为启动映像被网卡ROM里的PXE客户端载入内存并运行.
每增加一台需安装的机器,我们需在dhcpd.conf中增加一条host条目,将客户机的MAC地址输入进去,同时分配一个IP地址,如果不输入MAC地址,客户机将无法通过DHCP取的IP地址。
配置apacheubuntu-9.04-alternate-i386.iso
将此iso文件挂载到/var/www/ub910$sudo mkdir /var/www/ub910$sudo mount /dev/cdrom /var/www/ub910也可这样:sudo mount -o loop ubuntu.iso /var/www/ub910
这样服务端配置完成
################################
后面的我没有试过,上面的我用过的,可行的。
网络文件系统 (NFS)
安装 * 在终端提示符后键入以下命令安装 NFS 服务器: sudo apt-get install nfs-kernel-server 二.配置 * 您可以配置要输出的目录,您可以在 /etc/exports 文件中添加该目录。例如: /var/www/ub910 *(ro,sync,no_root_squash) 您可以用主机名来代替 *。尽量指定主机名以便使那些不想其访问的系统访问 NFS 挂载的资源。
三、配置pxe通过NFS 来安装
添加如下内容:
$sudo vi /var/lib/tftpboot/pxelinux.cfg/default
LABEL Ubuntu 9.10 i386 Unmodified Livecd
KERNEL vmlinuz
APPEND root=/dev/nfs boot=casper netboot=nfs nfsroot=172.16.0.245:/var/www/ub910 initrd=initrd.gz quiet splash
您可以在终端提示符后运行以下命令来启动 NFS 服务器: sudo /etc/init.d/nfs-kernel-server start |
|