在机房内通过网络安装方法和Ghost安装Solaris的介绍

10:47下午 四月 28, 2008 in category Solaris by dingyilong

在机房内通过网络安装方法和Ghost安装Solaris的介绍

随着Solaris的安装越来越简单,在单机上安装Solaris只需要有一个DVD光驱,点一点鼠标就可以完成。但是对于机房动辄几十台上百台的机器来说,装机是一件非常痛苦的事情。本文介绍网络安装Solaris的方法和通过Ghost安装Solaris,可以提高装机的效率。

网络PXE安装Solaris

     网络安装Solaris在网站上和电子书都有非常详细的叙述,详细内容可以查阅:
http://docs.sun.com/app/docs/doc/819-0325/ejurp?l=zh&a=view 

下面以我在机房装机的过程,简单的把重要的步骤列出来,仅供参考:

我所安装机房的机器配置是x86机器,P4 2.8G1G内存,百兆的以太网,欲安装B80。网络安装最重要的就是配置服务器以及网络环境,按照手册里面所说,名称服务器,安装服务器,引导服务器都应该是不同的节点,但由于资源有限,我就将这几个服务器在同一个节点上实现。

首先是要将每台机子连到同一个局域网内,然后可以选择局域网内任何一台机子作为服务器。注意:建议选一台有高速IO和高速以太网出口的机子作为局域网内的服务器,否则网络会成为瓶颈。而且还要保证机房的每一台机器都可以通过网络引导,即支持PXE。选择好服务器,然后安装上DVD光驱,把Solaris B80DVD盘放入。在Solaris中识别到即可。

创建安装文件镜像目录
# mkdir -p install_dir_path

install_dir_path表示要将光盘上的内容拷到硬盘上的目标目录,至少要有4.3G的剩余空间。

找到到光盘所在的目录,进入到 /Solaris_11/Tools/ 目录。运行下面的命令将驱动器中的 DVD 映像复制到安装服务器的硬盘上。

# ./setup_install_server install_dir_path

启动nfs

如果nfs没有启动,需要按照以下步骤启动nfs

将下面一句添加到 /etc/dfs/dfstab 文件,使安装服务器可用于引导服务器。

share -F nfs -o ro,anon=0 -d "install server directory" install_dir_path

使用smf启动nfs服务并打开共享:

# svcadm enable svc:/network/nfs/server

# shareall

以上的步骤是非常简单的,而且不会出什么差错。

下面的步骤很关键,就是添加客户端和对DHCP的设置:

添加客户端

# ./add_install_client -d -s install_server_ip: install_dir_path SUNW.i86pc i86pc

以上命令就是表示将添加子网内的客户端。

对于以上参数的解释如下:

-d指定客户机使用 DHCP 来获取网络安装参数。

-s install_server:install_dir_path

指定安装服务器的名称和路径。

install_server 是安装服务器的主机名。nstall_dir_path Solaris 10 DVD 映像的绝对路径。

client_name

是要从网络安装的系统的名称。就是命令行中的SUNW.i86pc

platform_group

是要安装的系统的平台组。就是命令中的i86pc

配置DHCP

要想让上一步的命令生效,需要对DHCP服务器进行配置。首先将局域网内的其他DHCP服务器关闭,在本机启动DHCP管理器:

/usr/sadm/admin/bin/dhcpmgr

按照向导一步一步先将DHCP服务器创建完成,然后看看局域网内的机器能不能分配到ip地址(这一步可以在其他操作系统中进行)。如果DHCP没有问题则需要配置DHCP服务器,供应商选项SinstNM, SinstIP4, SinstPTH, SrootNM, SrootIP4, SrootPTH, SbootURI是一定要配置的。

打开DHCP管理器的选项卡,然后逐一创建选项,具体的数值请参考手册中的介绍,然后选择供应商,类型选择SUNW.i86pc

配置好选项后需要创建一个SUNW.i86pc的宏(macro)。创建好宏之后,填入以下参数:

  Install server      (SinstNM)  : install_server_ip

  Install server IP   (SinstIP4) : install_server_ip

  Install server path (SinstPTH) : install_dir_path

  Root server name    (SrootNM)  : Solaris

  Root server IP      (SrootIP4) : install_server_ip

  Root server path    (SrootPTH) : install_dir_path/Solaris_10.1/Tools/Boot

  Boot file           (BootFile) : nbp.SUNW.i86pc

