Solaris(現 Oracle Solaris)雖漸退出歷史舞台,但大量金融、電信核心系統仍在運行。本文彙整 8 大經典案例:syslogd CPU 佔用、磁碟空間幻覺、FTP 僅登入不可上傳、SQLPlus Root 執行失敗、utmpx 損毀導致無法登入、WWN 獲取、CDE 顯示問題、XManager 登入失敗、NFS 掛載 Oracle 數據庫參數、tar 解壓空間不足假象。
message overflow on /dev/log現象:開機後 syslogd 佔用 50% CPU,console 重複輸出錯誤。
根因:/etc/dfs/dfstab 共享 /home(share -F nfs -o rw -d "home dirs" /home),但 /home 底層檔案系統已卸載,成為 automount 唯讀目錄,syslogd 反覆嘗試寫入失敗。
修復:註釋或刪除該行,或改 -o ro。
df -k 顯示空間與實際不符(差 200GB)現象:刪除資料庫檔案後拷貝新檔,df 顯示空間不足,du 卻正常。
根因:Oracle 後台進程仍持有已刪除檔案的開啟檔案描述符,空間未釋放。
修復:停止所有 Oracle 進程(sqlplus / as sysdba → shutdown immediate),空間即釋放。
原則:df 看檔案系統區塊,du 走目錄樹統計 inode;**已刪除但被進程持有的檔案,df 計入已用,du 不計入**。
根因:測試僅 FTP 權限帳號時,誤將 /usr/bin/noshell 加入 /etc/shells,導致合法 shell 清單污染。
修復:從 /etc/shells 移除錯誤項。
補充:Solaris 建立僅 FTP 帳號:
/etc/passwd:ftptest:x:1008:1::/home/ftptest:/usr/bin/noshell
/etc/shells:必須包含 /usr/bin/noshell,否則 FTP 登入報 530 錯誤。
根因:根目錄 / 缺少執行權限(x 位被移除)。
修復:chmod +x /(或 chmod 755 /),所有服務恢復正常。
教訓:根目錄權限異動極高風險,嚴禁隨意 chmod -R 根目錄。
utmpx 導致所有用戶無法登入(含 Console)現象:No utmpx entry. You must exec "login" from the lowest level "shell".
修復:單用戶模式啟動 → rm /var/adm/utmpx; touch /var/adm/utmpx; chmod 644 /var/adm/utmpx; chown root:root /var/adm/utmpx → 重啟。
警告:utmpx 記錄當前登入會話,**嚴禁手動清空**。
# 已連接存儲
luxadm -e port
luxadm -e dump_map
# 未連接存儲 (Qlogic HBA)
prtpicl -c scsi-fcp -v | grep -i wwn
# 未連接存儲 (JNI HBA)
prtpicl -c scsi -v | grep -i wwn
現象:打補丁報 X 錯,機房發現顯卡解析度問題。
修復:
fbconfig -prconf
fbconfig -res 1024x768x70
/usr/dt/bin/dtlogin stop
/usr/dt/bin/dtlogin start
XManager 無法登入 Solaris x86:被動模式可行。最終切換 GDM 解決:
svcs cde-login → svcadm disable cde-login → /usr/dt/config/dtconfig -d → svcadm enable gdm2-login (Solaris 10) 或 gdm (Nevada)。
mount -F nfs -o hard,rw,noac,rsize=32768,wsize=32768 :<共享目錄> <掛載點>
# hard: 硬掛載(重試不放棄) rw: 讀寫 noac: 關閉屬性快取
# rsize/wsize: 32KB 傳輸單元,提升大量 I/O 效能
df -k 顯示 11G 空閒但 tar + gunzip 解壓報 extract write error根因:磁碟分區 inode 耗盡(大量小檔案),或檔案系統碎片化導致連續空間不足。
排查:df -i 檢查 inode 使用率;fsck 檢查碎片。
教訓:**df -k 只看區塊,df -i 才看 inode;大量小檔案場景必雙監控**。
Solaris 疑難雜症多源於「檔案系統語意差異(df/du/inode)」、「服務相依性誤解(syslogd/dfstab)」、「權限模型嚴格(根目錄 x 位、shells 清單、utmpx)」、「圖形子系統脆弱(CDE/X11/GDM)」。維護存量系統時,**動手前先備份、先單用戶模式、先讀 man page**,是生存法則。