簡介 這篇文檔包含了你用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(卷管理) 可移動設