在上一步添加客户端的过程中,运行完命令行后会有一段类似的文字:

If not already configured, enable PXE boot by creating

a macro called PXEClient:Arch:00000:UNDI:002001

which contains the following values:

  Boot server IP      (BootSrvA) : 192.168.1.200

This macro will be explicitly requested by the PXE boot.

所以我们还需要创建一个PXEClient的宏。宏的名称就是这段文字中的PXEClient:Arch:00000:UNDI:002001,具体请参考各自服务器的输出。宏的内容与SUNW.i86pc的内容一样。

这样我们主要的工作就已经做完了。这时候选择一台局域网内的机器,重启然后选择网络启动,可以看到只要能够分配到ip并且读取到boot file那么就可以顺利进行安装了。安装的过程与光盘安装有少少不同,不过全部都是基于GUI界面安装的,非常方便。

可以参考另外一个非常完整的手册,不过是英文的:

http://tech.ddvip.com/2007-04/117595303122483.html
 

Ghost安装Solaris

对于机房来说,Ghost是最常使用的软件。通过尝试,可以使用Ghost来批量安装Solaris。主要原理就是利用机房的机器配置完全一样的特点,我们对每一台机器都采用了相同的分区结构,这样在一台机子上面安装好之后,将整个Solaris所在硬盘分区进行克隆。然后在其他的机子上进行恢复。Ghost可以将分区直接写为UFS,标记为BF。我们所需要做的工作就是安装Grub

随便找一张Solaris安装盘,看到启动后的Grub菜单按c,进入grub>

找到硬盘上已安装的Solaris系统的位置

grub>find  /platform/i86pc/multiboot

(hd0,2,a) ----上条语句的执行结果,显示Solaris系统启动分区。

我们也可以查找另一个文件:find /boot/grub/menu.lst

运行以下命令即可手动启动Solaris

grub>root (hd0,2,a)

Filesystem type is ufs, partition type 0x000000bf

grub>kernel$ /platform/i86pc/kernel/unix

grub>module$ /platform/i86pc/boot_archive

grub>boot

进入Solaris后,使用root身份���装grub,最后重新启动系统

#cd /usr/sbin

#installgrub -m /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c0d0s0 (重新安装grub

输出:Updating master boot sector destorys existing boot managers (if any) Continue (y/n)? y

stage1 written to partition 1 sector 0 (abs 31455270)

stage2 written to partition 1, 233 sectors starting at 50 (abs 31455320)

stage1 written to master boot sector

重启之后Grub就应该可以使用了。

但是在我所安装的机房出现一个特别有意思的情况,就是无论用什么方式安装完Solaris之后都无法出现Grub菜单,启动系统后只能看到黑屏的左上角有大写的GRUB,然后就是一个闪闪的光标。这样的问题我遇到过几次,通过总结可能是因为硬盘分区表的问题,也就是说Grub在安装的时候并没有写入到MBR里面去。通过摸索,运行以下几条命令即可修复:

grub>root (hd0,2,a)

grub>setup (hd0)

grub>install /boot/grub/stage1 (hd0) /boot/grub/stage2 /boot/grub/menu.lst

grub>setup (hd0,2,a)

在Solaris下使笔记本连接到投影仪的解决办法

08:08下午 十二月 28, 2007 in category Solaris by dingyilong

想必所有用Solaris做presentation的讲师们都有这个问题,新买的笔记本无法连接到投影。我前一阶段置配了一台Lenovo3000 Y310 笔记本,不过发现除了进入windows用热键切换以外,其他方式根本连不上投影仪,连bios都没有显示。考虑到很多校园大使遇到同样的问题,决定弄个究竟。

Y310的显卡配置为8400M GS,是非常常见的一款Nvidia版移动显卡,目前OpenSolaris自带Nvidia的显卡驱动,B80上面装的驱动版本是100.14.19。通过配置Nvidia的配置文件就可以对投影和其他外接设备进行设置。

首先说明一些重要文件:

/var/log/Xorg.0.log    启动过程中对X配置的log文件
/etc/X11/xorg.conf     对X进行配置的配置文件

