三、无盘(GRUB)安装
这节讨论的话题假设你已经安装了红帽企业版Linux、使用GRUB作为你的引导程序,同时假设你是Linux高级用户。
在这一小节中,我们使用GRUB引导程序启动安装进程。
3.1 启动文件
没有光盘与PXE服务器启动安装程序时,你的系统必须要有两个文件放在本地,一个内核与一个初始化RAM盘。
拷贝红帽企业版Linux DVD 中的vmlinuz和initrd.img到/boot目录下,并重命名为vmlinuz-install、initrd.img-install。
你需要有root权限才可以写文件至/boot/目录。
3.2 修改GRUB配置文件
GRUB引导程序的配置文件在/boot/grub/grub.conf。修改该文件,添加一段引导信息:
title Installation
root (hd0,0)
kernel /vmlinuz-install
initrd /initrd.img-install
你也许会希望在kernel行末尾添加选项,可以使用的选项在上面已经讲解,下面这些选项一般会比较有用:
*ip=
*repo=
*lang=
*keymap=
*ksdevice=
*vnc、vncpassword=
最后,在/boot/grub/grub.conf中修改defualt选项指定按新的引导信息启动。
3.3 启动安装程序
重启系统,GRUB引导安装程序kernel与RAM disk(包括任何设置的任何选项)。
四、准备服务器(启动与安装服务器)
以下是准备以PXE方式安装系统所必须的步骤:
# 配置网络服务(NFS,FTP,HTTP,HTTPS)发布安装树(安装光盘)
# 在tftp上配置PXE启动所必须的文件
# 配置允许哪些主机可以使用PXE配置文件启动
# 启动tftp服务
# 配置DHCP服务
# 启动客户端,安装系统
4.1 配置网络服务器
首先,需要配置一台NFS,FTP,HTTP,或者HTTPS服务器,用来发布红帽企业版Linux不同版本的安装树。
实例:这里我们制作一份NFS服务器
1. [root@localhost ~]#mount /dev/cdrom /media/
2. [root@localhost ~]#vim /etc/exports 修改NFS配置文件共享/media目录给192.168.0.0/24网段
/media 192.168.0.0/24(ro)
3. [root@localhost ~]#/sbin/service nfs start 启动NFS服务
4.2 PXE启动配置
这一步我们需要拷贝一些文件到tftp服务器,当客户端需要启动安装程序的时候可以在tftp服务器上找到它们。
4.2.1 如果没有安装tftp-server,则需要运行yum install tftp-server安装该服务。
4.2.2 修改tftp-server配置文件/etc/xinetd.d/tftp,将disabled参数值从yes改为no。
备注:RHEL6中保存tftp配置文件后立刻生效,无需重启服务。
4.2.3 配置DHCP服务器,动态主机配置协议允许客户端接收DHCP服务器用来描述各种网络配置和网络服务的选项。
如果安装dhcp服务,则需要运行yum install dhcp安装该服务。
下面是DHCP配置文件的例子,配置文件在/etc/dhcp/dhcpd.conf:
option space pxelinux;
option pxelinux.magic code 208 = string;
option pxelinux.configfile code 209 = text;
option pxelinux.pathprefix code 210 = text;
option pxelinux.reboottime code 211 = unsigned integer 32;
subnet 192.168.0.0 netmask 255.255.255.0 {
option routers 192.168.0.1;
range 192.168.0.100 192.168.0.200;
class "pxeclients" {
match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
next-server 192.168.0.1;
if option arch = 00:06 {
filename "pxelinux/bootia32.efi";
} else if option arch = 00:07 {
filename "pxelinux/bootx64.efi";
} else {
filename "pxelinux/pxelinux.0";
}
}
host bootserver {
hardware ethernet XX:YY:ZZ:11:22:33;
fixed-address 192.168.0.1;
}
host nfsserver {
hardware ethernet AA:BB:CC:11:22:33;
fixed-address 192.168.0.2;
}
}
这里不再详细解释每行的含义,具体可以参考相关资料,主要思路是为客户端分配网络参数、服务器信息、地址保留。
这里很重要的一点是根据客户端信息来指定启动服务器的信息。
信息包括:启动服务器的IP地址为192.168.0.1,
启动文件名称(如何客户端使用EFI启动名称为bootia32.efi和boottx64.efi,如果客户端使用BIOS启动名称为pxelinux.0)
4.2.4 复制pxelinux.0文件至tftp服务器
通过上一步骤客户端可以获得本身网卡的网络参数,同时还会获得启动服务器信息,
这时客户端会到192.168.0.1服务器的tftp上读取名为pxelinux.0的文件来启动系统。
现在我们就需要使用syslinux软件包,获得pxelinux.0文件并复制到tftp服务器。
[root@localhost ~]#yum install syslinux
[root@localhost ~]#mkdir /var/lib/tftpboot/pxelinux
[root@localhost ~]#cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/pxelinux
4.2.5 在tftp服务器上创建pxelinux.cfg目录并生成PXE配置文件(default)
[root@localhost ~]#mkdir /var/lib/tftpboot/pxelinux/pxelinux.cfg
[root@localhost ~]#vim /var/lib/tftpboot/pxelinux/pxelinux.cfg/default
default linux
#prompt 1
timeout 600
display boot.msg
label linux
menu label ^Install or upgrade an existing system
menu default
kernel vmlinuz
append initrd=initrd.img
label vesa
menu label Install system with ^basic video driver
kernel vmlinuz
append initrd=initrd.img xdriver=vesa nomodeset
label rescue
menu label ^Rescue installed system
kernel vmlinuz
append initrd=initrd.img rescue
label local
menu label Boot from ^local drive
localboot 0xffff
label memtest86
并且上面的配置文件没有使用Kickstart文件,所以不会自动安装系统,如果需要实现无人值守需要在append行添加参数。
上面模版中核心内容:default定义默认启动菜单,这里使用标签为linux的启动项,而label在下面定义了标签名称为linux的启动项。
4.2.6 拷贝内核文件至tftp服务器
启动镜像文件在红帽企业版6安装光盘的isolinux目录下,名称为:vmlinuz、initrd.img。
[root@localhost ~]#cp /media/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/pxelinux/