无盘工作站在windows 或linux怎么构建。。
一、系统需求
BXP30服务器端可以安装在Windows 2000及其以上的操作系统上,推荐采用512MB以上的内存、高速硬盘、SVGA显示器、100Mbps或1000Mbps网卡。如果将BXP安装在工作站版本的系统上,需要安装BXP内置的DHCP服务器,安装在服务器版本的系统上则没有此项要求。
BXP30客户端支持Windows XP,Windows 2000(Server或Professional)或Windows Server 2003,带有PXE引导芯片的100Mbps网卡。BXP客户端的虚拟网络磁盘空间不能大于8024MB(NTFS格式)或4095MB(FAT格式)。
本文以在Windows Server 2003服务器上实现Windows 2000 Server无盘工作站为例进行介绍。
二、BXP30服务端的安装
1在服务器上,安装Windows Server 2003,设置网卡地址为19216811,安装配置DHCP服务器,配置作用域为192168110到19216860200。
2从wwwvcicom下载BXP30软件包,按照默认值进行安装。在安装到“setup type”对话框时,选择“Full Server”;在“Select Components”对话框中,选中“Embedded Tools”;在“BXP Product Registration”对话框中,单击“Cancel”按钮,在“BXP License info”对话框中,单击“OK”按钮。
3在安装的过程中,会出现“硬件安装”对话框,并提示安装的软件没有经过Windows认证,在此情况下,请单击“仍然继续”进行安装。在随后的“找到新的硬件向导”对话框中,选择“自动安装软件”即可。
4安装完成后,打开“资源管理器”,右键点击“My Licenses”,从出现的菜单中选择“Import License”,将BXP30的授权文件导入计算机。
提示 在安装BXP30以前,如果你的服务器上有3Com的DABS软件或者3Com的VLD软件,请在卸载这些软件后重新启动计算机,方可安装BXP30。
三、BXP30服务端的配置
1配置启动类别
进入“管理工具”中的“服务”程序,将下面几个服务的启动类别设置为“自动”:3COM PXE、BXP Adaptive Boot Server、BXP IO Service、BXP Login Service、BXP Managed、Disk Server、BXP TFTP Service、BXP Write Cache I/O Server。
2配置BXP IO服务
在一个具有足够空间(至少2GB以上可用)的分区中创建一个文件夹,这个文件夹将用来保存无盘Windows 2000的镜像文件。然后点击“开始→程序→enturcom BXP”执行“BXP IO Service Preferences”程序,单击“Browse”按钮浏览选择刚才创建的目录,然后勾选“IP addersses for this”下面的网卡地址,确认“Port”值为6911(图1)。
图 1
3配置BXP登录服务
从“Venturcom BXP”中运行“BXP Login Service Preferences”,选中“Add new clients to data”并勾选“IP addersses for this”下面的网卡地址。
4配置DHCP服务
运行Intel PXE PDK程序(这一程序可以从Intel PXE PDK安装程序包中获取,是一个名为pxereg60,大小约为157KB的程序)。该程序只能运行在Windows 2000下,在Windows 2003下,如要运行此程序,需要将此程序设置为兼容Windows 2000方式运行。进入pxereg60exe程序的“属性”窗口,点击“兼容性”选项卡,勾选“用兼容模式运行这个程序”,并从下拉列表中选择“Windows 2000”即可(图2)。运行pxereg60exe,先单击“Add option 60”按钮,等光标正常后单击“Set 60 as PXEClient”按钮,然后单击“Exit”按钮退出。
图 2
以上几个步骤配置完成后,重新启动Windows Server 2003服务器。
四、BXP30服务端的管理
1配置Bootstrap
运行BXP Administrator,从“Tools”菜单中选择“Configure Bootstrap”,单击“Browse”按钮,选择“C:\Program Files\Venturcom\BXP\TFTPBoot”目录中的VLDRMI13BIN文件。接着勾选“Use BOOTP/DHCP Resolved”和“Use Database Values”。
2添加BXP30的IO服务器
在BXP Administrator程序中,右键点击“Clients”,从出现的菜单中选择“New Server”,在弹出的对话框中的“name”栏输入服务器的计算机名称,然后单击“Resolve”按钮,最后点击“OK”按钮。
3创建一个虚拟磁盘
右键点击刚才新添加的服务器,从出现的菜单中选择“New Disk”,在“Virtual disk size in MB”栏输入一个数值,这个数值即是新建立的虚拟磁盘的大小;在“Disk name”栏输入文件名称;在“Description”栏输入描述信息。
4创建第一个客户端
右键单击“Clients”,从出现的菜单中选择“New Client”。在“data”选项卡中的“name”栏输入一个名称如w1,在“MAC”栏输入第一台无盘工作站的MAC地址。然后进入“Disks”选项卡,单击“change”按钮,选择第3步创建的虚拟磁盘。然后,在“Boot order”中选择“Hard Disk First”。
提示 只有第一台工作站需要设置为硬盘启动。而其他工作站则需要设置为“Virtual Disk First”。
5添加其他无盘工作站
按照第4步,可以添加其他无盘工作站。在“Data”选项卡中,添加不同的名称和相应的MAC地址,并在“Disks”选项卡中,添加同一虚拟磁盘并设置“Boot Order” 为“Virtual Disk Firs”。
五、在客户机上安装Windows 2000 Server
1在第一台无盘工作站上,安装Windows 2000 Server、相应驱动、相应补丁程序以及相应软件,注意要把所有软件安装在C盘,然后安装网卡及PXE引导芯片,设置引导顺序为LAN最先引导,使用PXE芯片引导计算机。
2运行BXP30安装程序,在“Setup Type”中选择“Client”,安装完成之后,重新启动计算机。
3重新启动计算机并以系统管理员账号登录,系统中将会“多出”一块磁盘,这块磁盘就是BXP虚拟的磁盘,将这块新磁盘“格式化”。
4运行“Venturcom BXP”组中的Image Builder程序,单击“Browse”按钮,浏览选择BXP的虚拟磁盘,单击“Build”按钮,上传Windows 2000 Server。上传完成之后,关闭Windows 2000 Server。
5回到服务器端,进入BXP30的管理程序,配置第一台无盘工作站的客户机端的引导顺序为Virtual Disk First引导。
最后,启动拆掉硬盘、光驱的客户机端,即可在没有硬盘(即“无盘”)的状态下进入Windows 2000 Server了。
你可以参考一下……这个笔记做的还行!!
一编译内核
1 进入linux源代码目录:
#cd /usr/src/linux-2420
2 清理源代码树,检测内核包里面的文件是否正确:
#make mrproper
3 运行配置程序:
#make xconfig
说明:最关键要选择fs(ext3),initrd,cpu,网卡型号的支持,或直接将准备好的config文件拷贝到/usr/src/linux-2420/arch/i386目录下,改名为defconfig(注意先将原有的defconfig文件备份,切记)
4 开始编译,检查相关独立性:
#make dep
5 清除内存和编译过程中生成的o文件:
#make clean
6 生成bzImage内核文件,在/arch/i386/boot下:
#make bzImage
二Busybox文件系统的生成
1 Busybox简介
busybox是一个集成了一百多个最常用linux命令和工具的软件,他甚至还集成了一个http服务器和一个telnet服务器,而所有这一切功能却只有区区1M左右的大小我们平时用的那些linux命令就好比是分力式的电子元件,而busybox就好比是一个集成电路,把常用的工具和命令集成压缩在一个可执行文件里,功能基本不变,而大小却小很多倍,在嵌入式linux应用中,busybox有非常广的应用,另外,大多数linux发行版的安装程序中都有busybox的身影,安装linux的时候案ctrl+alt+F2就能得到一个控制台,而这个控制台中的所有命令都是指向busybox的链接
2 配置busybox
busybox的配置程序和linux内核菜单配置方式简直一模一样
解压: #tar xvfz /Nodiskboot/busybox-100targz
#cd /Nodiskboot/busybox-100
#make menuconfig
下面是需要编译进busybox的功能选项,其他的可以根据需要自选,但是同样不要太贪心
General Configuration应该选的选项
Show verbose applet usage messages
Runtime SUID/SGID configuration via /etc/busyboxconf
Build Options
Build BusyBox as a static binary (no shared libs)
这个选项是一定要选择的,这样才能把busybox编译成静态链接的可执行文件,运行时才独立于其他函数库否则必需要其他库文件才能运行,在单一个linux内核不能使他正常工作
Installation Options
Don't use /usr
这个选项也一定要选,否则make install 后busybox将安装在原系统的/usr下,这将覆盖掉系统原有的命令选择这个选项后,make install后会在busybox目录下生成一个叫_install的目录,里面有busybox和指向他的链接
其他选项都是一些linux基本命令选项,自己需要哪些命令就编译进去,一般用默认的就可以了
配置好后退出并保存
3 编译并安装busybox
#make
#make install
这样,在busybox目录下将生成一个_install的文件夹,里面会有四项bin,sbin和linuxrc,其中bin,sbin都是目录,busybox文件放在bin下面,然后其他的所有文件都是符号连接,连接到busybox上。
上述步骤生成了initrd简单的目录架构,我们还有手工添加若干。
4 制作根文件系统
一个根文件系统必须包含支持一个完整的Linux系统所需的最基本的全部文件:
最基本的文件结构
/dev, /proc, /bin, /etc, /lib, /usr, /tmp 等目录的最小集合
sh, ls, cp, mv等基本工具程序
rc, inittab, fstab等基本配置文件
/dev/hd, /dev/tty, /dev/fd0等基本设备
libc-xxxso等程序运行所需的各种动态库文件
1)创建目录rootfs
mkdir /Nodiskboot/rootfs
cd /Nodiskboot/rootfs
2)基本目录结构
#mkdir etc usr var tmp proc home root dev etc/initd mnt lib
#chmod 755 etc usr var tmp home root dev etc/initd mnt lib
#chmod 555 proc
介绍一下各种目录的作用:
/dev -- 设备文件,实现系统I/O 所需
/proc -- 使用proc文件系统所需
/etc -- 包含系统配置文件
/sbin -- 包含重要的系统程序
/bin -- 包含大部分系统程序
/lib -- 包含提供动态链接所需的共享库文件
/mnt -- 挂载其他设备:磁盘、光盘、usb设备等的挂载点
/usr -- 额外的程序、函数库文件以及配置文件
3)拷贝busybox
#cp -R /Nodiskboot/busybox-100/_install/ /Nodiskboot/rootfs/
4)建立dev设备文件名
#cd /Nodiskboot/rootfs/dev
#mknod -m 666 tty c 5 0
#mknod -m 666 console c 5 1
#mknod -m 666 tty0 c 4 0
#mknod -m 600 fd0 b 2 0
#mknod -m 600 ram0 b 1 0
#mknod -m 600 null c 1 3
mknod是在dev下成生mknod节点设备文件。加载磁盘的命令是:
#mknod -m 660 hda b 3 1
其中3是第一条主线上,1是主设备上第一个分区(0~63),如果是第二条线则是22,如果是从设备则是(64~127)
但是手工方法建立太麻烦了,通常直接从/dev下把需要的设备文件拷贝过来
这些设备文件是特殊文件,在拷贝时一定要加上-R参数才能拷贝
#cp -R /dev/console /
#cp -R /dev/null /
#cp -R /dev/zero /
5)建立etc目录下的配置文件
写入三个文件inittab,fstab,initd/rcsysinit,文件内容如下
inittab:
::sysinit:/etc/initd/rcS
::askfirst:/bin/sh
fstab:
proc /proc proc defaults 0 0
initd/rcS:
#!/bin/sh
mount –a
exec bin/dhcpcd
# chmod 755 rcsysinit
其中rcS中exec语句是启动dhcp客户端软件,启动自动配置IP功能。
6)在lib下面cp相应的库文件
用ldd命令查看文件运行所用到的库,由于未用到动态链接库,而是直接链接到linuxrc文件上,所以lib下面是空的
7)存储节点的初始化是另一个需要注意的问题。在前面曾提到,内核引导的最后一项工作是创建并执行init进程,随后init进程将创建其他进程,运行一些系统所需的重要程序。由于在通常的Linux系统中的init程序的使用和配置与System V系统中的init程序类似,而在嵌入式系统等特殊应用场合并不需要实现多个用户(multiuser)的使用,也不需要用户登陆终端,所以System V系统中的init程序对我们的要求而言功能过于复杂。在此,我们采用使用比较广泛的工具busybox中的init程序。busybox包含常用的基本工具程序如:sh,ls,mount,init,cp等,而大小只有几百K(视所选择工具程序的数目来决定大小)。实际上,编译busybox后只有一个busybox程序,其余的所有工具程序都是busybox程序的符号链接,busybox通过辨别不同的程序名称,跳转执行不同的功能。
busybox中的init程序可以完成初始化的基本功能而且去掉了System V系统init程序的多余功能,init程序执行的顺序如下:
<1> 创建init的信号处理
<2> 初始化控制台
<3> 分析inittab文件,/etc/inittab
<4> 执行系统初始化脚本,/etc/initd/rcS
<5> 执行所有inittab中类型为wait的程序
<6> 执行所有inittab中类型为once的程序
完成以上步骤后,init循环执行所有inittab中类型为respawn和askfirst的程序。文件inittab中的每一行配置遵照格式如下:
id:runlevel:action:process
虽然这个格式与传统的System V init 类似,但是id 域的含义不同。id 通常是用来指定控制启动进程运行的tty。如果id域为空则代表这个进程的运行不需要与shell交互。在busybox中,runlevel域 可以完全忽略。process 指明执行程序以及所带参数选项。 action 域可以选择一下八个类型:
sysinit提供给init初始化脚本所在的路径;
respawn当进程终止后将其重新启动;
askfirst与respawn类似,不同之处是在终端提示“Please press Enter to activate this console”;
wait代表init等待这个程序执行完后才继续执行;
once表示执行一次而且不需要等待完成;
ctrlaltdel表示当按下Ctrl-Alt-Delete时执行;
shutdown表示程序在关机时执行;
restart表示程序在重启时执行,通常是init本身。
在存储节点上运行的程序是:挂载硬盘(mount),扫描硬盘生成多媒体文件报告的程序,流媒体服务器(vls),与管理节点通信程序(agent),监视网络带宽使用状况的程序()。其中,mount的action域应为wait,因为首先要将存有多媒体文件的硬盘挂载才能对其执行扫描;vls的action域应为respawn,vls运行出现严重错误后,重新启动vls,并向管理节点报告,写入log。
三 制作ramdisk映象文件
根文件系统所有东西都放在/Nodiskboot/rootfs下,我们将利用ramdisk把这些内容做成ramdisk映象文件并压缩它
# dd if=/dev/zero of=/dev/ram0
dd: 正在写入 ‘/dev/ram1’: 设备上没有空间
读入了 8193+0 个块
输出了 8192+0 个块
zero是一个特殊的设备,表示全部为0的字符块上面这条命令的意思是把系统的第一个ramdisk用全部为0的数据填充,因为 ramdisk默认大小为4M,因此当读满8192个块(每块512字节)后,显示'设备上没空间'这很正常,/dev/ram0已经被填充满了
如果指定块的大小:
# dd if=/dev/zero of=/dev/ram0 bs=1M count=4
读入了 4+0 个块
输出了 4+0 个块
不会有错误提示,这里演示了dd的一般用法,接下来还要频繁用到dd命令
在/dev下有很多ramdisk设备ram0,ram1,ram2,ram3 一般用第一个就可以了
填充后,ram1就有可空间,可以在这个空间上创见一个文件系统:
# mkfsext2 -m0 /dev/ram0
将ram0挂装到文件系统中:
先建立一个挂装点:
#mkdir /mnt/ram0
挂上ram0:
#mount /dev/ram0 /mnt/ram0
将先前做好的Nodiskboot根文件系统拷贝到ram0上
#cp -R /Nodiskboot/rootfs/ /mnt/ram0
做完以上几步,你应就白了ramdisk设备的含义,他是和hda1,hdb1,一样的块设备,用mount挂到文件系统下后就可以访问,往里放东西,但是所有的东西在内存上关机将丢失所有东西
拷贝好Nodiskboot根文件系统后卸载ram0:
#umount /dev/ram0
如果出现"device is busy",说明有别的进程在使用/dev/ram0上的文件,解决办法如下:
#fuser -v /mnt/ram0
#umount /dev/ram0
这时,虽然不能通过/mnt/ram这个挂装点访问ram0中的内容了,但是他却切切实实得在内存中存在
再用dd把这个ram1以映象方式取出来:
# dd if=/dev/ram0 of=/Nodiskboot/ramdiskimg
验证一下取出来的内容:
# file ramdiskimg
ramdiskimg: Linux rev 10 ext2 filesystem data
他是一个ext2 文件系统,类似一个ISO光盘映象文件
因次,我们可以用loop设备来把他重新挂装到文件系统里:
# mount -o loop ramdiskimg /mnt/ram0/
为了方便,我仍旧把他挂在/mnt/ram0下,因此,在先前一定要把/dev/ram0 umount掉
查看/mnt/ram0下的内容,他应该和/Nodiskboot/rootfs下的一模一样,否则就是出错了:
# ls /mnt/ram0
etc usr var tmp proc home root dev etc/initd mnt lib
这样,我们就得到了一个ramdisk根文件系统映象ramdiskimg
把他umount掉:
#umount /mnt/ram0
压缩ramdiskimg印象文件:
# gzip -v9 ramdiskimg
查看压缩后的大小:
# ls -lh ramdiskimggz
四 压缩内核与根文件系统
当内核与根文件系统准备好之后,就要将这两者压缩在一起,使用的工具是mknbi,它是DHCP启动映象制作工具,在linux下与etherboot配合使用mknbi压缩的文件下载到存储节点后,由etherboot进行分析,对内核与根文件系统分离解压后
1:将bzImage拷贝到mknbi下,将initrd也拷贝到mknbi下
2:mkelf-linux --output=/tftpboot/booteb --param="rw root=/dev/ram initrd=0x075F0000" bzImage initrd
其中param参数的设置, initrd代表内核映象文件bzimage将被解压缩到的内存的位置。
五.最后一步――执行
将mknbi-linux生成的压缩文件booteb放置在管理节点的/tftpboot路径下,并修改/etc/dhcpdconf中的配置,使booteb作为每一个存储节点通过TFTP需要从管理节点下载的文件。然后,管理节点启动DHCP守护进程(# service dhcpd start),运行TFTP服务(# chkconfig tftp on)。
存储节点在上电后就可以分配得到IP地址,下载操作系统内核和根文件系统,运行各种配置好了的程序,可以在存储节点上ifconfig,可以看到节点上的网卡开始工作,现在可以完成busybox里面集成的简单命令,如ping之类。
win系统用任务管理器和性能计数器查看
linux有几个命令
w
top
uptime
都显示load
average
ps查看占用内存情况。
0条评论