日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Solaris中文FAQ

發布時間:2024/1/8 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Solaris中文FAQ 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近花了一些時間在寫Solaris中文FAQ,現在補充的差不多,總共有60多條,涵蓋了新手以及一些我們常見的問題。基本上我的補充告了一個段落,復制一份在此,作為一個milestone。

首先感謝 oliver, 他先開始了這個項目,并是主要的創作者。用wiki的方式來維護FAQ,非常合適,一個很好點子。 同時也歡迎大家一同創作,和大家分享使用Solaris的經驗和技巧。




OpenSolaris/Solaris中文FAQ

Wikipedia,自由的百科全書

維護者: oliver laoeyu?


本文來自: OpenSolaris中國社區

URL: Solaris中文FAQ

聲明: 本文可自由拷貝、分發、修改及再創作;

任何問題/回答/建議/勘誤請mail至討論組以幫助和回饋社區;

討論組: opensolaris-chinese-faq AT googlegroups.com

注:

  • 本文檔只覆蓋Solaris 9及以后的平臺上的常見問題
  • S9/10/11 分別對應目前Solaris的發行版本9/10/11
  • x86/x32/x64/Sparc 分別對應x86包括32和64位/IA32專有/AMD64或EMT64位專有/Sparc等特定平臺

  • 目錄

    [隱藏]
    • 1 一般討論
      • 1.1 OpenSolaris和Solaris的區別?
      • 1.2 Solaris有那些主要版本?
      • 1.3 Sun OS和Solaris有什么區別?
      • 1.4 OpenSolaris的版本有哪些?
      • 1.5 OpenSolaris是GPL的嗎?
      • 1.6 學習OpenSolaris/Solaris有哪些可用的資源?
    • 2 系統安裝
      • 2.1 如何得到和安裝Solaris?
      • 2.2 安裝Solaris對硬件有什么要求?
      • 2.3 安裝Solaris X86不能識別網卡怎么辦?
      • 2.4 安裝Solaris X86不能識別聲卡怎么辦?
      • 2.5 如何讓安裝一個Solaris/Windows XP/Linux共存的操作系統?
      • 2.6 VMware 5.5版本上,Solaris安裝停止在skipped interface pcn0就不動了?
      • 2.7 安裝后,顯示分辨率太低,如何調整分辨率啊?
    • 3 使用/管理/配置
      • 3.1 Solaris下有PDF閱讀器嗎?
      • 3.2 Solaris有電子詞典嗎?
      • 3.3 如何查看OpenSolaris/Solaris的版本信息?
      • 3.4 如何查看系統內核是32位的還是64位的?
      • 3.5 如何查看系統中CPU的數目?
      • 3.6 為什么不能在/home下創建目錄?
      • 3.7 如何查看solaris下安裝了有幾塊硬盤?
      • 3.8 如何在Solaris下使用USB存儲設備?
      • 3.9 如何察看Solaris系統的內存大小及使用情況?
      • 3.10 如何修改主機名?
      • 3.11 如何修改IP地址?
      • 3.12 DNS客戶端的設置
      • 3.13 DHCP客戶端設置
      • 3.14 網絡配置生效的問題
      • 3.15 Solaris下如何修改mac地址?
      • 3.16 Solaris下如何給機器添加一個新硬件?
      • 3.17 忘記了root密碼,如何解決?
      • 3.18 使用FTP時,不能以root用戶登錄系統,應修改什么配置文件?
      • 3.19 使用Telnet時,不能以root用戶登錄系統,應修改什么配置文件?
      • 3.20 Solaris下如何修改網卡的傳輸模式呢?
      • 3.21 如何使用串口做系統控制臺?
      • 3.22 /目錄的空間滿了,怎么擴容?
      • 3.23 Solaris如何設置ADSL撥號上網?
      • 3.24 怎么讓Solaris默認不啟動X window?
      • 3.25 如何mount上文件系統為FAT32/PCFS/DOS的硬盤
      • 3.26 如何檢查硬盤壞道
      • 3.27 如何刻錄光盤?
      • 3.28 如何制作光盤鏡像iso文件?
      • 3.29 如何虛擬光驅,讀取iso中的文件
      • 3.30 重裝 Windows后Grub失效,如何重新安裝Grub
      • 3.31 bootblk損壞,如何修復
      • 3.32 如何添加用戶
      • 3.33 如何設置Shell環境變量
      • 3.34 Shell的配置文件和讀取順序
      • 3.35 如何安裝軟件包軟(Package)?
      • 3.36 如何打Patch?
      • 3.37 如何打開壓縮的文件?
      • 3.38 如何去掉文本中^M?
      • 3.39 如何運行Linux下的程序?
    • 4 常用軟件使用
      • 4.1 常用軟件下載
      • 4.2 Solaris軟件下載站點
    • 5 應用程序開發
      • 5.1 Solaris下如何安裝gcc編譯器?
      • 5.2 Solaris下cc為什么不能用?
      • 5.3 在Solaris下編譯socket程序時發生“符號參照錯誤”提示?
      • 5.4 Python在Solaris下是默認安裝的嗎?
      • 5.5 如何修改文件描述符限制?
    • 6 內核和驅動程序開發
      • 6.1 Solaris是微內核操作系統嗎?
      • 6.2 Solaris上有什么樣的內核級調試器?
      • 6.3 哪里可以找到Solaris下的usb驅動程序的開發資料?
      • 6.4 Solaris默認內核棧大小是多少?
      • 6.5 OpenSolaris的內核源碼中的assert()函數起什么作用?

    <script type="text/javascript"> if (window.showTocToggle) { var tocShowText = "顯示"; var tocHideText = "隱藏"; showTocToggle(); } </script>

    [ 編輯]

    一般討論

    [ 編輯]

    OpenSolaris和Solaris的區別?

    簡單說,所以OpenSolaris是一個的開源項目,而Solaris是Sun公司的基于OpenSolaris推出的一個自己的產品。

    Solaris和OpenSolaris的關系和Redhat和Linux的是類似的。

    OpenSolaris是一個開源項目包括了以CDDL為License的OpenSolaris代碼,OpenSolaris開發組織, 還有OpenSolaris網站。 而Solaris操作系統是Sun公司的一個產品,Solaris從Solaris 10(2005)后的以后版本都將基于OpenSolaris的代碼和技術。Solaris也是免費下載,Sun公司提供相應的service packages和regular updates。

    [ 編輯]

    Solaris有那些主要版本?

    Solaris最新正式版本是10。以前的還有2.5/2.6/7/8/9等。

    類似于Windows的Service pack,Sun還會定期推出基于主板本之上的Update版本。例如,Solaris 10的第一個Update版本是Solaris 10 update 1。

    Solaris按支持平臺可分為x86和Sparc版本,其中x86版本支持32位和64位。Sparc也有32(較早的機器)和64位之分。

    Sun公司還推出Solaris Enterprise System。Solaris Enterprise System是一個免費企業級解決方案套件:除了包含Solaris 10,還有Java Enterprise System,開發工具(Sun Studio, Netbeans, Sun Java Studio Creator, Sun Java Studio Enterprise), 桌面軟件和N1管理軟件。

    目前Solaris開發版本是11,項目代號是Nevada,(美國西部內陸州-內華達州)。

    每月5號,Sun會發布一個當前Solaris開發版本叫做Solaris Express。目前的Solaris Express來自于Solaris 11最新的較穩定的版本,其中包含了Solaris最新的功能和特性。該產品主要針對合作伙伴、開發者和希望使用最新技術的用戶。Sun公司也對該產品提 供一定支持。

    Solaris Nevada的核心部分,ON(即OS&Network)和JDS(Java Desktop System)也作為OpenSolaris開放,目前OpenSolaris和Nevada的代碼保持同步。

    OpenSolaris也出現了很多衍生版本,如Polaris、Nexenta、Schillix和Belenix。其中Polaris已經支持了IBM的PowerPC平臺。

    [ 編輯]

    Sun OS和Solaris有什么區別?

    簡單得說,Sun OS是Solaris的其中一個部分。
    Solaris是SOE - Solaris Operating Environment的縮寫,它包括以下主要部件:

    1.SunOS - 系統內核 (版本號是5.x)
    2.Windowing - 桌面環境JDS/CDE
    [ 編輯]

    OpenSolaris的版本有哪些?

    OpenSolaris出現了很多衍生版本,如Polaris、Nexenta、Schillix和Belenix。其中Polaris已經支持了IBM的PowerPC平臺。

    [ 編輯]

    OpenSolaris是GPL的嗎?

    OpenSolaris和GNU/Linux不同,它是以CDDL License發布的。
    CDDL是一種新的Open Source的License,與GPL相比,它的條款更寬松,更具有優越性。
    關于CDDL的細節,你可以訪問:CDDL License FAQ

    [ 編輯]

    學習OpenSolaris/Solaris有哪些可用的資源?

    OpenSolaris中文wiki社區有專門的文檔項目來收錄OpenSolaris學習和研究的相關資源:

    http://wiki.gceclub.sun.com.cn/index.php/Opensolaris_resource

    [ 編輯]

    系統安裝

    [ 編輯]

    如何得到和安裝Solaris?

    Sun的官方站點提供Solaris 10 免費下載,有DVD和CD格式:http://www.sun.com/software/solaris/get.jsp (服務器在國外), 需要Sun Online Account賬號(免費注冊)。

    Sun的中國技術社區gceclub也提供Solaris 10 免費下載: http://gceclub.sun.com.cn/download.html (服務器在國內),需要gceclub Account賬號(免費注冊)。

    安裝方法參考這個網頁http://blog.gceclub.sun.com.cn/index.php?op=ViewArticle&articleId=121&blogId=4 你可以選擇中文安裝。

    [ 編輯]

    安裝Solaris對硬件有什么要求?

    Solaris 10的對硬件配置最低標準是:

    256MB的內存 (如果使用PXE啟動,需要512MB)

    2G的硬盤空間

    120MHZ的X86(X64)的芯片或者250MHZ的SPARC芯片

    DVD或者CD-ROM驅動器


    [ 編輯]

    安裝Solaris X86不能識別網卡怎么辦?

    1.確認你的網卡型號,從而得到網卡的vendor id:

    主板/硬件手冊或者windows設備管理器都能得到設備的廠商名稱,然后到PCI設備的數據庫去搜索相應的vendor id。

    推薦站點:http://pci-ids.ucw.cz

    2.通過vendorid確認網卡的devide id:

    # prtconf -vp | grep <網卡的vendor id>

    得到可能的devideid后到PCI設備的數據庫得到準確的設備型號。

    推薦站點:http://pci-ids.ucw.cz/


    3.確認vendorid和deviceid后,嘗試Solaris系統自帶的驅動

    尋找和系統內和自己device id近似的驅動名:

    # grep vendorid /etc/driver_aliases

    需要確認設備的廠商和型號是否與找到的驅動相近,可以再次利用PCI設備的數據庫。

    如果可以確認,可以嘗試加載該驅動:

    # devfsadm
    # add_drv -i '"vendorid,deviceid"' <驅動名>


    4.尋找其它網卡驅動

    1) 第三方網卡驅動列表:http://homepage2.nifty.com/mrym3/taiyodo/eng/index.htm
    2)HCL的network列表:http://www.sun.com/bigadmin/hcl/data/sol/
    3) 網卡廠家的網站。例如,Broadcom的網站就有其Solaris平臺的驅動下載
    4) Solaris x86驅動的資源:http://solaris-x86.org/software/drivers/
    5)Sun DryDog參考:http://www.sun.drydog.com/faq/6.html#6.7
    6) Google
    7) 發郵件到OpenSolaris社區求助,最好提供prtconf -vp的輸出和具體網卡型號

    [ 編輯]

    安裝Solaris X86不能識別聲卡怎么辦?

    1.確定你的聲卡型號:通過主板/硬件手冊或者windows設備管理器。

    2.Solaris10目前支持audioi810和audiovia823x:

    audioi810:主板集成AC97的音頻控制器,包括Intel ICH/ICH0/ICH2/ICH4/ICH5芯片組(i810/i815/i845e/i850/i855pm/i865/440mx)或者兼容芯片 組(nVidia nForce MCP, SiS7012, AMD-768, AMD-8111).

    audiovia823x:主板集成AC97音頻控制器,包括VIA芯片組(VT8233/VT8235,Apollo KT266/ KT266A, Apollo Pro266/ Pro266T).

    目前可自動識別的vendorid,deviceid如下:

    # grep audio810 /etc/driver_aliases
    audio810 "pci1022,746d"
    audio810 "pci8086,2485"
    audio810 "pci8086,24c5"
    audio810 "pci8086,24d5"
    audio810 "pci8086,266e"
    audio810 "pci10de,6a"
    audio810 "pci10de,da"
    audio810 "pci10de,ea"
    audio810 "pci10de,59"
    # grep audiovia823x /etc/driver_aliases
    audiovia823x "pci1106,3059"

    如果你的聲卡屬于audioi810和audiovia823x類型,但是沒有自動被識別出來,則可以通過prtconf -vp找到聲卡的vendorid,deviceid,然后嘗試以下命令:

    # devfsadm
    # add_drv -i '"vendorid,deviceid"' <audio810|audiovia823x>

    3.尋找其它聲卡驅動

    如果不屬于udioi810和audiovia823x,請查看第三方驅動:

    1) 第三方聲卡驅動列表:http://www.tools.de/solaris/audio/beta/
    2)HCL的聲卡列表:http://www.sun.com/bigadmin/hcl/data/sol/
    3) Solaris x86驅動的資源:http://solaris-x86.org/software/drivers/
    4)Sun DryDog參考:http://www.sun.drydog.com/faq/6.html#6.7
    5) Google
    6) 發郵件到OpenSolaris社區求助,最好提供prtconf -vp的輸出和具體網卡型號

    [ 編輯]

    如何讓安裝一個Solaris/Windows XP/Linux共存的操作系統?

    1.安裝Windows XP

    2.安裝Linux

    安裝完Linux后,Grub一般都會自動設置好啟動選項,達到Windows和Linux雙系統。 察看/boot/grub/menu.lst,找到啟動Linux的幾行配置,類似如下:

    title Ubuntu, kernel 2.6.12-10-386
    root (hd0,1)
    kernel /vmlinuz-2.6.12-10-386 root=/dev/hda3 ro quiet
    initrd /initrd.img-2.6.12-10-386]]

    記下這幾行

    3.安裝Solaris 10 1/06 x86

    Soalris 10 1/06也用grub引導,但安裝好后自動的配置只有Solaris和Windows的選項,不能引Linux,需手工修改grub的配置文件。

    4.修改grub的配置文件

    進入Soalris系統,編輯/boot/grub/menu.lst,將第3步中記下的幾行加入,保存。 重新啟動,grub即可引導Solaris,Linux和WindowsXP。


    參考于Multi-Booting the Solaris 10 OS, Linux, and Microsoft Windows on a Laptop

    [ 編輯]

    VMware 5.5版本上,Solaris安裝停止在skipped interface pcn0就不動了?

    [x86]: 大概是Solaris顯卡檢測的問題,引導的時候,安裝方式那里選擇文本方式安裝即可。

    [ 編輯]

    安裝后,顯示分辨率太低,如何調整分辨率啊?

    [X86] 可以使用kdmconfig. 如果你不熟悉Xorg的Xserver,你可以選擇使用Xsun,接著該命令會引導你設置顯卡,分辨率等。 Xorg的Xserver,就需要你另外配置xorg.conf或者通過使用xorgconfig命令來配置。

    [ 編輯]

    使用/管理/配置

    [ 編輯]

    Solaris下有PDF閱讀器嗎?

    Solaris Express on sparc集成了Acrobat Reader,但是最新的Acrobat Reader目前不支持Solaris x86。

    不過有一個4.05版 可以在Solaris x86上,看一般的PDF文檔和中文都沒有問題:

    http://download.adobe.com/pub/adobe/acrobatreader/unix/4.x/sunx86-ar-405.tar.gz

    http://download.adobe.com/pub/adobe/acrobatreader/unix/4.x/chsfont.tar.gz


    [ 編輯]

    Solaris有電子詞典嗎?

    如果有SUNWstardict,就運行:

    /usr/bin/stardict

    更多中文詞典:http://stardict.sourceforge.net/Dictionaries_zh_CN.php

    [ 編輯]

    如何查看OpenSolaris/Solaris的版本信息?

    通常的“uname -a"命令就可以知道Solaris的版本:
    想知道是哪一個Solaris Update版本,可以查看/etc/release文件。
    對于曾經使用過Opensolaris的BFU升級的用戶,應該查看/etc/motd文件。


    [ 編輯]

    如何查看系統內核是32位的還是64位的?

    isainfo -b


    [ 編輯]

    如何查看系統中CPU的數目?

    用psrinfo(1M)就可以查看。由于多內核/多線程技術的廣泛采用,要查出物理CPU的數目可以使用-vp參數,例如:

    # psrinfo -vp
    The physical processor has 32 virtual processors (0-31)
    UltraSPARC-T1 (cpuid 0 clock 1000 MHz)

    UltraSPARC-T1的CPU共有8內核,每內核4個線程,因此如果單用-v參數看到的CPU數目是32個,而不是1個。


    [ 編輯]

    為什么不能在/home下創建目錄?

    Solaris的用戶目錄應該創建在/export/home下,不建議直接使用/home。

    這是因為Solaris的/home目錄是由automounter控制的,只有automounter可以在這個目錄下創建文件。如果不 希望automounter管理/home目錄,可以在刪除/etc/auto_master文件中包含"/home"的那行,并且運行 automount -v讓設置生效,當然reboot也可以。


    [ 編輯]

    如何查看solaris下安裝了有幾塊硬盤?

    format命令可以看有幾塊物理盤

    Searching for disks...done
    AVAILABLE DISK SELECTIONS:
    0. c0t0d0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133>
    /pci@1f,4000/scsi@3/sd@0,0
    1. c0t1d0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133>
    /pci@1f,4000/scsi@3/sd@1,0
    2. c0t2d0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133>
    /pci@1f,4000/scsi@3/sd@2,0
    3. c0t3d0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133>
    /pci@1f,4000/scsi@3/sd@3,0
    4. c2t0d0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133>
    /pci@6,4000/scsi@4/sd@0,0
    5. c2t1d0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133>
    /pci@6,4000/scsi@4/sd@1,0
    6. c2t2d0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133>
    /pci@6,4000/scsi@4/sd@2,0
    Specify disk (enter its number): 0
    selecting c0t0d0
    [disk formatted]

    隨便選一個盤 再按Q退出就可以了


    [ 編輯]

    如何在Solaris下使用USB存儲設備?


    [S11|S10]: Solaris可以自動檢測并mount USB存儲設備上的文件系統,在CDE和JDS下會自動在桌面上給出U盤的文件夾,不過要等一會兒,大概半分鐘的時間不到。

    如果系統沒有自動識別,主要有以下2種情況:

    1.較早版本的Solaris的vold不能立即檢測熱插拔,需要重新啟動vold才可以識別:

    將U盤插入USB口,再重新啟動vold,vold會自動mount usb設備:

    # /etc/init.d/volmgt stop
    # /etc/init.d/volmgt start

    /rmdisk/rmdisk0可能就是被mount上的U盤,如果不是,請依次檢查/rmdisk/rmdisk1,/rmdisk/rmdisk2...

    2.直接查詢設備路徑,mount該設備:

    如果該USB設備已經存在文件系統,且Solaris支持該文件系統,可以直接mount該文件系統。 以FAT32文件系統為例,首先要了解USB設備的路徑:

    # rmformat
    Looking for devices...
    1. Logical Node: /dev/rdsk/c3t0d0p0
    Physical Node: /pci@0,0/pci1028,151@1d,7/storage@4/disk@0,0
    Connected Device: HTS42404 0M9AT00
    Device Type: Removable

    然后,直接mount該設備:

    # mount -F pcfs /dev/dsk/c3t0d0p0:c /mnt

    卸載U盤前,需要確保該mount目錄沒有正在使用:

    # umount /mnt
    # eject rmdisk0

    或者,

    # umount /mnt
    # eject /dev/rdsk/c3t0d0p0


    [ 編輯]

    如何察看Solaris系統的內存大小及使用情況?

    [S9|S10|S11]: 看物理內存用prtconf,在x86和sparc都通用的:

    # prtconf -vp | grep Mem
    Memory size: 2047 Megabytes

    再有就是vmstat了:

    # vmstat 1

    看vmstat的輸出時,從第2行開始看,如果sr列數值比較大,就表明內存緊張。

    Solaris 9開始,可以使用mdb來查看內存:

    # echo?::memstat | mdb -k

    如需要看具體那個進程占用內存的情況可以使用:prstat -a 另外還有GNU的top命令(top需要從www.sunfreeware.com上下載安裝)

    [S8]:Solaris 8的mdb命令沒有::memstat命令,需要從www.solarisinternals.com下載,然后運行如下命令裝入::memstat:

    # mdb -k
    >::load memory
    >::memstat

    就可以看你真實的物理內存的占用情況了。


    [ 編輯]

    如何修改主機名?

    新手可以使用sys-unconfig

    也可以修改以下文件:

    /etc/inet/hosts
    /etc/hostname.xxx(xxx代表你的網卡的名稱)
    /etc/nodename
    /etc/inet/ipnodes(ipv6協議使用的主機文件)

    然后重新啟動即可。


    [ 編輯]

    如何修改IP地址?

    新手可以使用sys-unconfig

    也可以修改以下文件:

    /etc/hosts
    /etc/hostname.xxx
    /etc/defaultrouter(默認網關)
    /etc/netmasks(掩碼)

    然后重新啟動系統,或者用ifconfig 來添加臨時的IP地址.用route add default xxx.xxx.xxx.xxx來添加臨時的默認網關.


    [ 編輯]

    DNS客戶端的設置

    1. /etc/resolv.conf文件,用于記錄DNS服務器的地址和域名

    若文件不存在就創建一個新文件。

    # vi /etc/resolv.conf
    nameserver 192.168.2.1

    2./etc/nsswitch.conf文件,用于記錄主機名的搜索順序等信息

    找到hosts:起始的行,將其修改為:

    vi /etc/nsswitch.conf
    ................
    hosts: files dns


    [ 編輯]

    DHCP客戶端設置

    創建兩個空文件,<interface>是網卡適配器的名字,這兩個文件用于系統啟動時自動啟動dhcp。

    # touch /etc/hostname.<interface>
    # touch /etc/dhcp.<interface>

    網卡適配器的名字的我們可以通過ifconfig -a 或者文件/etc/path_to_inst得到。 如果需要立即使用dhcp的話,可以執行一下命令:

    # ifconfig <interface> dhcp start


    [ 編輯]

    網絡配置生效的問題

    配置項臨時使用重啟失效永久生效需要重啟
    主機名hostname <new name>
    不要在Window(CDE, JDS)界面中使用
    /etc/nodename
    /etc/hostname.<Interface>
    /etc/inet/hosts
    IP地址ifconfig <Interface> plumb
    ifconfig <Interface> <IP> up
    /etc/inet/hosts
    網絡掩碼ifconfig <Interface> <netmask> up/etc/netmasks
    Gateway網關route add default <IP Gateway>/etc/defaultrouter
    DHCP 客戶端ifconfig <Interface> plumb
    ifconfig <Interface> dhcp start
    touch /etc/hostname.<Interface>
    touch /etc/dhcp.<Interface>
    [ 編輯]

    Solaris下如何修改mac地址?

    用ifconfig 命令即可修改mac地址,假設接口名為nge0,要將mac地址修改為0:1:2:3:4:5,可以運行如下命令:

    # ifconfig nge0 ether 0:1:2:3:4:5
    [ 編輯]

    Solaris下如何給機器添加一個新硬件?

    [Sparc|X86]:添加好新硬件后,啟動系統后,執行drvconfig或者devfsadm即可檢測到新硬件。例如,添加新的硬盤,在硬盤加好后,執行一下drvconfig disks或者devfsadm。

    另外,可以在關機或重啟系統時,設置開機檢測新硬件,然后關閉電源,再添加或更換硬件。

    # touch /reconfigure;init 0

    任何時候,給重啟命令制定-r選項,即可在啟動時檢測硬件。

    # reboot -- -r

    第三方的設備是需要相應廠家的驅動程序,可以讀設備的說明書進行安裝.


    [Sparc]:關掉電源添加SUN相應的設備后,啟動時按住stop+A(SUN鍵盤),ctrl+break(PC鍵盤)進入OBP提示符ok下,然后boot -r
    某些支持動態配置和熱插拔的硬件的Sparc服務器,可以用cfgadm和devfsadm在不停機狀態下增加硬件,詳見手冊。

    [X86]:關掉電源添加相應的設備后,啟動時輸入b -r


    [ 編輯]

    忘記了root密碼,如何解決?

    [S10u1|S11]:新版本的Solaris系統采用grub作為引導程序,因此不需要光盤引導:

  • 首先,在grub的菜單中選擇fail safe的選項引導系統
  • 引導后,系統會提問是否mount根分區到/a上,選擇是
  • 按照前面的方法編輯/a/etc/shadow文件,保存、重啟系統。

  • [S9|S10]:用solaris的software1/2光盤引導系統,修改口令即可。

    • 首先要用光盤引導系統:
    [X86]:x86沒有OBP,只需要設置BIOS或者通過引導菜單,選擇從CDROM上引導系統。
    [Sparc]:任何時候通過Stop+a(SUN鍵盤)或者ctrl+break(PC鍵盤)進入到OBP提示符下輸入:
    ok boot cdrom -s
    • 然后,mount根分區,打開shadow文件:
    mount /dev/dsk/c0t0d0s0 /mnt (這里假設你的硬盤上的/區是/dev/dsk/c0t0d0s0)
    vi /mnt/etc/shadow
    • 最后,編輯shadow文件,把root用戶的密碼刪除,保存文件、重新啟動后,就不會有口令了。


    [ 編輯]

    使用FTP時,不能以root用戶登錄系統,應修改什么配置文件?

    打開文件 /etc/ftpusers,如果有root,注釋掉就可以了。


    [ 編輯]

    使用Telnet時,不能以root用戶登錄系統,應修改什么配置文件?

    將/etc/default/login把CONSOLE=/dev/console該行注釋掉,就可以用root遠程telnet本機。


    [ 編輯]

    Solaris下如何修改網卡的傳輸模式呢?

    用ndd /dev/hme /? 看到的link_mode是只讀的不能修改.但是可以觀看. ndd -get /dev/hme link_mode 1 = Full Duplex (FDX) 0 = Half Duplex (HDX)


    [ 編輯]

    如何使用串口做系統控制臺?


    [ 編輯]

    /目錄的空間滿了,怎么擴容?

    這個比較麻煩.如果沒有引入卷管理方式的話,擴容/一般認為不能這樣做. 因為在分配柱面的地址沒有辦法做到. SDS上增加可以用growfs veritas上:vxresize 或者vxassist


    [ 編輯]

    Solaris如何設置ADSL撥號上網?

    一、系統基本設置

    # touch /etc/ppp/pppoe.if

    重啟系統后會創建撥號相關的文件

    # touch /etc/gateways

    重啟后會添加IP路由功能

    # touch /etc/hostname.hme1

    重啟后會添加上第二塊網卡,該網卡如果已經添加,那么可省去此步。通過ifconfig -a可以查看該網卡是否啟用。該網卡hme1是和adsl modem相連的網卡。

    # echo "nameserver 202.96.134.133" >; /etc/resolv.conf

    添加上離你最近的DNS服務器,重啟生效,可以在此文件中添加多個DNS server。

    # cp /etc/nsswitch.dns /etc/nsswitch.conf

    此步驟的目的是修改/etc/nsswitch.conf,當然直接改動/etc/nsswitch.conf。

    二、PPPOE基本設置

    確認系統中已經安裝上如下的軟件:

    SUNWpppd - Solaris PPP Device Drivers
    SUNWpppdr - Solaris PPP configuration files
    SUNWpppdt - Solaris PPP Tunneling
    SUNWpppdu - Solaris PPP daemon and utilities
    SUNWpppdx - Solaris PPP 64-bit (ONLY needed for SPARC's with 64-bit kernels)

    如果沒有,那么從solaris的第二張安裝光盤盤中進行補裝。有兩個ppp的大軟件包,選上即可。

    # reboot -- -r

    重新進入系統之后,going on.......

    # ls /dev | grep ppp 確認存在sppp和sppptun
    # grep sppp /etc/name_to_major
    sppp 146
    sppptun 147

    編輯撥號配置文件

    # vi /etc/ppp/peers/bohao 添加如下幾行
    sppptun
    plugin pppoe.so
    connect "/usr/lib/inet/pppoec hme1" #hme1是與MODEM相連的網卡
    persist #自動重播
    user "USERNAME" # username
    noauth
    noipdefault
    noccp
    novj
    noaccomp
    nopcomp
    defaultroute

    存盤退出 由于你的ISP需要對你進行密碼驗證,所以你還要編輯一下密碼文件,但是ISP可能用到的文件是/etc/ppp/chap-secrets和/etc/ppp/pap-secrets 因此分別要到這兩個文件中的最后一行中追加: username * password 我要提醒的是:上行中的字段之間是TAB鍵分割的,而不是空格。 到此為止,配置已經結束了,接下來就是撥號。 綁定網卡

    # sppptun plumb pppoed hme1
    # sppptun plumb pppoe hme1
    # sppptun query 檢查是否綁定成功
    # /usr/lib/inet/pppoec -i hme1 探測與hme1相連的ISP網卡的MAC地址信息,主要是確保物理線路是否存在問題。
    # /usr/bin/pppd call bohao bohao為/etc/ppp/peers的一個撥號配置文件。
    # ifconfig -a 驗證是否出現sppp0的網口,如果網絡不暢,此處可能需要等一段時間。

    可以把上述的操作簡單的寫成一個教本,開機自動執行。

    # vi /etc/rc2.d/S48bohao 添加如下幾行
    sppptun plumb pppoed hme1
    sppptun plumb pppoe hme1
    /usr/bin/pppd call bohao

    存盤退出

    # chmod u+x /etc/rc2.d/S48bohao

    到此,服務器的撥號設置告一段落。 (轉自CU網友nimysun)


    [ 編輯]

    怎么讓Solaris默認不啟動X window?

    關閉X window自動啟動

    # /usr/dt/bin/dtconfig -d

    恢復X window自動啟動

    # /usr/dt/bin/dtconfig -e

    其它選項:

    # /usr/dt/bin/dtconfig --help
    Usage:
    CDE configuration utility
    /usr/dt/bin/dtconfig -d (disable auto-start)
    /usr/dt/bin/dtconfig -e (enable auto-start)
    /usr/dt/bin/dtconfig -kill (kill dtlogin)
    /usr/dt/bin/dtconfig -reset (reset dtlogin)
    /usr/dt/bin/dtconfig -p (printer action update)
    /usr/dt/bin/dtconfig -inetd (inetd.conf /usr/dt daemons)
    /usr/dt/bin/dtconfig -inetd.ow (inetd.conf /usr/openwin daemons)


    [ 編輯]

    如何mount上文件系統為FAT32/PCFS/DOS的硬盤

    先創建加載點,這個目錄將用于加載后加載系統的主目錄。

    # mkdir /mount-point
    # mount -F pcfs [-o rw | ro] /dev/dsk/<device-name>:<logical-drive> /mount-point

    <device-name>是指硬盤的設備名。可以參考format命令的。 在Solaris X86中硬盤的設備名的通常命名方式是含有Controller,Target,Disk和Partition的信息。舉個例子/dev/dsk/c0t0d0p0

    <logical-drive>是指在DOS中硬盤有英文盤符(從c到z)來區別,也可以用數字(從1到24)代表。即C盤對應1,即D盤對應2,依此類推。

    其中參數rw是指read,write,即可讀寫。也可用ro, o;對應只讀,

    給出兩個例子

    # mount -F pcfs /dev/dsk/c0t0d0p0:c /pcfs/c
    # mount -F pcfs -o ro /dev/dsk/c0t0d0p0:2 /mnt

    檢查是否成功mount,可以同過mount命令直接得到所有加載的系統

    # mount

    unmount該文件系統,則用命令umount /mount-point
    系統關機時,會自動umount該文件系統。所以系統再次啟動后,需要通過mount再次加載。不過我們可以讓系統自動加載,自動加載的定義文件:/etc/vfstab 加入相應的紀錄,例如

    /dev/dsk/c0d0p2:c /dev/rdsk/c0d0p2:c /wind pcfs 2 yes -

    第一項說明要加載的硬盤設備名。第二項說明相應的硬盤裸設備名,用于fsck使用。第三項說明加載點目錄。第四項說明文件系統的類型。第五項用于fsck的參數。第六項說明是否在啟動時候加載。最后一項定義系統mount加載時候的參數。


    [ 編輯]

    如何檢查硬盤壞道

    # format

    先選擇硬盤,接著選擇鍵入analyze,然后選擇鍵入read。 或者:

    # iostat -En
    [ 編輯]

    如何刻錄光盤?

    Solaris 自帶的cdrw工具既支持cd刻錄也支持dvd刻錄。常見用法:


    • 從iso文件刻錄。從網上下載的光盤映象文件一般為iso格式.
    # cdrw -i /full-path/xxx.iso
    • 復制光盤:
    # cdrw -c [-m tmpdir] 會提示你換盤的。
    • 刻錄一些目錄文件到CD/DVD:

    這反而成了麻煩事,要創建iso文件:

    # mkisofs -o xxx.iso -J -R /full-path-data/

    建議使用-J -R 選項以同時支持Windows下的長文件名格式(Joliet)和Unix下的長 文件名格式(Rock Ridge). 然后再從iso文件刻錄:

    # cdrw -i /full-path/xxx.iso
    • 抹除CD-RW的內容
    # cdrw -b fast


    [ 編輯]

    如何制作光盤鏡像iso文件?

    這反而成了麻煩事,要創建iso文件:

    # mkisofs -o xxx.iso -J -R /full-path-data/

    建議使用-J -R 選項以同時支持Windows下的長文件名格式(Joliet)和Unix下的長 文件名格式(Rock Ridge). 然后再從iso文件刻錄:

    # cdrw -i /full-path/xxx.iso


    [ 編輯]

    如何虛擬光驅,讀取iso中的文件

    # lofiadm -a xxx.iso

    在系統目錄/dev/lofi/中會自動多出一個目錄(累計)。然后使用mount命令將給目錄映射到一個本地目錄,比如/mnt
    # mount -F hsfs /dev/lofi/1 /mnt


    [ 編輯]

    重裝 Windows后Grub失效,如何重新安裝Grub

    [S10u1]: 在同一臺X86機器上即安裝了Solaris 1/06, 又安裝了Windows,并且使用 Solaris的Grub作為引導程序。 由于某些原因不得不重裝Windows,會重新覆蓋 MBR,導致Grub不能使用,不能直接啟動Solaris。 我們只需要 Solaris 1/06的第一張CD光盤或者DVD光盤,就可以重新安裝Grub 步驟:

    1 設置機器并從Solaris 1/06光盤啟動

    2 在出現Grub界面的時候,按c進入grub命令模式

    3 找到硬盤上已安裝的Solaris系統的


    grub>find /platform/i86pc/multiboot

    (hd0,2,a)

    我們也可以查找另一個文件:find /boot/grub/menu.lst

    4 得到硬盤編號,將它設為root device

    例子里的(hd0,2,a),指的是第1塊硬盤第三個fdisk分區中的第一個slice。

    grub>root(hd0,2,a)

    Filesystem type is ufs, partition type 0x000000bf


    5 指定boot和archive文件,啟動Solaris

    grub>kernel /platform/i86pc/multiboot

    grub>module /platform/i86pc/boot_archive

    grub>boot

    如果記不住這些命令,我們可以借助menu.lst文件,其實這個文件是原grub用于啟動的菜單,并含有這些啟動命令,可供我們參考。 一般這個文件的位置在/boot/grub/menu.lst,我們可以使用cat顯示內容。 grub>cat /boot/grub/menu.lst


    6 進入Solaris后,使用root身份安裝grub

    # /usr/sbin/installgrub -m /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c0d0s0

    其中c0d0s0是指一塊硬盤,該命令會將Grub文件安裝到該硬盤的MBR。


    [ 編輯]

    bootblk損壞,如何修復

    bootblk損壞,系統啟動的時候會報出這樣的錯誤"The file just loaded does not appear to be executable."。

    [S10]: 從光盤啟動,在ok模式下輸入boot cdrom -s

    ok boot cdrom -s

    [S10u1]: 從光盤啟動,選擇6, Single User Shell

    # mount /dev/dsk/c1t0d0s0 /a (將損壞硬盤映射成目錄a, 為了版本問題,必須使用原來根系統里面的bootblk塊)
    # installboot /a/usr/platform/`uname -i`/lib/fs/ufs/bootblk /dev/rdsk/c1t0d0s0


    [ 編輯]

    如何添加用戶

    [S10]' Solaris 10帶有smc的圖形化工具,含有用戶管理。

    # smc

    Solaris也同時提供命令用于用戶管理

    添加組

    # groupadd -g 102 testgroup

    -g,指定組id,102。testgroup是組名。

    添加用戶

    # useradd -g 102 -d /export/home/user1 -s /bin/bash -m user1

    配置用戶密碼:

    # passwd user1


    [ 編輯]

    如何設置Shell環境變量

    Shell設置添加顯示當前值注解
    shNAME=value1
    export NAME
    NAME=value2:$$NAMEset(internal)或者env(exported)如果需要子進程也看到該環境變量,需要使用export
    kshNAME=value1
    export NAME
    NAME=value2:$NAMEset(internal)或者env(exported)如果需要子進程也看到該環境變量,需要使用export
    cshsetenv NAME value1setenv NAME value2:$NAMEset不需要使用export
    bashNAME=value1NAME=value2:$NAMEset或者env不需要使用export


    [ 編輯]

    Shell的配置文件和讀取順序

    前提Shell配置文件1配置文件2配置文件3配置文件4
    Subshell
    (直接輸入sh,ksh,csh,bash命令
    或者su)
    sh????
    ksh????
    csh~/.cshrc ???
    bash~/.bashrc ~/.inputrc/etc/inputrc?
    su -
    telnet
    ssh
    rlogin
    sh/etc/profile ${HOME}/.profile??
    ksh/etc/profile~/.profile ??
    csh~/.cshrc ~/.login ??
    bash~/.bash_profile~/.bash_login/etc/profile~/.profile

    參考Rolf Kersten的Solaris OE Guide for New System Administrators


    [ 編輯]

    如何安裝軟件包軟(Package)?

    安裝#pkgadd -d <pkg絕對路徑名>
    察看#pkginfo #pkgchk #prodreg
    刪除#pkgrm <軟件包pkg名>


    [ 編輯]

    如何打Patch?

    安裝#patchadd
    察看#patchchk #showrev -p
    刪除#patchrm


    [ 編輯]

    如何打開壓縮的文件?

    在solaris下,會有這么幾種格式的軟件:
    1) .gz結尾的文件,用gunzip或者gzip -d來解壓,再用tar來解壓。推薦使用GNU的gtar,/usr/sfw/bin/gtar zxvf。gtar支持長文件名,bug也較少。
    2) .tar結尾的文件,用tar xvf的格式來解壓。推薦使用GNU的gtar,/usr/sfw/bin/gtar xvf。
    3) .zip結尾的文件,用unzip。
    4) .Z結尾的文件,一般用uncompress來解壓。


    [ 編輯]

    如何去掉文本中^M?

    # dos2unix a.txt b.txt,

    dos2unix會去掉a.txt中的^M,生成b.txt文件。


    [ 編輯]

    如何運行Linux下的程序?

    Linux下的程序是不能直接運行,這是由于可執行文件格式不同。解決辦法由大概有下面幾種方法:

    1. 因為Linux的程序大多都是開源的,有很多社區包括Sun公司都提供Solaris平臺下編譯好的軟件包,可以通過google搜索一下。

    2. 直接獲得Linux程序的源文件,在solaris下直接編譯。

    3. 通過軟件虛擬,Sun提供一個lxrun軟件作為中間層,來滿足程序所需的linux的API,該lxrun軟件含在Companion CD中, 也可免費單獨下載:

    http://www.sun.com/software/solaris/freeware/

    4. OpenSolaris的BrandZ技術,通過Solaris的Container技術虛擬Linux,這個已經在OpenSolaris開源,現在這個技術還沒有產品化,不過我們可以試先體驗一下:

    http://www.sun.com/download/products.xml?id=44247cfd

    這里還有一個中文安裝實例 http://blog.gceclub.sun.com.cn/index.php?op=ViewArticle&articleId=943&blogId=520

    5. 通過開源Xen技術:http://xen.sourceforge.net/

    6. 通過CPU模擬器 - QEMU, 可以在Solaris的qemu上安裝Linux: http://www.blastwave.org/packages.php/qemu

    [ 編輯]

    常用軟件使用

    [ 編輯]

    常用軟件下載

    Web瀏覽器:
    Mozilla FireFox: ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/1.5.0.1/contrib/

    郵件客戶端:
    Mozilla Thunderbird: ftp://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/1.5/contrib/

    Acrobat: Solaris下有PDF閱讀器嗎?

    辦公軟件:
    Solaris 10自帶StarOffice 7。也選擇高版本的OpenOffice 2.0,該版本對應于StarOffice 8.0。

    多媒體播放器:
    RealPlayer:http://forms.helixcommunity.org/helix/builds/?category=realplay-stable

    聊天工具:
    gaim

    [ 編輯]

    Solaris軟件下載站點

    Sun Solaris Companion CD

    Sunfreeware

    BlastWave

    Solaris Packages Archive

    [ 編輯]

    應用程序開發

    [ 編輯]

    Solaris下如何安裝gcc編譯器?

    [S10|S11] Solaris10以后,gcc缺省安裝在/usr/sfw/bin目錄下。因此,只需要設置好環境變量即可:

    PATH=/usr/sfw/bin:/usr/ccs/bin:$PATH; export PATH

    [S9] 另外,還可以到大名鼎鼎的sunfreeware或者blastwave.org去直接下載二進制文件來安裝


    [ 編輯]

    Solaris下cc為什么不能用?

    當運行里面的/usr/ucb/cc時,提示“language optional software package not installed”。 那個cc是為了編譯BSD兼容的程序的準備的腳本

    可以直接使用solaris自帶的編譯器:/usr/sfw/bin/gcc

    如果想要其他的版本的gcc可以到Sun的官方站點免費下載http://www.sun.com/software/solaris/freeware/

    Sun Studio 11可以免費下載 http://developers.sun.com/prodtech/cc/products/get.html


    [ 編輯]

    在Solaris下編譯socket程序時發生“符號參照錯誤”提示?

    需要確保頭文件包含正確,并且指定-lsocket選項如下:

    cc [ flag ... ] file ... -lsocket -lnsl [ library ... ]
    #include <sys/types.h>
    #include <sys/socket.h>

    Linux下socket調用是在libc中實現的,因此不需要指定-lsocket;但Solaris下,由于存在兩套socket庫的實現:

    3SOCKET - BSD風格socket庫,大多數GNU/Linux軟件使用這個庫

    3XNET - 標準socket庫

    因此Solaris socket庫并不包含在libc中,需要給鏈接器指定-lsocket參數。


    [ 編輯]

    Python在Solaris下是默認安裝的嗎?

    [S10] Python在含在Solaris 10光盤中,安裝的時候可以選擇是否安裝。

    可以通過以下方式察看是否安裝:

    # pkginfo | grep Python
    GNOME2 SUNWPython The Python interpreter, libraries and utilities
    GNOME2 SUNWPython-devel The Python interpreter, libraries and utilities - develper files - platform dependent, /usr filesystem
    GNOME2 SUNWPython-share The Python interperer, libraries and utilities - platform independent files, /usr/sfw/share


    [ 編輯]

    如何修改文件描述符限制?

    Solaris有兩個參數控制進程可打開的文件描述符:rlim_fd_max,rlim_fd_cur。前者修改是個硬設置,修改需要權限,后者 是個軟設置,用戶可以limit或者setrlimit() 修改,該值最大不能超過前者。一般我們在/etc/system里修改這兩個參數

    set rlim_fd_max = 65535

    set rlim_fd_cur = 65535

    [ 編輯]

    內核和驅動程序開發

    [ 編輯]

    Solaris是微內核操作系統嗎?

    [ 編輯]

    Solaris上有什么樣的內核級調試器?

    [S10|S11]:主要有mdb、kmdb和dtrace。

    Solaris較早版本的內核調試器是adb和kadb。Solaris 8開始,有了mdb,Solaris 10后,kadb被kmdb取代。 除了mdb和kmdb以外,內核開發人員還可以利用強大的dtrace來調試內核。
    mdb和kmdb類似于windows的ICE或者linux的kdb。不同的是,這些都是solaris操作系統自帶,不需要額外安裝。
    有了這些工具,動態觀察內核的狀態、設置斷點,修改內核數據都成為可能。

    [ 編輯]

    哪里可以找到Solaris下的usb驅動程序的開發資料?

    Solaris 下的有USB DDK,具體可以參考下面的地址:

    http://developers.sun.com/solaris/developer/support/driver/usb.html

    站點上面有文檔,還有USB DDK下載地址,還有USB skeleton drivers。

    另外,還有一個介紹ugen的白皮書:

    http://developers.sun.com/solaris/developer/support/driver/docs/usbups_whitepaper.html

    [ 編輯]

    Solaris默認內核棧大小是多少?

    amd64的默認內核棧尺寸是5*PAGESIZE(20k),i386的是2*PAGESIZE(8k),在uts/i86pc/sys/machparam.h中定義;
    sparc的默認內核棧尺寸是3*PAGESIZE(24k),在uts/sun4u/sys/machparam.h中定義;

    [ 編輯]

    OpenSolaris的內核源碼中的assert()函數起什么作用?

    assert()就是斷言函數。

    Solaris內核可以編譯成debug版和非debug版。

    assert()只在debug版起作用,如果assert()返回失敗,系統會強制因為assertion failed而panic,并將內存映象存入crash dump文件。

    這樣程序員可以通過mdb來檢查crash dump文件,來分析問題。

    ?

    總結

    以上是生活随笔為你收集整理的Solaris中文FAQ的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。