簡介 這篇文檔包含了你用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/
下面的內核轉儲文件。
如果碰到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(卷管理)
可移動設