Feb
15
使用PXE方式安装红旗Desktop 5.0
首先要说明的是,红旗产品手册《RedFlag Desktop 5.0 安装手册》上已经提供有PXE安装方式的说明。而我下面只是作为补充的方式进行,详细的请参考上述手册。
我以一台需要安装红旗桌面5.0的空机器为例,后台服务器使用DC Server 4.1,使用ISO方式安装。ISO放在后台服务器上。
(测试中发现,后台服务器如果采用红旗DC Server 5.0,并使用它/usr/lib/syslinux/pxelinux.0文件,版本PXE 2.11。那么,不能用Vmware GSX Server 3.2进行测试。会出现启动到boot:界面,但输入不了字符的错误。但可以用实际机器进行安装,只是虚拟机才会出现问题。而且,如果用DC Server 4.1带的PXE 2.06也正常。)
一、原理
严格来说,PXE并不是一种安装方式,而是一种引导的方式。要进行PXE安装的必要条件是:要安装的计算机包含有一个支持PXE启动的网卡,也就是说网卡中要有PXE Client。通常板载网卡、品牌机和笔记本电脑都可以满足该要求。
PXE(Pre-boot Execution Environment)协议分为client和server两端,PXE client在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行。
工作流程如下:
PXE client是需要安装Linux的计算机,TFTP Server和DHCP Server运行在另外一台Linux Server上。Bootstrap文件、配置文件、Linux内核以及Linux根文件系统都放置在Linux Server上TFTP服务器的根目录下。PXE client在工作过程中,需要三个二进制文件:bootstrap、Linux 内核和Linux根文件系统。Bootstrap文件是可执行程序,它向用户提供简单的控制界面,并根据用户的选择,下载合适的Linux内核以及Linux根文件系统。
二、准备
根据上述的原来,我们需要最少1台基于linux的服务器作为PXE server、DHCP server、TFTP server使用。而且,考虑到PXE只是引导,最后安装的时候还是要用网络的方式,如:NFS、FTP等,所以也可以把该服务一起配置上去。
另外,由于PXElinux具有为不同的PXE Client提供不同的Linux内核以及根文件系统的功能,所以我们需要知道即将安装的机器使用的网卡MAC地址。
最后,我选择了红旗DC Server 4.1作为这个后台服务器。网卡地址是:00:0C:29:B7:A8:A3
三、实施
以下步骤,从特殊说明外,都在红旗DC Server 4.1上执行:
1、配置DHCP服务端
配置文件在/etc/dhcpd.conf,没有的话,手动建立它。内容如下:
2、配置TFTP Server
默认TFTP服务是关闭的,修改/etc/xinetd.d/tftp文件,把disable从yes改为no,内容如下:
3、配置相关的文件
首先是bootstrap文件,在dhcpd.conf中已经指定了是pxelinux.0,把它从/usr/lib/syslinux/目录中拷贝到/tftpboot/目录下:
然后是为不同的PXEClient指定linux核心、根文件的配置文件。先在/tftpboot下建立一个pxelinux.cfg目录,然后再该目录下根据你DHCP里面指定分配给PXEClient的IP地址建立配置文件,如:
我给PXEClient提供的IP是:
所以,我们要建立的文件应该是C0A8E4DD。如果启动的时候找不到该文件,TFTP会以C0A8E4DD->C0A8E4D->C0A8E4->C0A8E->C0A8->C0A->C0->C->default的方式寻找。(所以如果在同时安装多台同系统的机器的时候,可以用C0或default等文件来批量配置)
结果如下:
cd pxelinux.cfg
cat > C0A8E4DD << EOF
DEFAULT install
PROMPT 1
LABEL install
KERNEL vmlinuz
APPEND initrd=initrd.img devfs=nomount ramdisk_size=16384
chmod 644 C0A8E4DD
※这里要注意,ramdisk不能太小,否则可能加载不完linux的核心。另外,C0A8E4DD这个文件的权限最少是644,因为tftp使用nobody用户去读取的。
4、拷贝对应的核心文件和根文件
这里必须拷贝你要安装的linux版本的对应文件。例如,我要安装的是红旗桌面5.0,则把第一张光盘/images/pxeboot目录下的两个文件vmlinuz(Linux内核)和initrd.img(Linux根文件系统)拷贝到主服务器DC Server 4.1上的/tftpboot目录下。
5、启动后台服务
(TFTP是由xinetd托管的)
6、配置FTP服务器
该FTP服务器主要是为安装程序提供资源,可以用proftpd、vsftpd等。要注意的地方是:
A、红旗桌面5.0的ISO文件先mount到某个目录中,并以该目录为ftp登陆后的根目录
B、可以使用匿名或用户验证方式
7、启动要安装的机器
首先在Bios里面选择从网络启动,会出现这样的界面:
看到boot:后,即可输入参数,回车后按正常的方式安装,如:linux test。
出现安装界面:
※注意,由于红旗的安装光盘最少有2个ISO文件,而在启动的时候只是把第一张光盘挂载到ftp上。如果安装途中出现如:
则表示需要更换光盘了。此时,可以先把ftp停止,然后umount ISO文件,再mount上新的ISO文件,启动ftp即可。
使用FTP、NFS方式安装都必须先把服务停止,以防止缓存导致问题。
※附件:
例程中配置好的文件,点击下载。
我以一台需要安装红旗桌面5.0的空机器为例,后台服务器使用DC Server 4.1,使用ISO方式安装。ISO放在后台服务器上。
(测试中发现,后台服务器如果采用红旗DC Server 5.0,并使用它/usr/lib/syslinux/pxelinux.0文件,版本PXE 2.11。那么,不能用Vmware GSX Server 3.2进行测试。会出现启动到boot:界面,但输入不了字符的错误。但可以用实际机器进行安装,只是虚拟机才会出现问题。而且,如果用DC Server 4.1带的PXE 2.06也正常。)
一、原理
严格来说,PXE并不是一种安装方式,而是一种引导的方式。要进行PXE安装的必要条件是:要安装的计算机包含有一个支持PXE启动的网卡,也就是说网卡中要有PXE Client。通常板载网卡、品牌机和笔记本电脑都可以满足该要求。
PXE(Pre-boot Execution Environment)协议分为client和server两端,PXE client在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行。
工作流程如下:
PXE client是需要安装Linux的计算机,TFTP Server和DHCP Server运行在另外一台Linux Server上。Bootstrap文件、配置文件、Linux内核以及Linux根文件系统都放置在Linux Server上TFTP服务器的根目录下。PXE client在工作过程中,需要三个二进制文件:bootstrap、Linux 内核和Linux根文件系统。Bootstrap文件是可执行程序,它向用户提供简单的控制界面,并根据用户的选择,下载合适的Linux内核以及Linux根文件系统。
二、准备
根据上述的原来,我们需要最少1台基于linux的服务器作为PXE server、DHCP server、TFTP server使用。而且,考虑到PXE只是引导,最后安装的时候还是要用网络的方式,如:NFS、FTP等,所以也可以把该服务一起配置上去。
另外,由于PXElinux具有为不同的PXE Client提供不同的Linux内核以及根文件系统的功能,所以我们需要知道即将安装的机器使用的网卡MAC地址。
最后,我选择了红旗DC Server 4.1作为这个后台服务器。网卡地址是:00:0C:29:B7:A8:A3
三、实施
以下步骤,从特殊说明外,都在红旗DC Server 4.1上执行:
1、配置DHCP服务端
配置文件在/etc/dhcpd.conf,没有的话,手动建立它。内容如下:
引用
option space PXE;
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;
# At least one of the vendor-specific PXE options must be set in
# order for the client boot ROMs to realize that we are a PXE-compliant
# server. We set the MCAST IP address to 0.0.0.0 to tell the boot ROM
# that we can't provide multicast TFTP (address 0.0.0.0 means no
# address).
option PXE.mtftp-ip 0.0.0.0;
# This is the name of the file the boot ROMs should download.
# 指定PXE启动后下载的文件名
filename "pxelinux.0";
# This is the name of the server they should get it from.
# 这里指定TFTP服务器IP地址
next-server 192.168.228.16;
}
ddns-update-style interim;
ignore client-updates;
default-lease-time 1200;
max-lease-time 9200;
#下面开始定义DHCP的IP范围
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.228.255;
#网关、域名等可以根据实际情况,不要也可以
option routers 192.168.228.1;
option domain-name-servers 192.168.228.1;
option domain-name "mydomain.org";
subnet 192.168.228.0 netmask 255.255.255.0 {
range 192.168.228.220 192.168.228.225;
}
#根据需要安装机器的网卡地址定义IP,并记录下来
host test {
hardware ethernet 00:0C:29:B7:A8:A3;
fixed-address 192.168.228.221;
}
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;
# At least one of the vendor-specific PXE options must be set in
# order for the client boot ROMs to realize that we are a PXE-compliant
# server. We set the MCAST IP address to 0.0.0.0 to tell the boot ROM
# that we can't provide multicast TFTP (address 0.0.0.0 means no
# address).
option PXE.mtftp-ip 0.0.0.0;
# This is the name of the file the boot ROMs should download.
# 指定PXE启动后下载的文件名
filename "pxelinux.0";
# This is the name of the server they should get it from.
# 这里指定TFTP服务器IP地址
next-server 192.168.228.16;
}
ddns-update-style interim;
ignore client-updates;
default-lease-time 1200;
max-lease-time 9200;
#下面开始定义DHCP的IP范围
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.228.255;
#网关、域名等可以根据实际情况,不要也可以
option routers 192.168.228.1;
option domain-name-servers 192.168.228.1;
option domain-name "mydomain.org";
subnet 192.168.228.0 netmask 255.255.255.0 {
range 192.168.228.220 192.168.228.225;
}
#根据需要安装机器的网卡地址定义IP,并记录下来
host test {
hardware ethernet 00:0C:29:B7:A8:A3;
fixed-address 192.168.228.221;
}
2、配置TFTP Server
默认TFTP服务是关闭的,修改/etc/xinetd.d/tftp文件,把disable从yes改为no,内容如下:
引用
service tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
per_source = 11
cps = 100 2
flags = IPv4
}
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
per_source = 11
cps = 100 2
flags = IPv4
}
3、配置相关的文件
首先是bootstrap文件,在dhcpd.conf中已经指定了是pxelinux.0,把它从/usr/lib/syslinux/目录中拷贝到/tftpboot/目录下:
cp /usr/lib/syslinux/pxelinux.0 /tftpboot/
然后是为不同的PXEClient指定linux核心、根文件的配置文件。先在/tftpboot下建立一个pxelinux.cfg目录,然后再该目录下根据你DHCP里面指定分配给PXEClient的IP地址建立配置文件,如:
cd /tftpboot/
mkdir pxelinux.cfg
mkdir pxelinux.cfg
我给PXEClient提供的IP是:
引用
192.168.228.221
C0 A8 E4 DD <--对应的十六进制
C0 A8 E4 DD <--对应的十六进制
所以,我们要建立的文件应该是C0A8E4DD。如果启动的时候找不到该文件,TFTP会以C0A8E4DD->C0A8E4D->C0A8E4->C0A8E->C0A8->C0A->C0->C->default的方式寻找。(所以如果在同时安装多台同系统的机器的时候,可以用C0或default等文件来批量配置)
结果如下:
cd pxelinux.cfg
cat > C0A8E4DD << EOF
DEFAULT install
PROMPT 1
LABEL install
KERNEL vmlinuz
APPEND initrd=initrd.img devfs=nomount ramdisk_size=16384
chmod 644 C0A8E4DD
※这里要注意,ramdisk不能太小,否则可能加载不完linux的核心。另外,C0A8E4DD这个文件的权限最少是644,因为tftp使用nobody用户去读取的。
4、拷贝对应的核心文件和根文件
这里必须拷贝你要安装的linux版本的对应文件。例如,我要安装的是红旗桌面5.0,则把第一张光盘/images/pxeboot目录下的两个文件vmlinuz(Linux内核)和initrd.img(Linux根文件系统)拷贝到主服务器DC Server 4.1上的/tftpboot目录下。
scp /images/pxeboot/vmlinuz 192.168.228.16:/tftpboot/
scp /images/pxeboot/initrd.img 192.168.228.16:/tftpboot/
scp /images/pxeboot/initrd.img 192.168.228.16:/tftpboot/
5、启动后台服务
service dhcpd start
service xinetd start
service xinetd start
(TFTP是由xinetd托管的)
6、配置FTP服务器
该FTP服务器主要是为安装程序提供资源,可以用proftpd、vsftpd等。要注意的地方是:
A、红旗桌面5.0的ISO文件先mount到某个目录中,并以该目录为ftp登陆后的根目录
B、可以使用匿名或用户验证方式
7、启动要安装的机器
首先在Bios里面选择从网络启动,会出现这样的界面:
看到boot:后,即可输入参数,回车后按正常的方式安装,如:linux test。
出现安装界面:
※注意,由于红旗的安装光盘最少有2个ISO文件,而在启动的时候只是把第一张光盘挂载到ftp上。如果安装途中出现如:
则表示需要更换光盘了。此时,可以先把ftp停止,然后umount ISO文件,再mount上新的ISO文件,启动ftp即可。
使用FTP、NFS方式安装都必须先把服务停止,以防止缓存导致问题。
※附件:
例程中配置好的文件,点击下载。
(vmware上使用该PXE方式如果配置正确,是支持的,我常用)