简介
这篇文档包含了你用solaris和Sun平台工作时所需要的最重要的20%的技术。它能处理你所遇到的80%的问题。
这篇文档并不打算覆盖Solaris处理环境的细节,也不会包含常见问题解答(相关的书和链接将在附录中给出)。这本书将用来为刚成为Solaris系统管理员的新手或没有每天管理Solaris系统基础的人提供一种怎样收集这种信息的服务。这篇文章关注的方向是用来做技术开发的图形工作站,也将对希望为建立一套用来演示或作为基准的Sun系统的人有所帮助。
两点提醒:
? 永远记住在记录日志中记录下你对系统的每一次改动
? 清楚的在头脑中记住这篇文档包含能让系统不可用的系统级的程序。除非你对它的破坏性做了仔细的分析,否则不要在正在使用的系统上执行这些程序。
1 系统启动和测试
1.1 OK提示符
每套SUN都有一个Boot-PROM模式,可以在启动操作系统之前访问,也可以在运行的时候访问,可以用STOP+A进入,如果没有STOP键(PC),可以用ctrl+break.。一旦进入Boot-PROM模式,会出现OK提示符。如果操作系统运行时候出现,可以用go继续。
1.2 控制台测试
Boot-PROM模式可以用直接连接的键盘和显示器,也可以用终端。
如果系统启动时候没有检测到键盘,输入输出自动转到第1个串口(/dev/ttya,A),可以连接一个终端或者另一计算机(通过交叉串口线)到这个端口。
如果另外的计算机是SUN工作站,可以使用tip hardwire来查看启动控制台。Tip命令输入之后,所有的启动信息会出现在相应的终端窗口里面,如果被观察的机器用了STOP+A,必须使用Strg-]把tip改成telnet模式,然后输入一个BREAK:telnetsend brk
1.3 重新启动SUN工作站
重新启动之前,工作站需要进入一个合适的状态,可以使用下面及格命令退出:
# init 5
# init 6
# init 0
SUN工作站在重新启动之前,会以一定的方式关闭系统,下面是几种可选择的方法:
最好、最干净的方法:
- # init 5 关闭所有进程,然后系统自动关掉电源。
- #init 6,关闭所有进程,然后系统自动从新启动。
- #init 0,关闭所有进程,然后系统自动回到OK状态。
在这3种情况下,在系统关闭之前执行/etc/rc0.d下面的K*脚本,这可以用于关闭数据库,或者关闭WEB服务器的进程ID文件等。
如果没有合适的shell窗口,可以使用远程登录来执行上面的命令。远程也不可以,可以使用下面的方法:
- STOP-A
- OK sync 同步文件系统,中断OS,然后重启。
注意:需要察看随之产生的保存在/var/crash/下面的内核转储文件。
如果碰到STOP-A也不能使用的情况,必须关闭计算机电源,在打开电源。
1.4 系统的测试
启动系统,在执行到内存测试的时候,按下STOP-A。
下面的段落只描述很重要的命令。
详细的描述可以在下面的书中《Hardware Diagnostics for Sun TM Systems: A Toolkit for System Adminis-trators》(Infodoc Number 23476 on http://sunsolve.sun.com)。
1.4.1 Banner(标识)
Banner显示下列信息:
. CPU的数量、类型和频率
. 内存
. MAC地址和主机地址(主机号)
. 控制台显示卡类型
. Sun-Globe: Creator 3D
. Sun with face: Elite 3D
. Self-describing Logo: PGX, Raptor GFX (=PGX32), Expert3D(lite) XVR-500, XVR-1000 etc.
1.4.2检测
probe-scsi-all列出内置和外置的所有SCSI设备。对于IDE硬盘,使用:probe-ide-all.
1.4.3 测试所有
test-all.运行所有的自检,可以检测象网线是否正常等情况。
1.4.4 printenv and devalias
devalias列出所有别名,printenv列出所有变量。例如boot-device变量,定义了计算机启动的路径,一般情况下是disk,disk是一个指向特定设备的别名。
1.4.5禁止网卡错误信息
当网卡在没连接网线启动的时候,"Interface: No link"会出现多次,可以在OK下面设置
setenv tpe_link test false 来禁止这个报错信息。
2 管理硬盘
2.1 逻辑设备名
所有的硬盘都有一个共同的命名方案,该方案包括一下四个部分:
c 控制器号
t 目标号,对于SCSU设备,就是对应的SCSI地址。
d 驱动号或者是RAID设备的LUN 号(一个地址,多个硬盘)
S 分区号(见下一段)
这些逻辑设备的以连接方式放在/dev/dsk和/dev/rdsk目录里面,并指向物理设备名。但这些物理设备仅在改变启动设备时用到,一般的命令都以逻辑设备为参数。
例如:
c0t0d0s0 通常是工作站的第1硬盘,c0t1d0s0 是第2个 c0t6d0s0 是内部光驱(SCSI地址是6)
在OK提示下输入 boot ?r可以更新/dev/dsk and /dev/rdsk目录里面的内容,devfsadm也可以。
Solaris8以前的需要用drvconfig;disks;devlinks3个命令来完成,刷新之后,probe-scsi-all所看到的设备的逻辑连接也就能看见了。
2.2 分区
下面是一个两个硬盘的工作站用format命令看到的内容
c0t0d0
c0t1d0
这里显示的是硬盘,不是分区或扇区,format的目的就是产生和管理分区,一个硬盘最多可以优个分区,用format-print可以查看。如果使用缺省安装,Solaris安装工具就会把系统盘分成slices: / (root) /usr /var 和 /export/home。Solaris 8操作系统缺省安装产生3个分区,大约1G的根区,SWAP区(根据内存容量确定大小),剩余空间给/export/home.
对于工作站来说,这个缺省分区不是最优化的,分区的容量不能在数据不丢失的情况下扩充。在分区空间用尽的情况下,必须使用符号连接。对于服务器来说,得保留一个分区给/var目录,
这样的话,保存在/var/tmp里面的记录和大文件就不会影响到根区,避免系统产生问题。
建议工作站这样分区
slice 0: / root-Partition, incl. /usr, /var, /opt plus
/export/home
slice 1: swap 交换区,和物理内存一样大
slice 2: backup 不要改变这个分区!!代表整个硬盘
slice 7: sds 用于Solstice DiskSuite(TM) metadata的小分区
为了使用Solstice Disksuite logical volume manager (SDS),建议保留30M,用于拷贝"state replica databases".可以参阅后面的使用SDS镜像启动盘
从Solaris 8 02/02开始,会自动安装Live Upgrade。使用Live Upgrade,可以在系统正在运行的时候拷贝当前根的环境。例如可以测试新的操作系统而不用改变正在运行的系统。为了产生这个预备启动环境(ABS),必须留出足够的空间,现在的硬盘空间足够大,可以使用下面分区:
slice 0: / root-partition, incl. /usr, /var, /opt
slice 1: swap swap-Partition, as large as physical memory
slice 2: backup Do not change this partition!
It is always the size of the whole disk
slice 3: /export OS-independent data, home-directories
slice 4: , to be used as ABE with Live Upgrade
( about 150% of the expected size of / )
slice 7: sds A small space reserved for Disksuite metadata
2.3 Crashdumps
从Solaris 7开始,缺省情况下crashdump写到交换区上,这也是为什么交换区为什么和内存一样大的原因之一。下次启动的时候,从交换区中读取这个文件,压缩之后写到var/crash/里面,用于以后的分析。因此/var(如果没有单独分出/var或者是/区)不能太小。
如果一个系统用了几个G的空间作为dump设备,启动时会由于上面提到的拷贝操作,花上很长时间。这时候,最好利用dumpadm定义一个dump分区,从这个指定分区拷贝的操作会在后台运行。注意经常检查和清除/var/crash/,保证有足够的空间用于其他的crashdumps.
2.4 Example
假如有一台E450系统并且有一个已经配置好的启动盘,但你不知道两件事情:(1)盘插哪里(系统又20个槽,必须装到安装系统时硬盘所在的槽里才能启动),(2)忘了超级用户口令。把 盘插到一个任意槽里,按下面的步骤:
第1步 插入一个启动光盘(SOLARIS 安装盘)STOP+A,然后 boot cdrom ?s。如果用外置光驱,就需要probe-scsi-all列出光驱位置,然后boot -s。系统起来之后,就有了一个不需要口令的超级用户窗口。
第2步 开始mount硬盘。首先用devfsadm重新建立设备,在/dev/dsk下面会有8个新文件。接下来使用format-print-partition确认盘已经装好,并找出来哪个分区是root分区,通常都是0区 。假设盘插到2槽,format会识别到c1t2d0(SCSI ID是2,第1个控制器),c1t2d0s0就是root分区,因此应该ount这个盘,fsck ?Y /dev/rdsk/c1t2d0s0;mldir /tmp/disk;mount /dev/dsk/c1t2d0s0 /tmp/disk
第3步 首先清楚/tmp/etc/shadow里面的root后面的加密内容清空,然后查看/tmp/etc/vfstab里面看看该盘是不是第2槽的,如果是,/应该mount在/dev/dsk/c1t2d0s0,如果不是,就把硬盘插到相应的槽里面。
第4步 假设在/tmp/etc/vfstab里面看到的是/dev/dsk/c1t2d0s0,这说明在原来的系统里面启动盘就是第2槽,一般,E450会从第1槽启动(c1t0d0s0)。在/dev/dsk里面找到并记下来c1t0d0s0指向的物理设备文件名。
第5步 reboot,STOP+A,输入:boot 。
第6步 定义别名, nvalias my disk ,这样就可以输入boot mydisk就可以启动了。定义setenv boot-device mydisk,系统就会自动从mydisk启动了。
2.5 Removable Devices
2.5.1 Volume Management(卷管理)
可移动设