分享
 
 
 

Solaris 常见问题

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

简介

这篇文档包含了你用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:telnet>send 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/<hostname>下面的内核转储文件。

如果碰到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: <not mountet>, 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/<hostname>里面,用于以后的分析。因此/var(如果没有单独分出/var或者是/区)不能太小。

如果一个系统用了几个G的空间作为dump设备,启动时会由于上面提到的拷贝操作,花上很长时间。这时候,最好利用dumpadm定义一个dump分区,从这个指定分区拷贝的操作会在后台运行。注意经常检查和清除/var/crash/<hostname>,保证有足够的空间用于其他的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(卷管理)

可移动设备由卷管理器来负责,卷管理器检测CD-ROM并自动挂接到/cdrom/cdrom0下面。一些手工操作会造成卷管理器错误,比如使用曲别针打开光驱,而不是使用eject cdrom命令。只这时候需要手工重起卷管理器.

/etc/init.d/volmgt stop

/etc/init.d/volmgt start

2.5.2 软驱

插入软盘(UNIX或DOS格式)必须使用volcheck才能使用卷管理器管理软驱。如果volcheck成功,软驱会出现在/floppy/floppy0下面,使用eject floppy而不手工取出软盘。

2.5.3 CD-ROM

CDROM不需要volcheck,开机就会被检测到,并挂接在/cdrom/cdrom0下面,没有shell或命令使用/cdrom路径时可以使用eject cdrom弹出光驱,fuser –c /cdrom/cdrom列出所有和光驱有关的进程ID或命令,fuser –k可以快速杀掉相关进程。

如果没有卷管理器,使用下面的方法管理CDROM(假设SCSI地址是6):

- mkdir /tmp/cdrom

- mount -F hsfs /dev/dsk/c0t6d0s0 /tmp/cdrom

- (Work with CD mounted on /tmp/cdrom)

- umount /tmp/cdrom

- eject /dev/dsk/c0t6d0s0

2.5.4 CD-R 和 CD-RW

CDRW,是一个与solaris 8 捆绑的工具,用来烧制CD-R或者CD-RW介质。这个工具也可以烧制用命令mkisofs从solaris文件系统和目录中创建的ISO镜象文件。

看下面带精确参数的例子:

#! /bin/sh

# ./nfscd <PARAMETER1> <PARAMETER2>

# PARAMETER1 = Application ID

# PARAMETER2 = from where

#

# ./nfscd SunNetManager /net/center2000/export/pkg/SUNWsnm

# set Umask

umask 022

# Remove old image

rm /data/disk.img

# Create image

mkisofs -A $1 -d -l -L -o /data/disk.img -P "Sun Microsystems" -p

"Solaris SPARC" -r -R -J -V "$1" -v $2

# Burn

cdrw -i /data/disk.img

2.5.5 磁带

磁带设备不是用卷管理器来控制的,它们必须用命令tar来处理。典型的磁带设备被作为一个外部SCSI设备连接到系统。当solaris OE 运行时它们的连接和配置就已经被完成了,在运行以前版本的solaris命令devfsadm(solaris 8 OE) 或者drvconfig; tapes;devlinks,你能找到一些逻辑的连接在/dev/rmt 目录。0描述的是第一个磁带设备,1是第二个磁带设备。

通过以上,你就可以访问这个磁带,用命令 tar tvf /dev/rmt/0.

注意:SGI系统写入的磁带通常只能用特定的块因子(blocksize)来读

tar tvfb 512 /dev/rmt/0

在某些情况下,需要进行字节交换操作,才能正确读取

dd if=/dev/rmt/0 conv=swab | tar tvfb 512 -

2.6 克隆磁盘

通过这部分的学习,你可以把一个系统克隆到另一个和它的硬件属于同一系列的系统中。例如克隆Ultra(TM) 10工作站到Ultra 10工作站是可以的,而克隆到Ultra 60工作站就是行不通的。

如果监测到目标系统的硬件结构和源系统有所不同的话(不同的结构缓冲,网卡等),目标系统在克隆以后需要用boot –r命令来重新配置。

2.6.1 使用内部磁盘来克隆

这种方式适合用于易于改变的内部磁盘:

