FreeBSD下建立无盘X服务器指引

FreeBSD下建立无盘X服务器指引
*译文 from http://www.freebsd.org/doc/en_US.ISO_8859-1/articles/diskless-x/index.html

*原作 Jerry Kendall,jerry@kcis.com

*译者 paulliang,iesun@21cn.com 水平有限,敬请指正


在一些FreeBSD-hacker列表上朋友的帮助下,我创建了一个无盘X终端。X终端的建立首先

要建立一个挂上NFS的最小的有效的无盘系统。这些相同的步骤被用于建立两个独立的无盘系

统。首先是http://altair.kcis.com,一个运行在一台旧的386DX-40上无盘X终端,它有个340M的硬盘,可

我并不想改换,它经由以太网从antares.kcis.com引导。第二个系统是一台486DX2-66机。我装设了一个没有本

地硬盘的无盘FreeBSD(完全的)。服务器是运行SunOS 4.1.3的一台Sun 670MP机。对于两者需有相同的设置。我

确信会存在需要加入到此的一些东西,欢迎任何批评。

1、创建boot floppy (On the diskless system)

由于网络引导载入器不能工作在一些TSR系统如MS-DOS用,所以最好是创建一个专用boot floppy,或者如果可

能,你创建一个MS-DOS菜单,在系统启动时它会询问什么样的配置载入。(config.sys autoexec.bat文件).

以下是我的使用方法,它工作的很好。My MS-DOS菜单如下。

Example 1. config.sys

[menu]

menuitem=normal, normal
menuitem=unix, unix
[normal]
....
normal config.sys stuff
...
[unix]

Example 2. autoexec.bat

@ECHO OFF
goto %config%

:normal
...
normal autoexec.bat stuff
...
goto end

:unix
cd \netboot
nb8390.com

:end

2、获取网络引导程序(On Server)

编译位于/usr/src/sys/i386/boot/netboot的程序"net-boot"。你可阅读Makefile的顶部注释,如有需要改

变,请做个备份。当编译完成后,就会有两个MS-DOS可执行文件:nb8390.com和nb3c509.com,其中一个是运行

无盘服务器所需的,它将可从引导服务器载入内核,基于这点,可将两个程序都拷入boot floppy。

3、确定那一个程序运行(On the diskless system)

如果你知道以太网适配器晶片组,那是很容易的。如果是NS8390晶片组,或是基于NS8390晶片组的,选用

nb8390.com;如果是基于3com 509晶片组的,选用nb3c509.com程序。如果你不知道是什么晶片组,请先试用其

中一个,当出现“NO adapter found”,再试用另一个。

4、从网络上引导

也可在任意config.sys/autoexec.bat文件之外引导。我的以太网适配器是WD8013下16位模式,所以我选择运行

nb8390.com

C:>cd \netboot

C:>nb8390

Boot from Network (Y/N) ? Y

BOOTP/TFTP/NFS bootstrap loader ESC for menu

Searching for adapter… WD8013EBT base 0x0300, memory 0x000D8000, addr

00:40:01:43:26:66 Searching for server…

无盘系统尝试寻找一个引导服务器(boot server)。注意上面地址那一行,稍后将会用到

这些数字。如果想自动运行,那么请修改config.sys和autoexec.bat文

件和重启无盘系统。类似地,对于3com 509晶片组,可运行nb3c509.com。如果在搜索适配器是出"NO adapter found"信

息,请查实Makefile的确实设置。

5、允许系统从网络上引导(On the Server)

确信文件 /etc/inetd.conf开启了tftp和bootps服务:

tftp dgram udp wait nobody /usr/libexec/tftpd tftpd /tftpboot

Additions by who ever you are

bootps dgram udp wait root /usr/libexec/bootpd bootpd /etc/bootptab

如果你改变了/etc/inetd.conf,请发送HUP信号给inetd。

还记得在无盘系统上引导载入器有关地址行的输出信息吗?猜对了,现在就要用它了。

增加一个条目到/etc/bootptab(可能要创建这个文件)。它显示象以下的内容:

