免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2414 | 回复: 3
打印 上一主题 下一主题

[Web] LINUX无盘架设(新) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-01-30 16:04 |只看该作者 |倒序浏览
客户端是支持PXE方式启动的刀片,用Linux作为服务器,服务器配置如下:

1) 安装DHCP服务器dhcpd

2) 配置/etc/dhcpd.conf文件,下面是我机器上的文件


max-lease-time -1;
default-lease-time -1; #注:IP地址永不过期
option subnet-mask 255.0.0.0;
option routers 10.0.0.1;
option domain-name-servers 10.10.10.10;
# option netbios-name-servers 10.10.10.10;
option broadcast-address 10.255.255.255;
# option dhcp-class-identifier "PXEClient";
# option vendor-encapsulated-options 01:04:00:00:00:00:ff;
# option option-135 "start";

allow bootp;
allow booting;

subnet 10.0.0.0 netmask 255.0.0.0 {
range 10.10.12.131 10.10.12.150;

host client {
hardware ethernet 00:e0:43:00:02:00;
fixed-address 10.10.12.131;
filename "/tftpboot/pxelinux.0"; #启动映象文件
}

}

说明:dhcp客户得到IP地址后用TFTP协议从服务器上下载启动映象文件。我用syslinux工具包里边的pxelinux来作为远程启动的loder。主要用于pxe启动芯片。
       如果你用FC4系统建议关闭selinux。vi /etc/sysconfig/selinux :selinux=disabled ,如果你用默认设置selinux=enforcing,DHCPD服务将无法启动,这是我自己摸索出来的,不知道有没有更好解决办法。

3) 配置tftp server

  使用pxelinux作引导工具需要支持TSIZE参数的tftp server。可从http://www.kernel.org/pub/software/network/tftp/下载。

  通过xinetd来使用tftp服务,我的/etc/xinetd.conf文件如下


......
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
}

4) 配置PXELINUX

  先安装syslinux软件包。可从http://www.kernel.org/pub/linux/utils/boot/syslinux/下载。

  将pxelinux.0拷贝到/tftpboot/目录下,然后建立/tftpboot/syslinux.cfg/目录。该目录下存放配置文件。

  pxelinux使用ip地址的十六进制表示来作为该ip地址的配置文件的文件名。如client的

  ip地址为10.10.12.131,配置文件名为0A0A0C83,内容为:


default linux

label linux
kernel vmlinuz
append ip=dhcp root=/dev/nfsroot nfsroot=10.10.11.120:/remote/client vga=normal

在这里先要说一句,首先你要通过mknod /dev/nfsroot b 0 255命令来建立nfsroot

5) 配置nfs

  为每个刀片建立一个根目录,在该刀片的pxelinux配置文件里指定了从这个nfs export的目录启动。该根目录里应把标准的目录都建好,另外需要重新mount的usr, home, public等目录也要export。

  我的 /etc/exports文件:


# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).

/remote/client   client(rw,async,no_root_squash)
/remote/root           *(rw,async,no_root_squash)
/remote/home         *(rw,async,no_root_squash)
/usr                         *(ro,async,no_root_squash)
/sbin                       *(ro,async,no_root_squash)
/bin                         *(ro,async,no_root_squash)
/lib                          *(ro,async,no_root_squash)
/home                     *(ro,async,no_root_squash)

6)为每个刀片修改它的/etc/fstab文件,以client为例,它的nfs root是/remote/client

/remote/blade01/etc/fstab文件如下:
# /etc/fstab: static file system information.
#
#
10.10.11.120:/remote/client  /  nfs defaults,intr 0 1
10.10.11.120:/remote/root  /root  nfs  defaults,intr 0 1
10.10.11.120:/remote/home  /home  nfs  defaults,intr 0 1
10.10.11.120:/bin  /bin  nfs  defaults,intr 0 1
10.10.11.120:/usr  /usr  nfs  defaults,intr 0 1
10.10.11.120:/sbin  /sbin  nfs  defaults,intr 0 1
10.10.11.120:/lib  /lib  nfs  defaults,intr 0 1
none  /proc  proc  defaults,intr 0 1