·Ultra 30, Ultra 60, Ultra 80或者Sun Blade(TM) 100工作站或者E220R/E420R/E250R/E450

·Sun Enterprise(TM)220R, 420R, 250, 或者450服务器

内部的FC-AL磁盘(如Sun Blade 2000工作站和Sun Fire(TM) 280R或V880服务器)可能导致一些问题。

接下来是用Ultra 60工作站做的一个范例:

1 将目标盘插入主板上的第二个硬盘口

3 启动进入但用户模式(STOP-A; boot –s)

4 用devfsadm重新配置所有的磁盘

5 键入format察看硬盘的名称。在Ultra 60工作站上,你会看到c0t0d0和c0t1d0。C0t1d0是内部系统中最顶端的磁盘。

6 决定哪个盘是源盘,哪个盘是目标盘(不要忘记备份你的数据!)。在我们的例子中c0t0d0(底部的盘)作为源盘,c0t1d0(上面的盘)是目标盘。

7 dd if=/dev/rdsk/c0t0d0s2 of=/dev/dsk/c0t1d0s2 bs=128k(这条命令为整个盘,包括分区标的内容作了一个1:1的副本。如果源盘是一个9GB的盘,而目标盘是一个18GB的盘,那么将会有9GB的容量被浪费)。警告:仔细检查这一步,避免对你源盘的意外损坏。

8 fsck –Y of=/dev/dsk/c0t1d0s0(检查启动分区的文件系统,一般来说是分区0)

9 移除源盘,将克隆好的盘放进先前源盘所在的位置。重新启动你新做好的克隆的系统

2.6.2 通过转接线来克隆

这种方式比上面描述的通过内部磁盘克隆要慢,但是它适合用于一些内部的磁盘不容易改变的系统(如Ultra 10或Ultra 5工作站)。

警告:记住文件“/.rhosts”仅仅在这个任务中使用,在完成这个任务之后删除它来避免系统的安全漏洞。

目标系统

启动

在注册屏幕上使用命令行注册(command line login)

尽可能地停止引起磁盘输入输出的进程

TERM=vt100vi /etc/inet/hosts

->添加目标和源

ifconfig hme0 plumb

ifconfig hme0 <target> netmask 255…up

->测试rsh源

rsh source “dd if=/dev/rdsk/c0t0d0s2 ibs=128k obs=8k” | dd of=dev/rdsk/cotodos2 bis=128k obs=128k

(9GB的盘需要等待大约40分钟)

STOP-Aboot cdrom –s(用可引导的光盘引导)

fsck –Y /dev/rdsk/c0t0d0s0

源系统

在文件/.rhosts中添加目标IP

sync; sync;

2.7 用SDS制作磁盘镜像

Solaris逻辑卷面管理(SVM),一般是指Solstice Disksuite(SDS)软件,它可以把磁盘系统做成RAID 0, 1, 0+1或5。工作站最感兴趣的方式是RAID 1:为磁盘错误准备好了一个包含启动文件系统的磁盘镜像。

SVM是Solaris 9系统环境的一部分。在Solaris 8平台上,你可以在第二章光盘的“EA”目录下找到SDS软件。而在Solaris 7或者2.6系统环境中,服务器版,你可以查找一下光盘“Easy Access Server”。

我们假定一个工作站有两块内部的磁盘,c0t0d0和c0t1d0。这两块盘都以相同的方式被正确的分区:分区0被分配给/(root),分区1被分配给交换区(swap),一个比较小的分区7被分配用来记录复制数据库(State Replica Databases)。分区2被定义成一个备份区(参见“分区”一章)。

把第一块盘的分区信息复制到第二块盘,可以用如下的命令:

# prtvtoc /dev/rdsk/c0t0d0s2 | fmthard -s - /dev/rdsk/c0t1d0s2

记录复制数据库是一个包含了镜像信息纪录的小文件。镜像中的每个磁盘都必须知道有三个记录复制数据库文件:

# metadb -a -f -c 3 c0t0d0s3 c0t1d0s3

下一步,在第一块磁盘上创建第一个子镜像,它包含了启动文件系统:

# metainit -f d50 1 1 c0t0d0s0

然后在第二块磁盘上创建第二个子镜像:

# metainit d52 1 1

[1] [2] [3] [4] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有