bob79 发表于 2005-4-17 10:00:58

急救:无盘Linux做到了“booting the kern

我服务器用的Redhat 9.0(kernel-2.4.20-8),客户端启动用的镜像文件是用kernel-2.4.20编译的,支持NFS,BOOTP,TFTP的,在客户端用软盘代替网卡的EPROM启动。
现在是启动到如下:
Load ...........mknbixxxxxx..........Uncompressing linux...........OK,booting the kernel...............
然后就不动啦,可能是什么故障啊?是我的镜像文件没编译好,还是服务器上客户端启动的根目录没有配置好啊?

我配置的步骤如下,请大家指正:
一、由于自己的网卡有BUG,现在是用软盘代替网卡的EPROM

二、环境:
Linux 服务器: server(IP:192.168.0.100) (我用的Redhat9.0 kernel-2.4.20-8)
第一个客户机:pc1(IP:192.168.0.1)(用 kernel-2.4.20)
所有远程启动客户目录:/tftpboot
第一个远程启动客户机目录:/tftpboot/pc1
三、重新编译Linux内核(2.4.20版)。
make menuconfig
/*NFS-Root 支持,BootP(DHCP) ,TFTP的支持包括在内。*/
make clean
make dep
make bzImage
make modules
make modules_install

镜像文件在/usr/src/linux/arch/i386/boot 目录中, mknbi-linux(mknbi-linux --output=/tftpboot/vmlinuz.nb -ip=rom bzImage )处理,将vmlinuz.nb 放在/tftpboot下。mknbi-linux命令工具通过安装mknbi-1.4.0-0.fdr.3.rh90.i386.rpm后所得,然后执行以下命令:mknod /dev/nfsroot b 0 255

四、修改服务器相关配置
1、修改/etc/hosts
增加如下几行
192.168.0.100 server
192.168.0.1 pc1
192.168.0.2 pc2
2、启动tftp服务
通过安装tftp-server-xxx.rpm来启动,然后修改其配置文件/etc/xinetd.d/tftp,内容如下:
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}

3、启动bootp服务
执行bootpd -s
4、建立文件:/etc/bootptab
格式如下:
global.prof:\
:sm=255.255.255.0:\
:ds=192.168.0.8:\
:gw=192.168.0.254:\
:ht=ethernet:\
:bf=vmlinuz.nb:

pc1:hd=/export/root/machine3:tc=global.prof:ha=0050fc0a0d87:ip=192.168.0.1:

5 、确认/etc/services文件中有如下内容:
bootps          67/tcp                        # BOOTP server
bootps          67/udp
bootpc          68/tcp                        # BOOTP client
bootpc          68/udp
tftp            69/tcp
tftp            69/udp

6、修改配置文件/etc/exports
/tftpboot/pc1 pc1(rw, no_root_squash)
/usr *(ro, no_root_squash)
/lib *(ro, no_root_squash)
/home *(ro, no_root_squash)
/root *(ro, no_root_squash)
/bin *(ro, no_root_squash)
/sbin *(ro, no_root_squash)

7、 配置远程启动客户机目录
第一个远程启动客户机目录:/tftpboot/pc1   其下包括bin,dev,etc,home,lib,mnt,proc,root,sbin,tmp,usr,var目录,我是把bin,dev,etc,lib,sbin,usr,var直接完全复制过来,home,mnt,proc,root,tmp是新建的空目录;然后改变tmp目录的权限:chmod 1777 tmp

8、 修改启动客户机目录下的相关配置:
8.1修改/tftpboot/pc1/etc/rc.d/rc.sysinit:寻找“mount –a –t nonfs,smbfs…"改成“mount.–a –t nosmbfs…"
8.2修改/tftpboot/pc1/etc/fstab:其内容如下:
server:/tftpboot/pc1/   nfsdefault 0 0
server:/usr    /usr nfs default   00
server:/lib/libnfs default    00
server:/home/homenfsdefault    00
server:/root   /rootnfsdefault    00
server:/bin/binnfsdefault   00
server:/sbin/sbinnfsdefault   00
proc:/proc/procdefaults   00
8.3修改/tftpboot/pc1etc/sysconfig/network,/tftpboot/pc1etc/sysconfig/network-scripts/ifcfg-eth0 这些文件由于是copy过来的,有些配置项的内容是服务器的,将其改为客户端的相关配置参数

kinyoo 发表于 2005-4-18 16:01:06

有dhcp么?

或者用k12ltsp,比较容易
页: [1]
查看完整版本: 急救:无盘Linux做到了“booting the kern