Linux无盘工作站架设实例

摘要 
架设Linux无盘工作站实例,服务器和客户端都使用Linux。主要涉及:DHCP TFTP SYSLINUX NFS(2003-03-12 08:52:24)

--------------------------------------------------------------------------------------

客户端是支持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";

subnet 10.0.0.0 netmask 255.0.0.0 { 
range 10.10.12.131 10.10.12.150;

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

host blade02 { 
hardware ethernet 00:e0:43:00:02:02; 
fixed-address 10.10.12.132; 
filename "/tftpboot/pxelinux.0"; 
}

host blade03 { 
hardware ethernet 00:e0:43:00:02:04; 
fixed-address 10.10.12.133; 
filename "/tftpboot/pxelinux.0"; 
}

host blade04 { 
hardware ethernet 00:e0:43:00:02:06; 
fixed-address 10.10.12.134; 
filename "/tftpboot/pxelinux.0"; 
}

host blade05 { 
hardware ethernet 00:e0:43:00:02:08; 
fixed-address 10.10.12.135; 
filename "/tftpboot/pxelinux.0"; 

}

说明:dhcp客户得到IP地址后用TFTP协议从服务器上下载启动映象文件。我用syslinux

工具包里边的pxelinux来作为远程启动的loder.

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地址的配置文件的文件名。如blade01的

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

default linux

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

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/blade01 blade01(rw,async,no_root_squash) 
/remote/blade02 blade02(rw,async,no_root_squash) 
/remote/blade03 blade03(rw,async,no_root_squash) 
/remote/blade04 blade04(rw,async,no_root_squash) 
/remote/blade05 blade05(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文件,以blade01为例,它的nfs root是/remote/blade01 
/remote/blade01/etc/fstab文件如下: 
# /etc/fstab: static file system information. 


10.10.11.120:/remote/blade01 / 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,

假设编译好的内核为vmlinuz,将它拷贝到/tftpboot/目录下。

参考文档:

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/developerWorks/cn/linux/l-tip-prompt/l-pex/index.shtml

(0)

相关推荐

  • Linux无盘工作站架设实例

    摘要 架设Linux无盘工作站实例,服务器和客户端都使用Linux.主要涉及:DHCP TFTP SYSLINUX NFS(2003-03-12 08:52:24) -------------------------------------------------------------------------------------- 客户端是支持PXE方式启动的刀片,用Linux作为服务器,服务器配置如下: 1) 安装DHCP服务器dhcpd 2) 配置/etc/dhcpd.conf文件,下

  • linux less命令实例详解

    less 文件名 查看文件 less 文件名 | grep -n 查找内容 根据内容过滤显示,并显示行号 less +行号g 文件名 查看文件,并定位到某行 d  向下翻页 u 向上翻页 g 跳到首行 G 跳到底部 ? 查找内容 向上查找 / 查找内容  向下查找 n 下一个 N 上一个 q 退出less命令 下面是具体栗子: 1.打开文件 less catalina.out 2.查看文件,并显示行号 less -N catalina.out 3.定位到某行(这里定位到第10行) less +1

  • LINUX下架设代理服务器的教程

    1. LINUX下第三方代理服务器软件的选择 可以选择的其实还是不少,比如Apache:具有强大的功能.高速度和高效率等特点,但在LINUX下作代理服务器的性能优势并不明显,不建议使用:推荐使用Squid ,有关此软件的相关报道也不少,它由一个主要的服务程序squid,一个DNS查询程序dnsserver和几个管理工具组成,其比较明显的特性就是可以减少服务器等待DNS查询的时间,"Linux+Squid"是最好的代理服务器组合! 2.安装Squid 其实如今的Linux中基本都有已编译

  • Linux无盘工作站的做法

    一.远程启动原理 客户端在启动前,既无操作系统,又无启动的软盘或者硬盘,它只有计算机的基本部件: CPU, 内存,主板等.但最重要的必须有网卡和启动的BootRom.客户机只能通过网络获得操作系统.Linux的无盘远程启动与Novell.WinNT下的无盘启动技术不一样,不是采用RPL( Remote Initial Program Loader),而是基于标准的BootP/DHCP和TFTP协议,并通过NFS文件系统建立文件系统.相对前两种,更具有其通用性和适应性.可以基于Linux系统远程启

  • C语言编写Linux守护进程实例

    守护进程(Daemon)是运行在后台的一种特殊进程.它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件.守护进程是一种很有用的进 程.Linux的大多数服务器就是用守护进程实现的.比如,Internet服务器inetd,Web服务器httpd等.同时,守护进程完成许多系统任 务.比如,作业规划进程crond,打印进程lpd等. 守护进程的编程本身并不复杂,复杂的是各种版本的Unix的实现机制不尽相同,造成不同Unix环境下守护进程的编程规则并不一致.这需要读者注意,照搬 某些书上的

  • linux文件管理命令实例分析【显示、查看、统计等】

    本文实例讲述了linux文件管理命令.分享给大家供大家参考,具体如下: 1.显示文件内容 cat  :  显示文件内容 tac  :  倒序显示内容 2.更改文件权限 chmod :更改文件权限 -R     递归改变 chown :更改文件拥有者 -R     递归改变 chgrp :更改文件所属组 -R     递归改变 > chmod 666 1.txt > chown user1 1.txt > chgrp user1 1.txt 3.链接文件 1) 保护源程序 2) 访问方便

  • linux文件管理命令实例分析【权限、创建、删除、复制、移动、搜索等】

    本文实例讲述了linux文件管理命令.分享给大家供大家参考,具体如下: 1.文件权限 读      r      4 写      w      2 运行    x      1 文件分为三种权限: 拥有者权限 组内用户权限 组外用户权限 2.查看目录下的文件 ls   [选项] [路径或文件名] -l   :查看详细信息 -a   :查看所有文件,包括隐藏文件 第一列:文件权限     -   (rw-) (---) (---)     第一字符表示文件类型(-表示普通文件,d表示文件夹)  

  • linux 命名管道实例详解

    linux进程间通信--命名管道 FIFO(命名管道)不同于匿名管道之处在于它提供⼀个路径名与之关联,以FIFO的⽂件形式存储于⽂件系统中.命名管道是⼀个设备⽂件,因此,即使进程与创建FIFO的进程不存在亲缘关系,只要可以访问该路径,就能够通过FIFO相互通信.值得注意的是,FIFO(first input first output)总是按照先进先出的原则⼯作,第⼀个被写⼊的数据将⾸先从管道中读出. 创建命名管道的系统函数有两个:mknod和mkfifo.两个函数均定义在头⽂件sys/stat.

  • linux 匿名管道实例详解

    linux中进程的一种通信方式--匿名管道 pipe函数建立管道 调用pipe函数时在内核中开辟一块缓冲区(称为管道)用于通信,它有一个读端一个写端,然后通过_pipe参数传出给用户程序两个文件描述符,_pipe[0]指向管道的读端,_pipe[1]指向管道的写端.所以管道在用户程序看起来就像一个打开的文件,通过read(_pipe[0]);或者write(_pipe[1]);向这个文件读写数据其实是在读写内核缓冲区.pipe函数调用成功返回0,调用失败返回-1. 1父进程调用pipe开辟管道,

  • 利用C#编写Linux守护进程实例代码

    前言 Linux守护进程是Linux的后台服务进程,相当于Windows服务,对于为Linux开发服务程序的朋友来说,Linux守护进程相关技术是必不可少的,因为这个技术不仅仅是为了开发守护进程,还可以拓展到多进程,父子进程文件描述符共享,父子进程通讯.控制等方面,是实现Linux大型服务的基础技术之一. 如果要在Red Hat Enterprise Linux上将.NET Core进程作为后台进程运行,则可以创建自定义systemd单元.今天我将为.NET Core编写两个自定义系统单元的例子

随机推荐