同时还要为每个刀片修改它的网络配置文件,配置ip地址,启动两块网卡等等。。

7) 编译内核

  刀片用的内核,应该支持Kernel Level Auto Configuration的DHCP协议,支持NFS,支持NFS ROOT,

  在network options中, kernel ip autoconfiguration一定要选取,且要选为buildin(也就是*号,而不是M或空白),然后底下会出现三个选项,将每一个dhcp与bootp选取,也是buildin (*).即
in Networking options: check
  • IP: kernel level autoconfiguration
  • IP: DHCP support
  • IP: BOOTP support
    [ ] IP: RARP support <--- not necessary
    在network device中,将网卡驱动选上,且也要选项为buildin(也就是*号,而不是M或空白),例如如果您的网卡是realtek 8139,请选取

    Network device support ---> Ethernet (10 or 100Mbit) ---> <*> RealTek RTL-8139 PCI Fast Ethernet Adapter support
    NFS client中务改要选项root file system on NFS,即:

    File system, -> Network File Systems --->, check
    <*> NFS file system support
  • Provide NFSv3 client support
  • Root file system on NFS
    为了client的效率请将tmpfs与devfs也先起来(这会牺牲一点client的磁盘空间,但是效率可以好很多)
    File system, -> check
  • Virtual memory file system support (former shm fs)
  • /dev file system support (EXPERIMENTAL) │ │
  • Automatically mount at boot
    [ ] Debug devfs <--可以不用选项
    执行"make dep; make clean; make bzImage"之后,如果没问题所编译出来的核心在arch/i386/boot/bzImage.
    执行"make modules; make modules_install INSTALL_MOD_PATH=/tftpboot/cleint_kernel_module",如果没有问题的话,,所编译完的modules会放在"/tftpboot/cleint_kernel_module"中.
    注意:client开机时(也就是还没有mount NFS)所需的driver,如硬盘、网卡等,都必都compile进kernel(也就是选为*号,而不是M),不能compile成module
    将产生bzImage用mknbi-linux做Tag,让etherboot可以remote boot使用
    先下载(http://etherboot.sourceforge.net/distribution.html)并安装mknbi套件(rpm -ivh mknbi-1.2-10.noarch.rpm)
    确定你的系统在内核编译时的目录下,然后执行"mknbi-linux --output=/tftpboot/vmlinuz.etherboot --ip=rom arch/i386/boot/bzImage",其中--output表示所产生的目标kernel位置, -ip=rom表示client开机之后继承dhcpd所给的参数,包含ip, netmask等等. arch/i386/boot/bzImage是上个步骤所编译出来的核心位置。

    参考文档:
    http://syslinux.zytor.com/pxe.php
    http://syslinux.zytor.com/faq.php
    http://www.cn-cio.org/xx/show.php?article_id=1680
    http://www-900.ibm.com/developer ... t/l-pex/index.shtml
  • syslinux-tftpboot-3.31-1.i386.rar

    144.53 KB, 下载次数: 62

    论坛徽章:
    0
    2 [报告]
    发表于 2007-01-30 16:11 |只看该作者
    所涉及到的服务:
    tftp
    nfsd
    dhcpd
    相关文件:/etc/xinetd.d/tftp
                 /etc/hosts
                 /etc/dhcpd.conf
                 /etc/exports
                 /tftpboot/pxelinux.cfg/default(及相关client配置文件)
    如需要相关的支持软件及文章,可是加入QQ群:849476,E:cbuduk@china.com.cn
    欢迎各位LINUX用户加入讨论群。

    论坛徽章:
    1
    操作系统版块每日发帖之星
日期:2015-07-03 22:20:00
    3 [报告]
    发表于 2007-01-30 20:19 |只看该作者
    有些东西没看明白,再说细一些吧

    论坛徽章:
    0
    4 [报告]
    发表于 2007-01-30 20:47 |只看该作者
      说详细些  ...
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP