以前的文章都是针对ia32和x86_64的,网络安装IA64的机器有点问题,最关键的就是pxelinux不支持IA64,取而代之的是elilo,这是HP做的。
安腾的机器最特别的就是EFI了,在之前有篇EFI的读书笔记可以参考。简单来说,要实现网络安装,做法如下:
1. 配置DHCP,和之前一样配置
2. 配置TFTP,和之前一样配置
3. 和其他的不一样了,/tftpboot目录下空空如也,什么都没有,这是因为IA64上根本没有sysconfig-config-netboot这个RPM了。所以,一切自己来。首先, cp /boot/efi/efi/redhat/elilo.efi /tftpboot,这就相当于pxelinux.0;然后,配置。可以参考elilo的文档netbooting.txt。elilo.efi搜寻配置文件的逻辑是这样的(和pxelinux相似,但不完全一样):
(1)在当前目录下查找<HEX IP Address>.conf这样的文件,也就是根据DHCP获得的IP地址,将IP地址变成16进制,然后查找这样的文件,比如C0A80018.conf。和pxelinux不同的是,pxelinux.0在当前目录下的pxelinux.cfg目录下查找,elilo.efi就在当前目录下查找;pxelinux.0查找的配置文件没有.conf后缀,但elilo.efi的配置文件要以.conf为后缀
(2)找不到就找elilo-ia32.conf, elilo-ia64.conf
(3)最后找elilo.conf
我们显然用方法1,这样多台机器就能对应多个配置文件,这些配置文件里面就可以定义自己的ks文件了
4. 将第一张光盘的images/pxeboot/vmlinuz, initrd.img两个文件拷贝到/tftpboot下
5. 书写elilo的配置文件,这里有个样板:
几个注意点:
(1)和pxelinux的配置文件不一样,每个配置项和value之间有个“=”号,pxelinux配置项和value是以空格隔开的。
(2)image=vmlinuz,也就是定义内核文件的一行,不能写在label一行的后面
(3)append里面,pxe里面有的initrd=initrd.img这里不用写了。但是ramdisk_size一项一定要注意写,这里写的是81920,也就是80M。如果ramdisk太小的话,就会出现一个错误:在内核启动的时候会询问我们root分区的配置,然后kernel panic,Linux提示我们在append里面添加root=XXX的配置,这是因为ramdisk里面放不下需要的东西,所以根分区/没有形成(原来Linux是在内存中形成一个根分区嘛,也就是initrd.img了),所以linux尝试在硬盘上查找根分区,所以需要root的配置。
ramdisk里面放的是linux内核,还有initrd.img,在IA64里面内核和这个initrd.img加起来有8M多,所以8192这个大小肯定是不够的,调大就OK了。
所以现在回想起来原来做的pxelinux中的配置,这个ramdisk_size也要调大才行。以前因为i386和x86_64中,内核+initrd.img加起来没有8M这么大,所以以前没有问题。
(4)timeout一项里面定义的时间,单位是十分之一秒,填写20,就表示等待2秒
6. 配置vsftpd,和前面一样
7. 书写ks文件,和ia32,x86_64一样,因为都是CentOS 4.4嘛,唯一需要修改的就是根据管理节点上的anaconda.ks,修改一下package那部分的配置。IA64的package和其他的有点不同。
8. 管理节点上配置OK了,打开每台机器,进入boot maintain management, 将网络启动add到boot option里面去,网络启动的boot file就是含有MAC这样关键字的boot option。然后就可以网络启动了,安装完成后,CentOS 4.4就自动出现在EFI boot菜单的第一个了!我发现这个EFI还是非常不错的,这样我就可以将网络启动设成第一个,等CentOS装完了,CentOS的启动项就自动放到第一个去了,从而避免了第二次网络启动。
安腾的机器最特别的就是EFI了,在之前有篇EFI的读书笔记可以参考。简单来说,要实现网络安装,做法如下:
1. 配置DHCP,和之前一样配置
2. 配置TFTP,和之前一样配置
3. 和其他的不一样了,/tftpboot目录下空空如也,什么都没有,这是因为IA64上根本没有sysconfig-config-netboot这个RPM了。所以,一切自己来。首先, cp /boot/efi/efi/redhat/elilo.efi /tftpboot,这就相当于pxelinux.0;然后,配置。可以参考elilo的文档netbooting.txt。elilo.efi搜寻配置文件的逻辑是这样的(和pxelinux相似,但不完全一样):
(1)在当前目录下查找<HEX IP Address>.conf这样的文件,也就是根据DHCP获得的IP地址,将IP地址变成16进制,然后查找这样的文件,比如C0A80018.conf。和pxelinux不同的是,pxelinux.0在当前目录下的pxelinux.cfg目录下查找,elilo.efi就在当前目录下查找;pxelinux.0查找的配置文件没有.conf后缀,但elilo.efi的配置文件要以.conf为后缀
(2)找不到就找elilo-ia32.conf, elilo-ia64.conf
(3)最后找elilo.conf
我们显然用方法1,这样多台机器就能对应多个配置文件,这些配置文件里面就可以定义自己的ks文件了
4. 将第一张光盘的images/pxeboot/vmlinuz, initrd.img两个文件拷贝到/tftpboot下
5. 书写elilo的配置文件,这里有个样板:
- CODE: SELECT ALL
prompt
timeout=1
default=lniautoconf
relocatable
image=vmlinuz
label=lniautoconf
initrd=initrd.img
append="ks=ftp://192.168.0.254/ks/24.ks ksdevice=eth0 ramdisk_size=81920"
几个注意点:
(1)和pxelinux的配置文件不一样,每个配置项和value之间有个“=”号,pxelinux配置项和value是以空格隔开的。
(2)image=vmlinuz,也就是定义内核文件的一行,不能写在label一行的后面
(3)append里面,pxe里面有的initrd=initrd.img这里不用写了。但是ramdisk_size一项一定要注意写,这里写的是81920,也就是80M。如果ramdisk太小的话,就会出现一个错误:在内核启动的时候会询问我们root分区的配置,然后kernel panic,Linux提示我们在append里面添加root=XXX的配置,这是因为ramdisk里面放不下需要的东西,所以根分区/没有形成(原来Linux是在内存中形成一个根分区嘛,也就是initrd.img了),所以linux尝试在硬盘上查找根分区,所以需要root的配置。
ramdisk里面放的是linux内核,还有initrd.img,在IA64里面内核和这个initrd.img加起来有8M多,所以8192这个大小肯定是不够的,调大就OK了。
所以现在回想起来原来做的pxelinux中的配置,这个ramdisk_size也要调大才行。以前因为i386和x86_64中,内核+initrd.img加起来没有8M这么大,所以以前没有问题。
(4)timeout一项里面定义的时间,单位是十分之一秒,填写20,就表示等待2秒
6. 配置vsftpd,和前面一样
7. 书写ks文件,和ia32,x86_64一样,因为都是CentOS 4.4嘛,唯一需要修改的就是根据管理节点上的anaconda.ks,修改一下package那部分的配置。IA64的package和其他的有点不同。
8. 管理节点上配置OK了,打开每台机器,进入boot maintain management, 将网络启动add到boot option里面去,网络启动的boot file就是含有MAC这样关键字的boot option。然后就可以网络启动了,安装完成后,CentOS 4.4就自动出现在EFI boot菜单的第一个了!我发现这个EFI还是非常不错的,这样我就可以将网络启动设成第一个,等CentOS装完了,CentOS的启动项就自动放到第一个去了,从而避免了第二次网络启动。