altair:\

    :ht=ether:\ 

    :ha=004001432666:\ 

    :sm=255.255.255.0:\ 

    :hn:\ 

    :ds=199.246.76.1:\ 

    :ip=199.246.76.2:\ 

    :gw=199.246.76.1:\ 

    :vm=rfc1048:

解释如下:

altair 无盘系统名(没有域或)

ht=ether 以太网的硬件类型

ha=004001432666 硬件地址(上述注意的)

sm=255.255.255.0 子掩码

hn 告诉服务器发送客户机名给客户机

ds=199.246.76.1 告诉客户机那一台是域名服务器

ip=199.246.76.2 告诉客户机它是IP地址是这个值

gw=199.246.76.1 告诉客户机,缺省网关是这个值

vm=… 离开

注意:IP地址设置的要正确。以上是我一些设置,你应根据你的情况作相应的设置。

在服务器上创建目录"/tftpboot",它包含为了无盘系统的服务器提供服务的配置文件,这些文件被命名为

"cfg."的形式,就是无盘系统的IP地址。atlair的配置文件是/tftpboot/cfg.199.246.76.2,它的内

容是:

rootfs 199.246.76.1:/DiskLess/rootfs/altair

hostname altair.kcis.com

行hostname altair.kcis.com仅仅是告诉无盘系统一个完整的域名是什么。

行rootfs 199.246.76.1:/DiskLess/rootfs/altair告诉无盘系统NFS挂载表里根文件系统的位置。

注意:NFS挂载表根文件系统挂载后是只读的。

如果有需要,无盘系统可重挂成可读可写的。

我使用386DX-40机作专门的X终端。

"altair"的层次是:

/
/bin
/etc
/tmp
/sbin
/dev
/dev/fd
/usr
/var
/var/run

实际的文件列表是:

-r-xr-xr-x  1 root  wheel  779984 Dec 11 23:44 ./kernel
-r-xr-xr-x  1 root    bin  299008 Dec 12 00:22 ./bin/sh
-rw-r--r--  1 root  wheel     499 Dec 15 15:54 ./etc/rc
-rw-r--r--  1 root  wheel    1411 Dec 11 23:19 ./etc/ttys
-rw-r--r--  1 root  wheel     157 Dec 15 15:42 ./etc/hosts
-rw-r--r--  1 root    bin    1569 Dec 15 15:26 ./etc/XF86Config.altair
-r-x------  1 bin     bin  151552 Jun 10  1995 ./sbin/init
-r-xr-xr-x  1 bin     bin  176128 Jun 10  1995 ./sbin/ifconfig
-r-xr-xr-x  1 bin     bin  110592 Jun 10  1995 ./sbin/mount_nfs
-r-xr-xr-x  1 bin     bin  135168 Jun 10  1995 ./sbin/reboot
-r-xr-xr-x  1 root    bin   73728 Dec 13 22:38 ./sbin/mount
-r-xr-xr-x  1 root  wheel    1992 Jun 10  1995 ./dev/MAKEDEV.local
-r-xr-xr-x  1 root  wheel   24419 Jun 10  1995 ./dev/MAKEDEV

不要忘记运行设备目录(dev directory)里的MAKEDEV。

altair的/etc/rc文件有:

#!/bin/sh

PATH=/bin:/

export PATH

configure the localhost

/sbin/ifconfig lo0 127.0.0.1

configure the ethernet card

/sbin/ifconfig ed0 199.246.76.2 netmask 0xffffff00

mount the root filesystem via NFS

/sbin/mount antares:/DiskLess/rootfs/altair /

mount the /usr filesystem via NFS

/sbin/mount antares:/DiskLess/usr /usr

/usr/X11R6/bin/XF86_SVGA -query antares -xf86config /etc/XF86Config.altair \

/dev/null 2>&1

Reboot after X exits

/sbin/reboot

We blew up…

exit 1

欢迎指正与批评。


alanZu
婚男
qq:796323

我想用LINUX来做多域名的WEB服务器,但总不成功,请问有什么好资料没?

用虚拟主机就行了,从网上搜一下,就能找好多的资料呀!