以连接投影为例:

在启动电脑之前就将投影连接线连接到笔记本的输出口上,这样进入Solaris之前就可以检测的到外接显示设备的类型和型号。因为我们都是采用15针脚的输出接口,所以显卡识别出来都是认为接上CRT。

下面修改配置文件xorg.conf

在Screen Section里面,加入如下的option:

Option "UseDisplayDevice" "CRT"

这是告诉显卡,采用CRT作为显示设备。

然后保存重启,在进入Solaris图形化界面之前,应该投影仪就可以看到图像了。不过自己笔记本的屏幕上就没有图像了,因为已经输出到CRT去了。

通过修改xorg还可以实现两个屏幕显示同一个桌面,也可以实现两个屏幕显示分别的桌面。

如果可以进入到Solaris桌面之后,可以通过运行nvidia-setting来实现用gui来配置。

Sun SPOT FAQ

12:07上午 十二月 07, 2007 in category SunSPOT by dingyilong

本文翻译自SunSPOT官网www.sunspotworld.com,SunSPOT world有很多关于SunSPOT的介绍以及讨论,欢迎访问。本人水平有限,仅供参考。

什么是SPOT项目?
SPOT项目是由Sun的研究机构Sun Lab发起的。目前是在一个由研究人员,教育人员,学生和兴趣者组成的社区在贡献并推动它的发展。开发出来的这个小的,有无线连接,电池供电的可操作设备代表了我们想要在未来的2~5年中蓬勃发展的技术。现在,面对这样的挑战我们为这些设备制作出了一个全面基于Java的软件平台,同时也通过使用它及其相关附属硬件的功能实现了一些有趣的应用。

SPOT项目的目标是什么?
有以下一些工作的主要目标:
推广Java的使用:
    Sun SPOT将会给Java程序员一个新的方式去进行他们的工作。
    让更多的程序员接触Java -- Sun SPOT 是一个可以体会开发乐趣的耀眼工具。

加速“互联所有事物”的进程:
    互联网覆盖到了无数台电脑和手机,接下来的将更为广阔。通过打造一个灵活的实验平台,我们希望能够激发起人们对于创造未来的渴望。

什么是SunSPOT设备?
SunSPOT是一个小的,靠电池供电的,有无线连接的实验平台。设计的目的就是为了可以更方便的编程和使用。使Java程序员不再仅仅是依靠鼠标,键盘和屏幕进行编程,而是更有创意的用Java写出更多有趣的应用。

SunSPOT的技术点有哪些?
主板:

  • 180MHz  32bit  ARM920T core -- 512K RAM/4M Flash
  • 2.4 GHz IEEE 802.15.4 内置射频天线
  • USB接口
  • 3.6V 可充电750mAh 锂电池
  • 36µA 深睡眠模式
感应板:
  • 2G/6G 3轴加速度感应器
  • 温度感应器
  • 光感应器
  • 8个3色LED灯
  • 6个模拟输入
  • 2个按钮
  • 5个普通输入输出针脚和4个高电流输出针脚

Squawk虚拟机:

  • 完全实现J2ME CLDC 1.1 的包含操作系统功能的Java虚拟机
  • 虚拟机脱离闪存直接运行
  • 用Java写的设备驱动
  • 自动电池管理
开发工具:
  • 使用标准IDE,例如Netbeans,Eclipse 来开发Java代码
  • 与J2SE应用整合
  • SunSPOT通过USB与电脑相连作为一个基站(Base-Station)

SunSPOT有什么特别之处?
这个系统是基于Java。
    这使得编程和与网络应用的结合更加容易。
    开发者可以使用标准Java开发工具进行开发,例如Netbeans。
    Java是运行在“金属上”的。它提供了很多以前由操作系统提供的服务。

隔离环境
    多个应用可以同时运行却不需要启动多个虚拟机和更多的内存。
    这种隔离的方式在SunSPOT上以对象的形式实现,开发者可以启动、停止甚至将正在运行的应用从一个设备迁移到另一个上面。

电池管理   
    对于移动设备来讲电能是稀缺的。
    它有非常低的电能消耗(36µA)模式,深度睡眠模式。

