======== 問題排解 ======== 目錄: 修復已安裝的 FreeBSD 一般安裝的問題與解答 一般硬體的問題與解答 修復已安裝的 FreeBSD -------------------- FreeBSD 自從 2.2.1 版之後,就已經在開機用的安裝片裡,加入了修復(Fixit) 的選項於主選單中。如同您在製作開機用的軟碟一樣,您如果要使用修復(Fixit) 的選項,您也必須用同樣的方式,將 fixit.flp 的映像檔轉到軟碟片裡,或者您 也可以用 Walnut Creek CDROM's FreeBSD 的二片光碟來取代。 如何去使用修復選項,其實很簡單,您只要按照一般開機的方式,用 boot.flp 所 作出的開機片開機,並且選擇修復(Fixit)選項,並且將所製作好的修復用軟碟片 或者是光碟放入磁碟機中。然後您將進入一個 shell 命令模式 (在 /stand , /mnt2/stand 目錄下) 它將會去檢測並且修復您的系統。大部分的 Unix 管理員都 是確信修復選項是必須經歷的過程。 一般安裝的問題與解答 -------------------- 問:我在安裝完畢 FreeBSD 後,第一次由硬碟開機時,當 kernel 載入且檢測我 的硬體時,出現了一段錯誤訊息: changing root device to wd1s1a panic: cannot mount root 請問我該如何解決? 問:在開機求助選項中,何謂 'bios_drive:interface(unit,partition)kernel_name'? 答:這是一個存在已久的問題,當開機碟並非是系統第一台磁碟機。在 BIOS 裡 頭使用不同的編號設定值對於 FreeBSD 系統。所以 FreeBSD 無法取得正確 的作業用編號。 在這個方面,開機磁碟不是系統的第一顆磁碟,FreeBSD 需要一些協助才能 找到磁碟。有兩種方式去解決這個問題,您需要告訴系統,哪裡可以找到檔 案系統的根。您必須依照 BIOS 的設定值,指定給 FreeBSD 系統。 第一種狀況,您有兩顆硬碟,但是您的 FreeBSD 系統是在第二顆上,您希望 由第二顆磁碟開機,在 BIOS 觀點看這兩顆硬碟分別是 disk 0 跟 disk 1, 在 FreeBSD 觀點來看就是 wd0 跟 wd2。 如果 FreeBSD 在 BIOS 設定中的 disk 1,那在 FreeBSD 磁碟機 'wd' 設定 的代號就為 2 設定如下: 1:wd(2,a)kernel 注意,如果您有一個 slave 的磁碟在 primary bus 上,上述的就不需要了 (且會造成錯誤) 第二種狀況,當您有一個以上的 IDE 硬碟搭配 SCSI 硬碟,且您的系統正好 灌在 SCSI 硬碟上。在這種狀況下,FreeBSD 的磁碟編號會低於 BIOS 的磁 碟編號。如果您有兩個磁碟 IDE 與 SCSI 碟,且 SCSI 硬碟在 BIOS 編號為 disk 2,型號 'da',且 FreeBSD 磁碟代號為 0,您需要以下設定: 2:da(0,a)kernel 這將會告訴 FreeBSD,您需要從 BIOS 設定中的 disk 2 開機,也就是那一台 SCSI 硬碟。如果只有一台 IDE 硬碟,可以用 '1:' 取代之。 您可以用一般的文字編輯器來編輯 /boot.config 檔,去將正確的值填入。 它會將您所填寫的值反映在 boot: 提示符號後。 問:在安裝完 FreeBSD 之後的第一次從硬碟開機,但是開機管理員每次提示只有 在開機選單印出 `F?',且開機就不在進行下去了。 答:在安裝 FreeBSD 時,硬碟的 geometry 在分割區編輯器設定不正確。回去 分割區編輯器並設定您硬碟的真實 geometry。您必定要設定好正確的 geometry 然後再次重新安裝 FreeBSD。 如果您在計算正確您機器的 geometry 完全失敗,這有一個小秘訣:安裝 一個小的 DOS 分割區在磁碟的開頭,然後安裝 FreeBSD 在後面。安裝 程式將會看到 DOS 分割區並試著從它推論正確的 geometry,這通常都會 運作。 以下的小秘訣已經不再推薦,但列在下面當作參考: 如果您架設一個真正完整的 FreeBSD 伺服器或工作站,且您不在乎 DOS、Linux 或其它作業系統的相容性,您也可以使用整個磁碟的選項 (在分割區編輯器的 `A'),選擇非標準的 FreeBSD 佔據整個硬碟從第一 個到最後一個部分的選項。這將留下所有 geometry 在旁邊思考,但稍微 的限制是如果您再也不要在這磁碟上執行任何其它除了 FreeBSD。 已知的硬體問題與解答 -------------------- 問:mcd0 保持思考它已經找到一個裝置且它在運作的時候停在我的 Intel EtherExpress 介面卡。 答:使用 UserConfig 工具 (參考 HARDWARE.EXE) 並停用 mcd0 和 mcd1 裝置的 偵測。一般而言,您應該只要離開這個裝置,您將可以在您的核心(kernel) 來啟用。 問:我確定 FreeBSD 是支援 3Com 的 PCMCIA 網路卡,但是我的卡卻無法使用在 我的筆記型電腦上。 答:有很多問題會造成這樣的結果。畢竟,FreeBSD 不是支持 multi-function 介面卡,所以如果您有 combo 乙太網路/魔電介面卡 (例如 3C562), 它將不會運作。對 3C589 的預設裝置卡是恰好像是所有其它 freeBSD 裝置 ,且依賴介面卡本身在 NVRAM 的設定資料儲存來運作。您必須正確的設定 FreeBSD 裝置來配合 IRQ, 埠, 和儲存在 NVRAM 的 IOMEM。 不幸的事,唯一有能力讀取它們的事 3COM 所提供的 DOS 程式。這個程 式必須在絕對乾淨的系統下運作 (沒有其它的裝置正在執行),且這個程式 將會說 CARD-Services 找不到。您要知道 IRQ, 埠, 和 IOMEM 的值 (後面會稱為 CIS tuple by 3COM)。前面的兩個在這個問題中可以設定, 第三個是無法設定的,且只可以被讀。一旦您有這些值,在 UserConfig 中 設定它們,那您的卡就會被辨識出來了。 問:FreeBSD 爭測到我的 PCMCIA 的網路卡,但是卻沒有封包送出。 答:許多的 PCMCIA 網路卡可以同時使用 10Base2 (BNC) 與 10BaseT 的連接 方式,但是,驅動程式卻無法自動偵測出您的連線是哪一種方式,所以您 必須告訴驅動程式您是以何種方式連接。為了可以切換這兩種方式,您可 以設定一個連接的旗標,例如: '-link0 link1' 或是 'link0 -link1' 去選定所要連接的方式。您也可以在 sysinstall 裡頭的 'Extra options to ifconfig:' 選項中設定網路。 問:系統發現我的網路卡 'ed',但是我卻得到裝置逾時(device timeout)的錯誤訊息。 答:您的卡大概和核心(kernel) 設定不同的 IRQ。ed 裝置預設不使用 `spft' 設定 (在 DOS 下使用 EZSETUP 來輸入值),但它將使用軟體設定,如果您在您的核心 (kernel)設定檔中 IRQ 欄位設定成 `?'。 移動卡上的 jumper 來做硬體設定(如果需要改變核心設定),或設定 IRQ 成為 `-1' 在 UserConfig 或 `?' 在您的核心(kernel)設定檔。這將會告訴核心使 用軟體設定。 另一個可能是您的卡是 IRQ 9,被 IRQ 2 所分享且頻繁的造成問題 (特別地當您 有 VGA 卡使用 IRQ 2! :)。您應該盡可能的不要使用 IRQ 2 或 9。 問:我有一台 Matsushita/Panasonic 光碟機無法驅動。 答:確認在主機介面卡上 I/O 埠的 matcd 驅動程式設定是否正確。 (有些 SoundBlaster DOS 驅動程式回報一個硬體 I/O 埠位置給 CD-ROM 介面 比它真正的值少 0x10。) 如果您無法透過計算主機板或文件決定設定值,您可以使用 UserConfig 來 改變 'port' 位置 (I/O port) 成為 -1 並開始系統。這個設定值造成這個 裝置去尋找一個 I/O ports 數值,不同的廠商使用它們的 Matsushita/Panasonic/Creative CD-ROM 介面。 一但裝置確定位置的地點,您應該再執行 UserConfig 並設定正確的位置。 離開 'port' 參數設定為 -1 會增加系統開機所花的總時間,且可能干擾其 它的裝置。 double-speed Matsushita CR-562 和 CR-563 是唯一支援的裝置。 問:我用軟碟安碟開機片來安裝 FreeBSD 到我的 IBM ThinkPad (tm) 筆記 型電腦上,但是我的鍵盤按鍵對應都混亂了。 答:比較早期的 IBM 筆記型電腦是不是使用標準型的鍵盤控制,所以您必須 告訴鍵盤的驅動程式(atkbd0)去指定特殊的模式給 ThinkPads 來使用。 試著在 UserConfig 裡改變 atkbd0 的 'Flag' 設定成 0x4。 (在"輸入選單"的keyboard選項) 問:當我用安裝軟碟開機,我看到以下的訊息且我無法從鍵盤輸入任何東西。 Keyboard: no 答:可能是空間不足,沒有在開機磁區完整支援舊的 XT/AT (84-key) 鍵盤。 某些筆記型電腦或許是這些類型的鍵盤。如果您還是使用這類型的硬體, 您將會看到上述的訊息出現,當您從光碟或是安裝磁片開機時。 一當您看到這訊息,按下空白鍵,您將會看到這個提示: >> FreeBSD/i386 BOOT Default: x:xx(x,x)/boot/loader boot: 然後按下 `-Dh',然後事情應該就會正常的進行。 問:我安裝了一台 Matsushita/Panasonic CR-522 光碟機,搭配 Matsushita/Panasonic CR-523 或是 TEAC CD55a 的光碟機,但是它卻 無法設定正確的 I/O 埠。 答:這一台 CD-ROM 目前是無法支援 FreeBSD.這個裝置的指令集也無法符合 兩倍速的 CR-562 與 CR-563。一倍速的 CR-522 與 CR-523 可以被 CD-caddy 來辨認。 問:我嘗試從磁帶機安裝,但是我卻得到以下的錯誤訊息: sa0(aha0:1:0) NOT READY csi 40,0,0,0 答:sysinstall 對於磁帶機的支援是有限制的,有些時候磁帶機是無法被偵 測到,請重複嘗試幾次看看。 問:我已經安裝 FreeBSD,但是由硬碟開機時候,卻當掉且出現以下訊息: ``Changing root to /dev/da0a'' 答:這個問題也許是發生在使用 3Com 的 3c509 乙太網路卡上。這個 ep0 裝 置的驅動程式將會被辨識成其它的裝置,且會使用到錯誤的 I/O 位置 0x300。請重新開機,當出現 Boot: 的提示符號下輸入 -c。您將可以進入 UserConfig 畫面,使用 disable 指令去停止所有其它的裝置,除了 ep0 與位置 0x300 的。當您離開時,系統便能正常啟動。 問:我的系統在開機的時候當在 "fd0:" (我的軟碟機的代號) 答:這不是真的停住了,只是非常長時間的偵測 "wdc0" (通常不是 WD 控制器) 。有耐心一點,您的系統將會開機完成!要排除這個問題,在開機時使用 -c 旗標和排除 wdc0 裝置或是重新編譯核心。 問:我的系統無法偵測到我的 Intel EtherExpress 16 網路卡。 答:您必須使用 Intel 所提供的 softset.exe 設定程式,將您的 Intel EtherExpress 16 網路卡的記憶體對應位置 0xD0000,大約是對應 32K 的記憶體大小。 問:在 EISA HP Netserver 下,無法偵測 onboard 的 AIC-7xxx 的 SCSI 控制卡 答:這是一個已知的問題,而且希望能在未來能夠被修正。為了要讓您的系統安裝 ,開機時使用 -c 選項進入 UserConfig,但是不要使用漂亮的視覺模式, 而使用舊的 CLO 文字模式。 鍵入 eisa 12 quit 在提示符號。 (除了 `quit',您也可以使用 `visual',然後在視覺模式設定 下狀態繼續休息。) 直到它建議去編譯一個自訂的核心(kernel), dset(8) 現在也懂得去儲存這些值。 參考 FAQ 主題 3.16 可以得到這個問題的說明,和如何繼續。記住您可以找到 FAQ 在您的本地系統的 /usr/share/doc/FAQ,架如您有安裝 `doc' 發行版本。 問:我有一台 Panasonic AL-N1 或是 Rios Chandler Pentium 機器,但是每 當我要安裝時候,它一定會當掉。 答:由於某些理由,您的機器不同於新款的 i586_copyout 與 i586_copyin 的。 於是它會在您要進入第一層的 UserConfig 選單前就會當掉.於是使用命令列 的方式 (專家模式 "expert mode") 打入以下指令: flags npx0 1 將會順利的開機,這個指令將會被儲存起來,所以您只需作一次這樣的動作。 問:我無法使用 CMD640 IDE 的控制卡。 答:的確,目前 'wdc' 不支援該項控制卡。 問:我想把 FreeBSD 安裝在 Compaq Aero 筆記型電腦執中,但是我使用軟碟 安裝時,卻告訴我 "No floppy devices found! Please check ..." (沒有軟碟機,請檢查) 答:Compaq 總是和其它系統有一點點不同,在 Aero 比必行電腦的 CMOS RAM 中,它們沒有公告它們的軟碟裝置。因此軟碟裝置假定沒有已經設定好的 裝置。去 UserConfig 螢幕,然後設定 fdc0 裝置的 Flags 值為 0x1。 這樣會假裝存在第一個軟碟裝置 (當作是 1.44MB 裝置) 而根本不會去詢 問 CMOS。 答:在 Compaq Aero 筆記型電腦與其它廠牌的不同地方,就是它們在 CMOS 裡頭並沒有紀錄是否有軟碟機,所以系統無法正確的偵測到軟碟機的存在, 您可以到 問:當我要用我的 Intel AL440LX ("Atlanta") 為基礎的系統從硬碟第一次開機 ,它停在一個 "Read Error" 的訊息。 答:在某些主機板上出現一個 BIOS 臭蟲,這個臭蟲原因是 FreeBSD 開機讀取器 認為它是從軟碟機開機的。 如果您不是使用 BootEasy 開機管理員的話,這是唯一的問題。Slice 這磁 碟成為 '相容性' 模式且在 FreeBSD 安裝時安裝 BootEasy 來避免這個臭蟲 ,或是升級 BIOS (觀看 Intel 的網站可以得到更詳細的資料)。 問:當我安裝到 Dell Poweredge XE 機器上,Dell 所提供的 RAID 控制器 DSA (Dell SCSI Array) 是無法被偵測到。 答:使用 EISA 設定工具來設定 DSA 用 AHA-1540 模擬器。在 FreeBSD 偵測 DSA 為 AHA-1540 SCSI 控制器卡,使用 irq 11 和 port 340。在模擬狀 態下,系統將會使用 DSA RAID 磁碟,但您不能使用 DSA 特定的特點像 觀看 RAID 健康。 問:我的乙太網路卡是被偵測為 AMD PCnet-FAST (或更小),但卻沒有正常運 作。(例如:在 IBM Netfinity 5xxx or 7xxx 的 onboard 乙太網路) 答:'lnc' 裝置目前是不完美的,且將會常常在 PCnet-FAST 和 PCnet-FAST+ 下不是正確工作。您需要安裝一個不同的乙太網路卡。 問:我有一張 IBM EtherJet PCI 卡,它被正確的偵測為 'fxp' 裝置, 但是 在卡上的燈號不會亮且它不能連上網路。 答:我們不清楚為何會發生這樣的事情。IBM 也不知道(我們有問過它們)。 這張卡是一張標準的 Intel EtherExpress Pro/100 且有著 IBM 標籤在上 面,且這些卡通常都會運作的很正常。您可能只會再一些 IBM Netfinity 伺服器上看到這些症狀。這唯一的解答是去安裝不同的乙太網路卡。 問:使用 IBM Netfinity 3500 主機時,當我設定網路設定,系統卻掛點。 答:在 Netfinity 3500 系統上存在著 onboard 乙太網路的問題,使我們無法 去辨識它。或許是多處理器(SMP)的關係,使得系統設定有問題。您可以安 裝另外一張乙太網路卡避免去安裝到 onboard 的乙太網路。 問:當我透過驅動程式去驅動 Mylex PCI RAID 控制,系統會發生錯誤並且重 新開機 (有 "read error" 的錯誤訊息) 答:在 Mylex 驅動程式中有一個 bug,是當您在 BIOS 裡頭去設定 8GB 的 geometry 模式請使用 2GB 的模式來取代。 問:我使用 Realtek 的網路卡,來架設我的 FTP 站台,且安裝程式也正確偵測 到我的網路卡,但是當要 FTP 檔案的時候,竟然傳輸速度是無比的龜慢 (大約每秒 3K) 答:RealTek 8139 與 8129 的 10/100M 網路卡,是使用 NWAY 的協定去自動偵 測網路的速率與全/半雙工設定,但是很不幸的,是不支援舊式 10BaseT 的 乙太網路集線器(HUB),且 NWAY 協定將會用 10BaseT 全雙工來取代 10BaseT 半雙工。如果要解決這個問題,請在 sysinstall 的 "media 10baseT/UTP" 選項中去設定參數。 [ 請將一些硬體方面的小技巧或者是問答集 mail 給 jkh@freebsd.org ]