最终,我们希望可以使它像Java通过垃圾回收方式管理内存一样,使开发者更关注在应用程序逻辑层面而不是去追踪内存泄漏。

这个设备是一个非常强大的小设备
    它有完整的32位处理芯片和许多容易访问的实验用输入输出接口

SPOT项目主要针对哪些人群?
我们有三个主要的目标人群:

教育界 -- 在校园里和高校内的课堂上的使用,从嵌入式系统课程到机器人相关课程再到工业设计课程。

研发 --  从快速建立无线传感器网络模型的实验研究到网络互联和手势接口研究的实验。

兴趣 -- 从机器人到电子器乐再到火箭模型等等领域的爱好者。

其他 -- 使用SunSPOT用于商业用途

Sun SPOT典型的应用有哪些?

应用的局限性是由想象力决定的。下面是一些例子:

环境监测 --  确保葡萄园内的葡萄在最适当的时候采摘,了解野生植物的习性等等

结构检测 -- 监测桥梁和建筑的一切,从智能HVAC控制到分析桥梁受力。

医学监测 -- 监测病人生命信号,吞咽反射,急救室内的治疗类选法。

居家监测 -- 安全系统,居家药品监测等等

货运追踪 -- 超越RFID,传感器可以智能来分析物流走向

机器人 --  建造一群可以互相协作的机器人,通过无线射频进行通信

 基于手势的接口 -- 通过活动自己的手来控制其他系统,甚至跳舞。

传感器和RFID有什么区别?

RFID 大多数只是在较近的距离内汇报一个ID。
传感器有内嵌处理芯片和电源。它们可以进行前摄反应。它们可以汇报历史数据和当前状态。例如,一个人体器官通过运输的途径从一个国家送往另一个国家。如果这个器官被RFID所标示,那么你可以知道这个盒子有没有送出,有没有被接收。如果通过传感器,你可以知道温度是不是在合理范围之内,是不是这个盒子有被摔过?是不是被篡改和打开过?所有这些事情在你接收器官之前都是非常重要需要了解的。

我可以制作我自己的硬件连接到SunSPOT上面么?

当然!我们将实现所有必需的接口和文档来实现制作你自己的硬件。这里有两个方法:
1、制作一个适合SunSPOT的小型的板。如果你愿意将板嵌入到我们的塑料壳子之内的话,我们会将框架信息公布。
2、 将SunSPOT连接到你的大电路板上。这个开发工具包含特殊的塑料使得设备可以集成到大的电路板上面。

原文地址:https://spots.dev.java.net/FAQ.html

Windows Hook和Dtrace的区别

12:26下午 十一月 24, 2007 in category Solaris by dingyilong

上次在南京大学做讲座的时候被一个同学问了这么一个问题:Windows Hook和Dtrace有什么区别?起先我并不了解Hook,查阅了一些资料之后,总结如下:

1、在性能上:
Hook会严重影响系统性能,然而Dtrace基本上不会对系统性能有任何影响。

2、安全性:
Hook过多的干预到了系统内部,它可以对钩到的参数和消息进行监视、修改和控制,这样就造成了对系统安全的严重威胁。目前很多木马程序和病毒都是采用钩子来对系统进行攻击的。
Dtrace只是在系统内核中植入探针,通过激活探针来对系统状态进行查看,在Kernel和应用之间起到一个观察作用。它并没有权限去修改任何东西,换句话说,Dtrace的探针只是像一个摄像头一样只负责监控。

3、应用范围:
Hook目前只是在Windows中提供,而且仅可以在Windows中使用。而且Windows Hook只能提供14种类型的Hook。
Dtrace却在Solaris系统内拥有9万多个探针。可以查看任何系统信息。而且Dtrace目前已经开始被多个操作系统和应用程序所应用,它们通过将Dtrace移植来实现对系统和应用的出错。

4、连续性:
Hook其实是一种中断,它通过设置一个断点来获取数据,然后再将数据发送到窗口。
Dtrace没有任何断点,它是完全实施监控,对系统和应用没有任何干预。

具体的关于Windows Hook的内容可以查看:
http://www.quping.com/blog/article.asp?id=123
关于Dtrace的内容可以查看SDNChina的相关文章。

评论[3]