diff --git a/zh/FAQ/admin.sgml b/zh/FAQ/admin.sgml index e13f733bca..aacc5d0d73 100644 --- a/zh/FAQ/admin.sgml +++ b/zh/FAQ/admin.sgml @@ -1,810 +1,810 @@ - + 系統管理 系統起始設定檔在哪?

從 2.0.5R 到 2.2.1R,主要的設定檔是 /etc/sysconfig。 所有的選項都被定義在這個檔,而其他像 /etc/netstart 只是引用它。

觀察 /etc/sysconfig 這個檔並修正其值以適合你的系統。 這個檔用註解填滿以表示何處該放置什麼設定。

在 2.2.1 和 3.0 以後,/etc/sysconfig 更名為一個更容 易描述的檔名叫 ,並且語法進化成只剩一個位元。/etc/netstart 亦更名為 /etc/rc.network 因此所有的檔案都可以用 /usr/src/etc/rc* /etc 來拷貝。

/etc/rc.local 出現並可以用來啟動額外的本地服務像是 或某些個人選項。

/etc/rc.serial 用來初始化序列埠(像是鎖住埠的特性等)。

/etc/rc.i386 是 Intel 特殊的設定,像是 iBCS2 模擬或是 PC 系統主控台設定。

由 2.1.0R 開始,你也可以在 /etc/sysconfig (或 /etc/rc.conf) 裡指定目錄擁有"本地"起始檔: # Location of local startup files. local_startup=/usr/local/etc/rc.local.d

每個以 假如你想確保某個執行順序又不想改所有的檔名,你可以使用一個簡單 的架構如下,利用事先安排到每個檔名前的數字來確保順序: 10news.sh 15httpd.sh 20ssh.sh

這可能看起來有點醜(或類似 SysV :-)) 但是它提供一個簡單而規律的 架構讓本地加入的套件不須編輯 /etc/rc.local 就能重新排 序。許多的 ports/packages 假設 /usr/local/etc/rc.d 是 本地起始的目錄。 我該如何簡單地加入使用者﹖

使用 指令。

另外也有個套件叫 ``<roberto@FreeBSD.ORG> 詢問它。 目前正在發展階段。

要再次移除使用者,使用 指令。 我該怎麼把新硬碟加入 FreeBSD 系統中﹖

察看 的磁碟格式化指導文件。 我有一個新的可移除裝置,我該怎麼使用﹖

可移除裝置無論是 ZIP 或 EZ(或甚至是軟碟機,如果你要這樣使用 它),或是一個新的硬碟,只要是安裝並由系統重組,而你有磁片匣 /軟碟片/或其他東西可以插入,那這些裝置似乎都是類似功能的東 西。

假如是 ZIP 或軟碟機,你已經在上面有 DOS 檔案系統,可以使用 像這樣的命令: mount -t msdos /dev/fd0c /floppy

如果只是軟碟機,那就這樣: mount -t msdos /dev/sd2s4 /zip

對 ZIP 磁片來說是使用出廠預設值。

其他磁片,用 /stand/sysinstall 察看 如何配置。

接下來這個範例是 ZIP 裝在 sd2,第三個 SCSI 磁碟。

不像軟碟機,或一個你計畫跟其他人分享使用的可移除裝置,用 BSD 檔案系統貫穿它可能是一個比較好的主意。你將擁有長檔名支援 ,至少兩倍以上的效率增進,更高的穩定度。首先,你需要重新製作 DOS 層的分割區/檔案系統。你可以使用 /stand/sysinstall,或對一個你不想支援多重作業系統的 小磁碟,只要把它劃分成整個 FAT 分割表(slices)並用以下 BSD 分 割法: dd if=/dev/zero of=/dev/rsd2 count=2 disklabel -Brw sd2 auto

你可以使用 disklabel 或 /stand/sysinstall 去建立多重 BSD 分割區。無疑的如果你正在硬碟機上增加置換空間(swap space)時 你就需要這麼做,但是在可移除裝置如 ZIP 上這是無意義的。

最後,建立一個新的檔案系統。在 ZIP 裝置上是使用整個磁碟: newfs /dev/rsd2c

並且把它掛上(mount): mount /dev/sd2c /zip

加上下面這一行可能是一個好主意,你以後就只 要打"mount /zip" : /dev/sd2c /zip ffs rw,noauto 0 0 我該怎麼掛上次要的 DOS 分割區﹖

次要 DOS 分割區是在所有主要分割區之後被找到,舉例,如果你有一個 "E" 分割區在第二個 SCSI 裝置的第二個 DOS 分割區,你需要在 /dev 下 建立 "slice 5" 的特殊檔案,然後掛上 /dev/sd1s5: # cd /dev # ./MAKEDEV sd1s5 # mount -t msdos /dev/sd1s5 /dos/e 我可以在 FreeBSD 下掛上其他異質性檔案系統嗎﹖

有更多資訊。

提供任何這個主題的其他資訊將被重視。 我該如何使用 NT loader 來啟動 FreeBSD﹖

最普遍的想法是把你的 native FreeBSD root 分割區 的第一個磁區拷貝到 DOS/NT 分割區裡的一個檔案內。假設 你命名它:c:\bootsect.bsd (由 c:\bootsect.dos 授意而來),接著你可以編輯 c:\boot.ini 檔案內容如下: [boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows NT" C:\BOOTSECT.BSD="FreeBSD" C:\="DOS"

此程序假設 DOS,NT,FreeBSD,或其他作業系統已經被安裝在 掛上一個 DOS 格式化的軟碟(假如你已經轉換到 NTFS)或 FAT 分割區 到 /mnt dd if=/dev/rsd0a of=/mnt/bootsect.bsd bs=512 count=1

重新開機進入 DOS 或 NT。NTFS 使用者把 attrib -s -r c:\boot.ini

編輯並從 attrib -r -s c:\boot.ini

如果 FreeBSD 是由 MBR 啟動,在你重新設定從哪個原生分割區啟動後 用 DOS 的的 `` 我該怎麼用 LILO 啟動 FreeBSD 和 Linux﹖

如果你在同一個磁碟機裡有 FreeBSD 和 Linux,只要跟隨 LILO 的安 裝指令,從一個非 Linux 作業系統啟動。簡略說明如下:

啟動 Linux,並在 /etc/lilo.conf 中加入以下幾行: other=/dev/hda2 table=/dev/hda label=FreeBSD (上面是假設你的 FreeBSD slice 在 Linux 是 /dev/hda2;請 配合自己的設定)。然後,用 root 執行 lilo 應該就完成了。

假如 FreeBSD 在另外一個磁碟,你必須在 LILO 選項中加入 ``loader=/boot/chain.b'',舉例: other=/dev/sdb4 table=/dev/sdb loader=/boot/chain.b label=FreeBSD

某些情形你必須指定 BIOS 磁碟代號給 FreeBSD 啟動載入程式以能從第 二磁碟成功的啟動。舉例,假如你的 FreeBSD SCSI 磁碟在 BIOS 中偵測 是 BIOS disk 1,那在 FreeBSD 啟動載入程式的提示號出現時你必須指 定: Boot: 1:sd(0,a)/kernel

在 FreeBSD 2.2.5 和之後的版本,你可以設定 這樣每次啟動時就會自動幫你執行。

是 FreeBSD 和 Linux 共用操作的良好 參考文件。 我怎麼使用 BootEasy 來啟動 FreeBSD 和 Linux﹖

在你的 Linux 啟動分割區安裝 LILO 取代主要啟動資料(Master Boot Record)。接著你可以從 BootEasy 啟動 LILO。

假如你正在執行 Windows-95 和 Linux,這是一個建議方法:要更簡單的 從 Linux 再次啟動在於你是否應該重新安裝 Windows95(這是一個善妒 的作業系統,它壓迫不讓其他作業系統存在於主要啟動記錄內)。 一個所謂``危險奉獻''的磁碟有害嗎﹖

現在,這是某些常見情形,人們只有 PC 的使用背景。更多本來曾使用 Unix 又想把機器設定只執行 FreeBSD 的人,大多會用傳統 Unix 的方 法讓一個作業系統佔據整個磁碟,從最開頭的第一個磁區到最後一個。 一個真實的 fdisk table 並在這個情形中並沒有實質功用,機器上一天 24 小時,每週七天無時不刻地都在執行 FreeBSD,甚至沒有啟動其他作 業系統。因此,如果你在 sysinstall 的 fdsik 編輯器裡選擇 ``A)ll FreeBSD'',並用 ``No'' 回答下一個問題,你就是在這種模式中 。值得注意的是這代表 BSD bootstrap 也由這台磁碟機的 MBR 所產生, 因此沒有留下空間給其他像是啟動管理員的程式。不要試著去安裝它,不 然你會把 BSD bootsrtap 弄壞了。

因此為何叫它``危險的''﹖一個處於這種模式的磁碟機不包含將被正 常 PC 公用程式視為有效的 fdisk table。依循它們被設計的模式,只 要它們在這樣一個磁碟機中一旦被觸及可能就會產生錯誤的提示,或更 糟糕的,可能未經提示或通知你就把 FreeBSD bootstrap 弄壞。一些在 PC 上廣泛使用的作業系統就有這種 ``使用者不友善性'' 的存在(當然 ,它們稱之為``使用者的友善性'')。至少已知在 HP Netservers 上的 Award BIOS(它並不是唯一的特例)就是會忽略任何它認為沒有有效 fdisk 列表的硬碟。這導致它啟動時,簡略的忽略過這樣一個磁碟裝置, 切換到軟碟機,然後只是跟你吐著``讀取錯誤''的訊息。很讓人印象深 刻吧﹖或許他們也叫這為``使用者友善性'',誰知道﹖

這種模式的好處是:FreeBSD 擁有整個磁碟,不需要因為 1980 年代 簡略的分割模式強迫一些人造而現在看起來無意義的限制在這些分割該 怎麼被完成,浪費好幾個虛擬的``磁軌''。這些限制時常導致可能變成 PC 的 OS 安裝過程中最大的頭痛,幾何學錯誤的搭配這兩個差異的爭 論結果,是在 fdisk 列表中儲存分割資訊時過剩的方法。請查閱 。 在``完全奉獻''的模式下,BSD bootstrap 從磁區 0 開始,這是唯一 能轉換同一個 C/H/S 值的磁區,不管你的 BIOS 如何``轉換''你的磁 碟。因此,你也可以在系統/控制器之間以一種不同的轉換架構置換磁 碟,而不須承擔失敗後磁碟機再也不會啟動的風險。

要把``危險奉獻''的磁碟回復到正常 PC 使用,基本上有兩個選擇。 第一個是你把足夠的 NULL 位元組寫入 MBR 確保任何隨後的安裝程 式相信這只是一個空白的磁碟。舉例來說你可以這樣做: dd if=/dev/zero of=/dev/rsd0 count=15

或是採用另外一個,非正式的 DOS ``特色'': fdisk /mbr

這將會安裝一個全新的主要啟動記錄,因此會破壞 BSD bootstrap。 我如何能加入更多的置換空間﹖

最好的方法是增加你置換分割區的大小,或利用這個方便理由的好處去 增加另一個硬碟。

在分散的磁碟上增加置換空間會比單純地在同一個磁碟加入置換空間 讓效率來的快一點。舉一個例子來說,如果你正在一個磁碟裡編譯來 源程式,而置換空間在另一個磁碟,這會比置換空間跟編譯程式都在 同一個磁碟時來得快。這對 SCSI 磁碟機特別正確。

IDE 磁碟並不允許同時在同一通道理存取兩個裝置(FreeBSD 不支援 mode 4,因此所有的 IDE 磁碟 I/O 是``可程式化的'')。然而我仍 會建議你把置換空間放在分別的磁碟。磁碟機這麼便宜,實在沒什麼 好擔心的。

把你的置換檔放在 NFS 實在是一個很爛的主意,除非你正在一個非常 快速的網路環境下執行,還要有一個很好的伺服器。

這裡有個範例是用 64MB vn-swap (/usr/swap0,當然你能用 任何你想用的名字)。

確定你的核心程式建立時有包含以下這行: pseudo-device vn 1 #Vnode driver (turns a file into a device)

在你的設定檔中。GENERIC 這個核心已經包含這項了。 建立一個 vn-device cd /dev sh ./MAKEDEV vn0 建立一個置換檔 (/usr/swap0) dd if=/dev/zero of=/usr/swap0 bs=1024k count=64 /etc/rc.conf 中啟動置換檔 swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired. 重新開機。

要馬上啟動置換檔,鍵入: vnconfig -ce /dev/vn0c /usr/swap0 swap 我不會設定我的印表機。

請參閱 Handbook 裡有關列印的部份。這應該能解決你大部分的問題,請看 我系統上的鍵盤配置錯了。

kbdcontrol 程式有一個選項可以讀取鍵盤配置檔案。在 /usr/share/syscons/keymaps 有一些配置檔。選擇一個跟你的 相關的並讀取它。 kbdcontrol -l uk.iso

/usr/share/syscons/keymaps 所斷定。

可以從 /etc/sysconfig (或 ) 來設定,請看此檔裡適合的註解。

在 2.0.5R 及其之後的版本,所有跟文字字型,鍵盤對應相關的設定都在 /usr/share/examples/syscons

以下是目前支援的對應設定: Belgian ISO-8859-1 Brazilian 275 keyboard Codepage 850 Brazilian 275 keyboard ISO-8859-1 Danish Codepage 865 Danish ISO-8859-1 French ISO-8859-1 German Codepage 850 German ISO-8859-1 Italian ISO-8859-1 Japanese 106 Japanese 106x Latin American Norwegian ISO-8859-1 Polish ISO-8859-2 (programmer's) Russian Codepage 866 (alternative) Russian koi8-r (shift) Russian koi8-r Spanish ISO-8859-1 Swedish Codepage 850 Swedish ISO-8859-1 Swiss-German ISO-8859-1 United Kingdom Codepage 850 United Kingdom ISO-8859-1 United States of America ISO-8859-1 United States of America dvorak United States of America dvorakx 我無法讓 user quotas 正常工作。

不要在 '/' 打開 quotas, 把 quotas 檔放在它必須強迫置入的檔案系統內,舉例: FS QUOTA FILE /usr /usr/admin/quotas /home /home/admin/quotas ... 我的 ccd 有何不妥﹖

這種情形的徵兆是: # ccdconfig -C ccdconfig: ioctl (CCDIOCSET): /dev/ccd0c: Inappropriate file type or format #

通常這會發生在你嘗試要連結 `c' 分割區,這內定的型別是 ``無法使用的'' 。ccd 磁碟需要的基礎分割區型別為 FS_BSDFFS,編輯你要試著連結的磁碟 標記並更改分割區的型別為`4.2BSD'。 為何我不能編輯我 ccd 的磁碟標記﹖

這種情形的徵兆是: # disklabel ccd0 (這裡印出某些明顯的資料,所以試著編輯它) # disklabel -e ccd0 (編輯,儲存,然後離開) disklabel: ioctl DIOCWDINFO: No disk label on disk; use "disklabel -r" to install initial label #

這是因為由 ccd 傳回的磁碟標記事實上是一個``假的''而沒有真正在磁碟 上。你可以把它完全寫入來解決這個問題,像這樣: # disklabel ccd0 > /tmp/disklabel.tmp # disklabel -Rr ccd0 /tmp/disklabel.tmp # disklabel -e ccd0 (this will work now) FreeBSD 支援 System V IPC 格式指令集?

是的,FreeBSD 支援 System V-格式 IPC。這包括共享記憶體,訊息跟 信號。你需要在你的核心設定檔內加入下列幾行以啟動它們。 options SYSVSHM options "SHMMAXPGS=64" # 256Kb of sharable memory options SYSVSEM # enable for semaphores options SYSVMSG # enable for messaging

重新編譯並安裝。

我該如何使用 sendmail 透過 UUCP 來遞送郵件?

跟隨 FreeBSD 套裝而來的 sendmail 設定是適合那些直接連上網際網路 的的站台。那些想透過 UUCP 交換它們郵件的站台必須另外安裝 sendmil 的設定檔案。

手動修改 /etc/sendmail.cf 是絕對必要的。第 8 版的 sendmail 提供一個全新的入口以透過一些像 的處理就能 產生設定檔,這事實上是一個高層概念等級的技巧性設定。你應該可以在以 下檔案裡使用它: /usr/src/usr.sbin/sendmail/cf

假如你不是用完整的來源程式安裝系統,那麼 sendmail 設定項目可能已 經分散成好幾個來源分布檔在等著你,假設你已經掛上光碟機,做以下動作: cd /usr/src tar -xvzf /cdrom/dists/src/ssmailcf.aa

別驚慌,這只有數十萬個位元組的大小。在 cf 目錄裡的 README 可以提供一個 m4 設定法的基本介紹。

以 UUCP 遞送來說,建議你最好使用 mailertable 特點。 建構一個資料庫讓 sendmail 可以使用它自己的路徑決策。

首先,你必須建立自己的 .mc 檔。 /usr/src/usr.sbin/sendmail/cf/cf 目錄是這些檔案的家。 首先,已經有好幾個範例檔,假設你已經命名自己的檔叫 foo.mc,你要做的只是把它轉換成一個有效的 sendmail.cf cd /usr/src/usr.sbin/sendmail/cf/cf make foo.cf cp foo.cf /etc/sendmail.cf

一個典型的 .mc 檔看起來可能像這樣: include(`../m4/cf.m4') VERSIONID(`Your version number') OSTYPE(bsd4.4) FEATURE(nodns) FEATURE(nocanonify) FEATURE(mailertable) define(`UUCP_RELAY', your.uucp.relay) define(`UUCP_MAX_SIZE', 200000) MAILER(local) MAILER(smtp) MAILER(uucp) Cw your.alias.host.name Cw youruucpnodename.UUCP

nodnsnocanonify 特性將避免任何在遞送郵件 時會用到 DNS 的機會。UUCP_RELAY 項目的出現理由很奇怪, 就不要為何了。簡單的放入一個網際網路上可以處理 .UUCP 虛擬網域位址 的主機名稱;通常,你只需要在這裡填入你 ISP 的信件回覆處 (mail replay)。

你已經做到這裡了,你還需要這個叫 /etc/mailertable 的檔案 。一個典型的範例如下: # # makemap hash /etc/mailertable.db < /etc/mailertable # horus.interface-business.de uucp-dom:horus .interface-business.de uucp-dom:if-bus interface-business.de uucp-dom:if-bus .heep.sax.de smtp8:%1 horus.UUCP uucp-dom:horus if-bus.UUCP uucp-dom:if-bus . uucp-dom:sax

如你所見,這是某個活生生檔案裡的一部份。首三行處理網域定址信件 不應該被送出到內定路徑,而由某些 UUCP 鄰居(UUCP neighbor)取代, 這是為了``縮短''遞送的路徑。下一行處理到本地乙太網路網域的信件 讓它可以使用 SMTP。最後,UUCP 鄰居提到 .UUCP 虛擬網域的記載, 允許一個``uucp-neighbor!recipient''推翻內定規則。最後一行則以一 個單獨的句點做結束,以 UUCP 遞送到提供當你全世界性郵件閘門的 UUCP 鄰居。所有在 uucp-dom: 關鍵字裡的節點名稱必須都是 有效的 UUCP 鄰居,你可以用 uuname 命令去確認。

提醒你這個檔案在使用前必須被轉換成 DBM 資料庫檔案,最好在 mailertable 最上面用註解寫出命令列來完成這個工作。當你每次更換你 的 mailertable 後你總是需要執行這個命令。

最後提示:如果你不確定某些特定的信件路徑可用,記得把 -bt 選項加到 sendmail。這會將 sendmail 啟動在 address test mode ;只要按下 ``0'',接著輸入你希望測試的信件路徑位址。最後一行告訴你使 用內部的信件代理程式,代理程式的會通知目的主機,以及(可能轉換的)位址 。要離開此模式請按 Control-D。 j@uriah 191% sendmail -bt ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter

> 0 foo@interface-business.de rewrite: ruleset 0 input: foo @ interface-business . de ... rewrite: ruleset 0 returns: $# uucp-dom $@ if-bus $: foo \ < @ interface-business . de > > ^D j@uriah 192% 當我用撥接連上網路時該怎麼設定信件遞送?

如果你已經有一個固定的 IP 數字,你不需要調整任何內定值。設好 你要指定的網路名稱,其他的 sendmail 都會幫你做完。

如果你拿到的是動態配置的 IP 數字而使用撥接 為了從你的信箱接收信件,你將需要安裝取信程式以便從信箱取回信件。 /etc/ppp/ppp.linkup 裡面 設定以下幾項: MYADDR: !bg su user -c fetchmail

我假設你在 poll myISP.com protocol pop3 fetchall pass MySecret;

無須贅言,這個檔除了 為了在寄信時有正確的抬頭 以下的 VERSIONID(`bsd.home.mc version 1.0') OSTYPE(bsd4.4)dnl FEATURE(nouucp)dnl MAILER(local)dnl MAILER(smtp)dnl Cwlocalhost Cwbsd.home MASQUERADE_AS(`myISP.com')dnl FEATURE(allmasquerade)dnl FEATURE(masquerade_envelope)dnl FEATURE(nocanonify)dnl FEATURE(nodns)dnl define(SMART_HOST, `relay.myISP.com') Dmbsd.home define(`confDOMAIN_NAME',`bsd.home')dnl define(`confDELIVERY_MODE',`deferred')dnl

如果轉換這個 咦!我忘記 root 的密碼了!

不要驚慌!只要重新啟動系統,在 boot: 提示號打 -s 進入單使用者模式。 在問要使用哪個 shell 時,按下 ENTER。你會看到一個 # 的提示號,輸入 mount -u / 以重新架設你的根檔案系統可供讀/寫。執行 我該怎麼保留讓 Control-Alt-Delete 不能重新啟動系統?

修改你正在使用的主控台鍵盤對應,並且把所有 /usr/share/syscons/keymaps/us.iso.kbd。你可能需要明白的 吩咐 /etc/rc.conf 去讀取這個鍵盤對應以確保更動生效。當 然如果你正在用適合你國籍的鍵盤對應,你應該編輯那一個。 我該怎麼把 DOS 文字檔案重新格式化成 UNIX 的?

簡單地使用這個 perl 命令: perl -i.bak -pe 's/\r\n/\n/g' file ...

file 就是要處理的檔案。這個修改是在內部完成,原始的檔案會儲存成 副檔名為 .bak 的檔案。 我該怎麼用名稱砍掉 process?

使用 為何在 root 的 ACL 時 su 好像有問題?

這個錯誤是因為 Kerberos 分散認證系統。這個問題並不是很嚴重但是令人 厭煩。你可以用 -K 選項去執行 su,或是像下個問題所描述的移除 Kerberos。 - 我該怎麼移除 Kerberos? + 我該怎麼移除 Kerberos?

要從系統裡移除 Kerberos,重裝你正在執行的 release 版本內 bin 分類 。如果你有 CDROM,你可以掛上 cd(假設在 /cdrom)並執行: cd /cdrom/bin ./install.sh 我該怎麼增加系統的虛擬終端機?

如果你有許多 telnet,ssh,X 或是 screen 使用者,你或許會用完虛擬 終端機,這能教你怎麼加更多: 建立並安裝一個新的核心程式並且加入這行到設定檔: pseudo-device pty 256 執行這個命令: # cd /dev # ./MAKEDEV pty{1,2,3,4,5,6,7}

會造出 256 個虛擬終端機的裝置節點。 編輯 /etc/ttys 並加入符合 256 個終端機的行數。它們應 該符合已經存在單項的格式,舉例來說,它們看起來像: ttyqc none network

字母設計的順序是 tty[pqrsPQRS][0-9a-v],使用正規表示式。 用新的核心程式重新啟動電腦就可以了。 diff --git a/zh/FAQ/install.sgml b/zh/FAQ/install.sgml index bcd2cce3af..3ba8d45ae5 100644 --- a/zh/FAQ/install.sgml +++ b/zh/FAQ/install.sgml @@ -1,632 +1,633 @@ - + 安裝 FreeBSD 我該下載哪些檔案以取得 FreeBSD?

通常你只需要一張軟碟映像檔,floppies/boot.flp,把它拷 貝到 1.44MB 軟碟片上然後啟動它,再去下載其他的部份(安裝程序會管 理你的 TCP/IP 連線,以及 tapes,光碟機,軟碟機,DOS 分割區,及 其他只要是安裝過程中需要用到的)。

若你只需要自己下載 distributions(可迅速的由 DOS 檔案系統來安裝) ,以下是我們建議你抓來安裝的 distributions: bin/ manpages/ compat*/ doc/ src/ssys.*

安裝程序的完整指令,以及更多普遍性安裝時會碰到的問題可以在 這裡找到。 救命!啟動的軟碟映像檔無法塞到一片單獨的軟碟片裡!

一張 3.5 英吋(1.44MB)軟碟片可以容納 1474560 位元組的資料。 啟動的映像檔就剛好是這個大小。

在準備啟動軟碟片時常見的錯誤有: 使用 FTP 時沒有使用 binary 模式。

某些 FTP client 軟體它們內定的傳輸模式是 ascii 並且試著更改任何在終端被接收的字元,以符合這個 client 系統本身 。大部分情形下這必然會毀損啟動映像檔,檢查一下你下載的啟動 映像檔大小:如果這不是完全地符合 server 端上的檔 案大小,那麼你的下載程序就有問題。

解決方法:在你連接上 server 但尚未開始下載映像檔之前, 看到 FTP 命令提示號時打 binary使用 DOS 的 copy 命令(或等效的 GUI 工具)來把啟 動映像檔傳送到軟碟片。

類似像 copy 的程式,在啟動映像檔被建立並且直接 開機後並沒有功用。映像檔裡有完整的磁碟內容,磁軌對磁軌,這代 表著你無法用磁片上固定的檔案去取代它。 你必須把它傳送到軟碟片的``raw''上,使用低階化工具(像是 fdimagerawrite),這些在 裡面多有描述。 安裝 FreeBSD 的指令是什麼?

你可以在這裡找到安裝指令。 要執行 FreeBSD 我還需要什麼?

你需要一台 386 或更好的 PC,包含 5MB 或更多的 RAM以及至少 60MB 的磁碟空間。可以僅使用一個低階的 MDA 圖形卡,如果你要執行 X11R6 ,需要 VGA 或更好的視訊卡。

亦參考這個章節 我只有 4MB RAM,那我能安裝 FreeBSD 嗎?

FreeBSD 2.1.7 是最後一個可在 4MB 系統上被安裝的版本。新版的 FreeBSD,像是 2.2,需要至少 5MB 來安裝它在一個全新的系統上。

FreeBSD 的所有版本,包括 3.0,都在 4MB 的記憶體下執行,不過安裝 時不能只用 4MB。如果你想這樣,你可以在安裝時加入額外的記憶體,然 後等系統可以執行後,換回 4MB。或是你可以把你的磁碟機切出一個 4MB 以上置換空間,安裝好系統後再把置換空間砍掉。

FreeBSD 2.1.7 也有不能在 4MB 安裝的情形。正確的說,應該是指 不能在基本的 640kB 加上 3MB 延伸記憶體裡安裝。如果你的主機板 可以重新找回在 640kB 到 1MB 範圍中那些``遺失''的記憶體,那麼 或許你還是可以把 FreeBSD 2.1.7 裝起來。

試著進入你的 BIOS 設定選單並找一個``remap''選像,把它打開。 你或許也該把 ROM shadowing 給關掉。

只在安裝時使用 4MB 可能容易一點,建立一個只有你需要的選項的 核心程式然後就可以用只用 4MB。

你也可以安裝 2.0.5 然後再把你的系統用 2.1.7 安裝程式裡 ``upgrade''的選項升級到 2.1.7 版本。

安裝後如果你建立一個自訂的核心,這將會在 4MB 下執行。曾有 人成功的用 2MB 開機(不過系統幾乎不能用 :-))。 我該怎麼製作自訂的安裝軟碟片?

目前你無法 *只* 製作一個自訂的安裝軟碟片。你必須做出整個全新的 release 系統,這裡面就包括你的安裝軟碟片。某些在 /usr/src/release/floppies/Makefile 裡的程式碼假設能讓 你*只*做出那些軟碟片,但是事實上還不行。

要做出自訂的 release 版本,請遵循 的指令。 我可以在我的 PC 上擁有超過一個以上的作業系統嗎?

請參考 Windows 95 可以跟 FreeBSD 並存嗎?

先安裝 Windows 95,然後再裝 FreeBSD。FreeBSD 的啟動管理員 會接著管理 Win95 和 FreeBSD。假使你第二個才裝 Win95,它將會 問都不問的粗魯地把你的啟動管理員覆寫過去。假如這已經發生, 請看下一節。 Windows 95 把我的啟動管理員殺掉了!我該怎麼把它救回來?

你可以用以下兩種方法之一來重新安裝 FreeBSD 的啟動管理員: 執行 DOS,進入你的 FreeBSD distributions 的 tools/ 目錄 並找到 bootinst.exe。你可以這樣執行它:

bootinst.exe boot.bin

這樣啟動管理員將會再次被安裝。 用 FreeBSD 啟動軟碟片再次開機然後進入 Custom 安裝選單 項目,選擇 Partition,選擇那個包含啟動管理員的磁碟機(大多是 第一個),然後當分割區編輯器(partition editor)出現時,第一件 事(意思就是:不要做任何更改) 先選擇 (W)rite。會出現確認的詢 問,回答 yes,然後當你看到 Boot Manager 的選擇提示時,確定 你選的是"Boot Manager"這項。 這會把啟動管理員重新寫回磁碟裡。跳離安裝選單然後就跟正常情形 一樣重新啟動硬碟。 我可以在一個有壞軌(bad block)的磁碟上進行安裝嗎?

FreeBSD 的 bad block ( 命令) 處理並非 100&percnt 完全(用圖形化來看),而且很不幸我要告 訴你假如你有一個 IDE 或 ESDI 裝置包含大量的 bad blocks,那麼 FreeBSD 可能不適合你!這表示,對其他大多數的 IDE 系統可能有 用,你可能想在放棄前先嘗試看看。

如果你有一個有 bad blocks 的 SCSI 裝置,請看 . 當我啟動安裝軟碟片時,奇怪的事情發生了!

如果你看到奇怪的事情,像是機器停住了或是當你試著從安裝磁片起 動時突然自動重新開機了,這裡有三個問題你該先問問自己:- 你是否使用一個新的,剛格式化過,沒有任何錯誤的軟碟片(可 以是一張全新剛拆封的,而非是那種已經你的床下躺了三年,是雜誌贈 送的封面磁片)? 你是否用 binary 模式下載軟碟映像檔? (不用不好意思,就算是我們之中最好的一個人也曾意外的把 binary 檔用 ASCII 模式下載至少一次!) 如果你正在使用像是 Windows95 或 Windows NT 這幾種新型的 作業系統,你有沒有把系統關機然後啟動到最原始狀態,只有 DOS? 這些 OS 看起來會阻礙那些直接操作硬體的程式,像是建立磁碟的程式 ,只要在 GUI 環境下的 DOS shell 就會導致這個問題。

也有過報告有關 Netscape 會導致下載啟動軟碟的問題,因此如果你 可以,最好使用別種不同的 FTP client 。 救命!我不能從 tape 安裝!

如果你從 tape 安裝 2.1.7,你必須用每個 tar blocksize 是 10 (5120 bytes)建立這個 tape。內定的 tar blocksize 是 20(10240 bytes),然而用這種內定大小建立的 tape 無法用來安裝 2.1.7R; 如果你用這種 tapes,你會看到有關資料記錄區大小過大的抱怨訊 息。 用一條並聯線(PLIP)連接兩台 FreeBSD。

找一條 laplink 線,確定兩邊電腦的核心都支援 lpt 驅動程式。 $ dmesg | grep lp lpt0 at 0x378-0x37f irq 7 on isa lpt0: Interrupt-driven port lp0: TCP/IP capable interface

把 laplink 線插入並聯界面上。

用 root 身分在兩台電腦上設定 lp0 的網路界面參數。舉例,如果 你想用 max 連接 moritz: max <-----> moritz IP Address 10.0.0.1 10.0.0.2 max 端應該這樣開始: # ifconfig lp0 10.0.0.1 10.0.0.2 moritz 則這樣: # ifconfig lp0 10.0.0.2 10.0.0.1

好了!也請你看看 lp(4) 和 lpt(4) 的 manpages。

你也該把這些主機加到 /etc/hosts 裡面。 127.0.0.1 localhost.my.domain localhost 10.0.0.1 max.my.domain max 10.0.0.2 moritz.my.domain moritz

用以下方法檢查是否有正常動作: on max: $ ifconfig lp0 lp0: flags=8851 mtu 1500 inet 10.0.0.1 --> 10.0.0.2 netmask 0xff000000 $ netstat -r Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire moritz max UH 4 127592 lp0 $ ping -c 4 moritz PING moritz (10.0.0.2): 56 data bytes 64 bytes from 10.0.0.2: icmp_seq=0 ttl=255 time=2.774 ms 64 bytes from 10.0.0.2: icmp_seq=1 ttl=255 time=2.530 ms 64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=2.556 ms 64 bytes from 10.0.0.2: icmp_seq=3 ttl=255 time=2.714 ms --- moritz ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms 我可以在我的膝上型電腦用 PLIP(Parallel Line IP)安裝嗎?

用 laplink 並聯線連接兩台電腦以使用這個特性: +----------------------------------------+ |A-name A-End B-End Descr. Port/Bit | +----------------------------------------+ |DATA0 2 15 Data 0/0x01 | |-ERROR 15 2 1/0x08 | +----------------------------------------+ |DATA1 3 13 Data 0/0x02 | |+SLCT 13 3 1/0x10 | +----------------------------------------+ |DATA2 4 12 Data 0/0x04 | |+PE 12 4 1/0x20 | +----------------------------------------+ |DATA3 5 10 Strobe 0/0x08 | |-ACK 10 5 1/0x40 | +----------------------------------------+ |DATA4 6 11 Data 0/0x10 | |BUSY 11 6 1/0x80 | +----------------------------------------+ |GND 18-25 18-25 GND - | +----------------------------------------+

請參考 Mobile Computing 網頁的 我該怎麼使用一個磁碟裝置的幾何(geometry)? +

(一台磁碟的"gromrtry",我們指的是這台磁碟上 cylinders, heads 和 sectors/track 的數目 - 為了方便且稱之為 C/H/S。這是 PC 的 BIOS 用來讀/寫磁碟的依據)。

為了某些理由,這似乎會導致很多困擾。首先,一台 SCSI 裝置的 另外就是所謂的對 SCSI 磁碟機來說,geometry 的使用是依靠啟動控制器來支援 extended translation (這通常稱之為"對>1GB DOS 磁碟機 的支援或"類似的稱呼)。如果不支援,那麼使用 N cylinders,64 heads 和 32 sectors/track,這裡'N'是指磁碟機的 MB 容量。舉例 來說,一個 2GB 的磁碟機應該假設它有 2048 cylinders,64 heads 和 32 sectors/track。

如果它確定如果你不確定以上這個,或是 FreeBSD 在安裝過程中要偵測 geometry 的正確性時失敗了,最簡單的解決方法通常是在磁碟上建立一個小的 DOS 分割區。正確的 geometry 應該能被偵測到(而且如果你不想保留它, 你總是可以在分割區編輯器裡把這個 DOS 分割區移除掉,或是把它留下 來,給程式化網路卡使用或隨你高興怎麼用它)。

另外,有一個免費而有用的公用程式叫 ``tools 子目錄 下或是在大多數的 FreeBSD ftp 站台內可找到),這個程式可用來解 決找出另一作業系統正在使用磁碟機上的哪塊 geometry。然後你就可 以在分割區編輯器裡面輸入它。 當我分割磁碟機實有任何限制嗎﹖

是的。你必須確認你的 root 分割區是在 1024 cylinders 之內,讓 BIOS 可以從其中啟動核心。(注意:這是 PC 的 BIOS 功能限制,而不 是 FreeBSD 的)

對 SCSI 裝置來說,這通常按試著 root 分割區將會處於開始的 1024 MB(或是開始的 4096MB,如果 extended translation 是打開的 - 請 參考前一節)。對 IDE 來說,相關的部份是 504MB。 可以使用磁碟管理程式(disk managers)嗎﹖或是,我有一個巨大的磁碟機!

FreeBSD 認識 Ontrack Disk Manager 並且允許使用它,其他的 disk managers 則不在支援之列。

如果你只想在磁碟機上使用 FreeBSD 那麼你根本不需要 disk manager。 只要把磁碟設定成 BIOS 能抓到的最大空間(通常是 504 megabytes),那麼 FreeBSD 應該就可以算出你事實上擁有多少空間。如果你正使用一個 MFM 控制器來控制的老磁碟,你可能需要明白的告訴 FreeBSD 要使用多少個 cylinders。

如果你想在磁碟上使用 FreeBSD 和另一個作業系統,你可能不需要 disk manager:只要確定 FreeBSD 的啟動分割區跟其他作業系統的 slice 都位於開始的 1024 cylinders 內。如果你相當地小心,一個 20 megabytes 的啟動分割區應該就夠了。 當我啟動 FreeBSD,我看到 ``Missing Operating System''

這是一個典型的情形,有關 FreeBSD 以及 DOS 或其他在磁碟處理的 方法上有衝突的 OS 。你需要 重新安裝 FreeBSD,但是請遵照上面所提到的指令應該就可以了。 我看不到 boot manager 的 'F?' 提示號。

這是前一頁所描述問題的另一個徵兆。你的 BIOS geometry 和 FreeBSD 的 geometry 設定不相同!如果你的控制器或 BIOS 支援 cylinders translation (通常被標示成``>1GB drive support''),試著把這個 設定打開然後重新安裝 FreeBSD。 我有 >16MB RAM。這會導致任何問題嗎﹖

從效能的角度來看,不會。FreeBSD 2.X 內含 bounce buffers,這允許 你的 bus mastering controller 存取超過 16MB。(注意如果你正使用 ISA 裝置這應該是必需的,儘管一個或兩個更早的 EISA 和 VLB 裝置也可 能需要它)。

也請參考 這節,假如你有這麼多記憶體,或假使你使用 Compaq 或是其他能處理 這麼多有用記憶體的機器。 我需要安裝完整的原始程式(sources)嗎﹖

通常是不需要。然而,會強烈建議你最少安裝 ``以外。缺少核心的原始程式,我們的建築架構是設定 成讓你可以從別處如 NFS 來掛上唯獨的原始程式,因此還是可以製 作新的 binaries。(因為 kernel-source 的限制,我們建議你不要 直接把它掛在 /usr/src 下,最好用適合的符號性重複連 結到 source tree 的上層架構。)

線上擁有 sources 並知道如何建立一個系統,將會讓你在升級今後 FreeBSD 的 releases 版本更容易一點。

要實際的選擇 sources 的一個子集合,在你在系統安裝工具的 Distributions 選單時,使用 Custom 選單項目。src/install.sh script 將會把 sources distribution 的部份安裝進去,主要是看 你傳入哪些參數。 我需要建立一個核心嗎﹖

建立一個新的核心在 FreeBSD 安裝過程中是絕對必需的一個步驟。 但新版 releases 帶來一個更友善的核心設定工具指令的好處。在 FreeBSD 啟動提示號(boot:)時,使用 "-c" 旗號你就會進入一個設 定螢幕,這允許你做常見 ISA 卡的設定

仍然建議你最後建立一個核心,只包含你需要的驅動程式,這是為了 節省 RAM,但是對大多數的系統來說這卻不是嚴格的要求。 我不是住在美國,那我可以使用 DES 嗎﹖

如果對你來說使用 DES 格式的加密技術不是絕對需要的,你可以使 用 FreeBSD 的內定加密技術,有因為 DES 加密演算法不能由 US 合法輸出到國外,非 US 使用者不 應該從 US FTP 站台下載這個軟體(然而另外還有個有效的 libcrypt,原始程式基本上由澳洲的 David Burren 寫成。這個程式碼目前在某些非 US FreeBSD mirror 站台上可以找到。這個沒有限制的 libcrypt 原始程式,以及使用它 的 binaries 程式,可以在以下 FTP 站台獲得: ftp://ftp.internat.freebsd.org/pub/FreeBSD ftp://storm.sea.uct.ac.za/pub/FreeBSD ftp://ftp.iqm.unicamp.br/pub/FreeBSD ftp://nic.funet.fi/pub/unix/FreeBSD/eurocrypt

非 US 的 非 US 使用者請勿從 USA 下載任何加密軟體。這會導致站台的管理 者因為被下載的軟體惹上數個法律性的困難。

一個非 US 的 Kerberos distribution 亦正在發展中,現行版本通 可由匿名 FTP braae.ru.ac.za 來獲得。

也有一個 專門用來討論 非 US 加密軟體。欲獲得更多資訊,寄一封內含單獨一行訊息說 ``<majordomo@braae.ru.ac.za>. 啟動軟碟開始讀了可是卻停在``Probing Devices...''螢幕。

如果你安裝了 IDE Zip 或 Jaz 裝置,移除它並重新試一遍。 啟動軟碟片可能會被這些裝置混淆了。當系統安裝好以後你可以再 把它接回來。希望這在之後的 release 版本可以被修正。 當我安裝好重新啟動系統後,我看到``panic: cant mount root'' 的錯誤訊息。

這個錯誤試因為啟動區塊跟核心程式對磁碟裝置的認知不相同。通 這個 錯誤會出現在雙磁碟的 IDE 系統,硬碟排列在 master,或是在分離的 IDE 系統上有單一個磁碟機。當核心指定第二個磁碟控制器的第一個磁碟 機 wd2 時,啟動 block 卻認為系統裝在 wd1(第二個 BIOS 磁碟機)。 在偵測裝置時,核心程式試著把啟動 block 認為的啟動磁碟(wd1) mount 起來,事實上卻是 wd2,所以失敗了。

要修正這個問題,做以下幾種方法之一: 當 Boot: 提示號出現時,輸入: 1:wd(2,a)kernel 然後按 Enter。如果系統開始了,就執行以下命令: echo "1:wd(2,a)kernel" > /boot.config 讓它變成內定的 boot string。 把 FreeBSD 磁碟機移到 primary IDE controller,因此硬碟機是 連續的。 修改有關 wd 設定的行數: controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr disk wd0 at wdc0 drive 0 # disk wd1 at wdc0 drive 1 # comment out this line controller wdc1 at isa? port "IO_WD2" bio irq 15 vector wdintr disk wd1 at wdc1 drive 0 # change from wd2 to wd1 disk wd2 at wdc1 drive 1 # change from wd3 to wd2 安裝新的核心程式。 如果你移動你的磁碟機,並希望把先前的設定恢復,只要把磁碟用預期 的設定置換回來然後重新開機。你的系統應該就能成功的啟動。 記憶體的限制是什麼﹖

對記憶體來說,(理論上)限制是 4 gigabytes。1 gigabytes 已被測試 過;一般你不可能買到可以支援超過這個數目的 i386 PC。 ffs 檔案系統的限制是什麼﹖

對 ffs filesystems 而言,最大理論值限制在 8 terabytes(2G blocks ),或當使用內定 block大小時,限制是 16TB。還有,軟體限制是 1 terabytes,但如果是經過修改的檔案系統上 4 terabytes 是可能(並且 存在)的。

單一 ffs 檔案的大小最大是趨近 1G blocks(4TB) - 假如 block 大小是 4K。 The maximum size of a single ffs file is approximately 1G blocks (4TB) if the block size is 4K. maxfilesize ---------------------------------- 2.2.7 3.0 fs block size -stable -current works should-work ------------- ------- -------- ----- ----------- 4K 4T-1 4T-1 4T-1 4+T 8K 32+G 8T-1 32+G 16T-1 16K 128+G 16T-1 128+G 32T-1 32K 512+G 32T-1 512+G 64T-1 64K 2048+G 64T-1 2048+G 128T-1

當 fs block 大小是 4K,triple indirect block 運作並且所有的事情 都應該以表示成使用 triple indirect block 的最大 fs block 來作限 制(近似於 1K^3 + 1K^2 + 1K),但在 fs block 數目上卻有一個(錯誤) 的 1G-1 限制。對 fs block 數目的限制應該是 2G-1。在 fs block 數目接近 2G-1 時有點錯誤,但當 fs block 大小是 4K 時這個 block 數目是不能達到的。

block 大小如果是 8K 或更大,fs block 數目應該限制在 2G-1,但實 際 fs block 數目卻限制在 1G-1,除了在 -stable 時 triple indirect blocks 是無法達到的,所以最多 fs block 數目的限制可以表示成用 double indirect blocks(近似於(blocksize/4)^2 + (blocksize/4)) ,且在 -current 下超過這個限制可能會導致問題產生。使用正確的 2G-1 block 限制的確會導致問題發生。 我該怎麼在軟碟上放入 1TB 檔案?

我自己就在軟碟片上放好幾個 :-)。檔案的最大容量事實上跟磁碟最大 的容量並沒有密切相關。磁碟的最大容量是 1TB,這是一個檔案大小可 以超過磁碟容量的一個特色。

以下範例會在小小的 root 分割區建立一個使用整個磁碟的 32K 空間 ,大小是 8T-1 的檔案(3 indirect blocks and 1 data block)。dd 指令需要讓 dd 能在一個大檔案下執行。 ttyv0:bde@alphplex:/tmp/q> cat foo df . dd if=/dev/zero of=z bs=1 seek=`echo 2^43 - 2 | bc` count=1 ls -l z du z df . ttyv0:bde@alphplex:/tmp/q> sh foo Filesystem 1024-blocks Used Avail Capacity Mounted on /dev/sd0a 64479 27702 31619 47% / 1+0 records in 1+0 records out 1 bytes transferred in 0.000187 secs (5346 bytes/sec) -rw-r--r-- 1 bde bin 8796093022207 Sep 7 16:04 z 32 z Filesystem 1024-blocks Used Avail Capacity Mounted on /dev/sd0a 64479 27734 31587 47% / ttyv0:bde@alphplex:/tmp/q> exit

Bruce Evans, September 1998 diff --git a/zh/FAQ/misc.sgml b/zh/FAQ/misc.sgml index 3f9ac79e5d..f2a381fc49 100644 --- a/zh/FAQ/misc.sgml +++ b/zh/FAQ/misc.sgml @@ -1,242 +1,242 @@ - + 其它各式各樣的問題 為甚麼 FreeBSD 用的 swap 空間比 Linux 多?

不是這樣的. 如果你的意思是: ``為甚麼我的 swap 看起來滿了?'' 那是因為把東西放在 swap 裡後拿回來的速度會比 pager 經由檔案系 統拿回(未修改)的執行碼快.

事實上, 記憶體中 dirty pages 的量並未減少; clean pages 則在需 要的時後移走. 為甚麼要用(甚麼是) a.out 和 ELF 執行檔格式?

要了解為甚麼 FreeBSD 使用 a.out 格式, 首先你要知道一些 目前 Unix 中使用最廣泛的三種格式:

最早和`古典'的 unix 目的檔格式. 使用一種短而緊密的檔頭, 伴隨一個通常用來辨認格式的魔術數字(參考 有更多細節). 具有三個節區: .text, .data, 和 .bss 加上一個符號表和字串表. COFF

SVR3 目的檔格式. 檔頭包含了一個節區表, 所以可以具備比 .text, .data, .bss 還多的節區. ELF

FreeBSD 藉由一個工具, 把程式需要那種 ABI 的資訊 烙印 取得更多資訊.

FreeBSD 來自 "古典" 陣營, 傳統上都使用 格式, 這是在好幾代的 BSD 中證明可靠的計術. 雖然可以在 FreeBSD 上可以建立以及執行原生的 在 FreeBSD 的狀況中, 我們的共享程式庫機制更接近 SunOS 的 型式, 也就是, 易於使用. 然而, 從 3.0 開始, FreeBSD 正式支援 好吧, 但為甚麼會有這麼多種不同的格式?

在黑暗的過去, 只有簡單的硬體. 簡單的硬體支援小型、簡單的系統. a.out 在簡單的系統上勝任愉快 (PDP-11). 當 unix 移植到其他平台時, a.out 保留了下來, 因為對早期的 Motorola 68K, VAX 之類的架構已經 夠用了.

然後有些硬體工程師覺得讓軟體多做點事, 那 CPU 的電晶體就能少 - 一點而跑的更快. 要在這種新式硬體上工作(現在稱為RISC), 此外, 當程式越來越大兒磁碟(以及主記憶體)相對來說較小時, 共享 程式庫的概念就發展出來了. 虛擬記憶體系統也變得越來越精巧. 當每一 種進步都在 然而, 隨著時間過去, FreeBSD 的 build tools 形成了平行的兩支 (尤其是組譯器和 loader). FreeBSD 這支加進了共享程式庫以及修正 了一些錯誤. GNU 原來撰寫這些程式的人則重寫了這些程式, 並加入了 對於跨平台編譯, 不同格式模組之類的東西更簡單的支援. 許多人想要 做出以 FreeBSD 為目的平台的跨平台編譯器, 不幸的是 FreeBSD 的 as 和 ld 不能做這項工作. 新的 GNU 工具(binutils) 加入了跨平台編譯、 為甚麼 chmod 不會改變符號連結(symlink)的存取權限?

你必須把 `` man pages 以取得更多資訊.

且不要 加任何選項, 並且在 symlink 的結尾加上斜線(``/''). 舉例來說 , 如果 `` chmod 555 foo/

依照結尾的斜線, 會 經過連結 `` 為甚麼帳號

你會認為修改 在 FreeBSD 3.0 以及之後的版本, 帳號的最大長度增加到16個字元, 而那些寫死長度的程式也找出來修正. 影響到系統如此多部份正是直到 3.0 才做修改的原因.

如果你有自信在出問題的時後能自行解決, 你可以用下面的方法讓較早的 版本支援較長的帳號. 修改 /usr/include/utmp.h 中的 UT_NAMESIZE. 你也 必須把 /usr/include/sys/param.h 中的 MAXLOGNAME 改成跟 UT_NAMESIZE 相符. 最後, 如果你是從原始程式建立系統, 別忘了 /usr/include 每次都 會更新! 修改 /usr/src/.. 中適當的檔案.

我能在 FreeBSD 下跑 DOS 程式嗎?

是的, 從 3.0 版開始可以使用已經整合並加強的 BSDI

對 3.0 之前的系統, 在 port 中有一個極佳的工具程式 可以模擬 8088 和足夠的 BIOS 服務以執行 DOS 文字模式程式. 它須要 X Window System (由 XFree86 提供). 甚麼是 ``

意思是 Software Update Protocol, 由 CMU 發展以維持發展的同步. 我們利用他來保持遠端的站台和原始站台同步.

SUP 對頻寬的使用不友善, 而且已放棄了. 目前建議維持原始碼更新的方法是 How cool is FreeBSD?

問: 有人做過 FreeBSD 執行時的溫度測試嗎? 我知道 Linux 比 DOS 涼, 但沒聽人提過 FreeBSD. 似乎很熱.

A. No, but we have done numerous taste tests on blindfolded volunteers who have also had 250 micrograms of LSD-25 administered beforehand. 35% of the volunteers said that FreeBSD tasted sort of orange, whereas Linux tasted like purple haze. Neither group mentioned any particular variances in temperature that I can remember. We eventually had to throw the results of this survey out entirely anyway when we found that too many volunteers were wandering out of the room during the tests, thus skewing the results. I think most of the volunteers are at Apple now, working on their new ``scratch and sniff'' GUI. It's a funny old business we're in!

不開玩笑了, FreeBSD 和 Linux 都使用 `` 誰在我的記憶體插槽中沙沙作響??

問: FreeBSD 編譯核心時有做甚麼 "奇特" 的事讓記譯體沙沙作響嗎? 當編譯時(還有開機時確認軟碟後的短暫時間), 也種似乎來自記憶體插槽 的奇怪聲音.

答; 是的! 在 BSD 的文件中你會常常看到 ``背後靈'', 大部份的人 都不知道那是一種實際存在的精神體 --- 掌控著你的電腦. 你聽到的聲音 是這些背後靈以高音口哨在溝通怎樣做許多的系統管理工作.

如果這些聲音很困擾你, 來自 DOS 的 ``fdisk /mbr'' 就 能擺脫, 但如果有相反的效果也不要驚訝. 事實上, 如果在儀式中聽到 Bill Gates 恐怖的聲音從內建的喇叭傳來, 馬上逃而且不要回頭! 從 BSD 背後靈不平衡的影響中解放, DOS 和 Windows 背後靈通常都能 重新控制整台機器並對你的靈魂詛咒. 如果有選擇, 我想我寧願習慣奇 怪的聲音. MFC 是甚麼意思?

MFC 是 'Merged From -CURRENT' 的縮寫. 使用在 CVS 記錄中以 表示從 CURRENT 中整合進 STABLE 分支的改變. diff --git a/zh_TW.Big5/FAQ/admin.sgml b/zh_TW.Big5/FAQ/admin.sgml index e13f733bca..aacc5d0d73 100644 --- a/zh_TW.Big5/FAQ/admin.sgml +++ b/zh_TW.Big5/FAQ/admin.sgml @@ -1,810 +1,810 @@ - + 系統管理 系統起始設定檔在哪?

從 2.0.5R 到 2.2.1R,主要的設定檔是 /etc/sysconfig。 所有的選項都被定義在這個檔,而其他像 /etc/netstart 只是引用它。

觀察 /etc/sysconfig 這個檔並修正其值以適合你的系統。 這個檔用註解填滿以表示何處該放置什麼設定。

在 2.2.1 和 3.0 以後,/etc/sysconfig 更名為一個更容 易描述的檔名叫 ,並且語法進化成只剩一個位元。/etc/netstart 亦更名為 /etc/rc.network 因此所有的檔案都可以用 /usr/src/etc/rc* /etc 來拷貝。

/etc/rc.local 出現並可以用來啟動額外的本地服務像是 或某些個人選項。

/etc/rc.serial 用來初始化序列埠(像是鎖住埠的特性等)。

/etc/rc.i386 是 Intel 特殊的設定,像是 iBCS2 模擬或是 PC 系統主控台設定。

由 2.1.0R 開始,你也可以在 /etc/sysconfig (或 /etc/rc.conf) 裡指定目錄擁有"本地"起始檔: # Location of local startup files. local_startup=/usr/local/etc/rc.local.d

每個以 假如你想確保某個執行順序又不想改所有的檔名,你可以使用一個簡單 的架構如下,利用事先安排到每個檔名前的數字來確保順序: 10news.sh 15httpd.sh 20ssh.sh

這可能看起來有點醜(或類似 SysV :-)) 但是它提供一個簡單而規律的 架構讓本地加入的套件不須編輯 /etc/rc.local 就能重新排 序。許多的 ports/packages 假設 /usr/local/etc/rc.d 是 本地起始的目錄。 我該如何簡單地加入使用者﹖

使用 指令。

另外也有個套件叫 ``<roberto@FreeBSD.ORG> 詢問它。 目前正在發展階段。

要再次移除使用者,使用 指令。 我該怎麼把新硬碟加入 FreeBSD 系統中﹖

察看 的磁碟格式化指導文件。 我有一個新的可移除裝置,我該怎麼使用﹖

可移除裝置無論是 ZIP 或 EZ(或甚至是軟碟機,如果你要這樣使用 它),或是一個新的硬碟,只要是安裝並由系統重組,而你有磁片匣 /軟碟片/或其他東西可以插入,那這些裝置似乎都是類似功能的東 西。

假如是 ZIP 或軟碟機,你已經在上面有 DOS 檔案系統,可以使用 像這樣的命令: mount -t msdos /dev/fd0c /floppy

如果只是軟碟機,那就這樣: mount -t msdos /dev/sd2s4 /zip

對 ZIP 磁片來說是使用出廠預設值。

其他磁片,用 /stand/sysinstall 察看 如何配置。

接下來這個範例是 ZIP 裝在 sd2,第三個 SCSI 磁碟。

不像軟碟機,或一個你計畫跟其他人分享使用的可移除裝置,用 BSD 檔案系統貫穿它可能是一個比較好的主意。你將擁有長檔名支援 ,至少兩倍以上的效率增進,更高的穩定度。首先,你需要重新製作 DOS 層的分割區/檔案系統。你可以使用 /stand/sysinstall,或對一個你不想支援多重作業系統的 小磁碟,只要把它劃分成整個 FAT 分割表(slices)並用以下 BSD 分 割法: dd if=/dev/zero of=/dev/rsd2 count=2 disklabel -Brw sd2 auto

你可以使用 disklabel 或 /stand/sysinstall 去建立多重 BSD 分割區。無疑的如果你正在硬碟機上增加置換空間(swap space)時 你就需要這麼做,但是在可移除裝置如 ZIP 上這是無意義的。

最後,建立一個新的檔案系統。在 ZIP 裝置上是使用整個磁碟: newfs /dev/rsd2c

並且把它掛上(mount): mount /dev/sd2c /zip

加上下面這一行可能是一個好主意,你以後就只 要打"mount /zip" : /dev/sd2c /zip ffs rw,noauto 0 0 我該怎麼掛上次要的 DOS 分割區﹖

次要 DOS 分割區是在所有主要分割區之後被找到,舉例,如果你有一個 "E" 分割區在第二個 SCSI 裝置的第二個 DOS 分割區,你需要在 /dev 下 建立 "slice 5" 的特殊檔案,然後掛上 /dev/sd1s5: # cd /dev # ./MAKEDEV sd1s5 # mount -t msdos /dev/sd1s5 /dos/e 我可以在 FreeBSD 下掛上其他異質性檔案系統嗎﹖

有更多資訊。

提供任何這個主題的其他資訊將被重視。 我該如何使用 NT loader 來啟動 FreeBSD﹖

最普遍的想法是把你的 native FreeBSD root 分割區 的第一個磁區拷貝到 DOS/NT 分割區裡的一個檔案內。假設 你命名它:c:\bootsect.bsd (由 c:\bootsect.dos 授意而來),接著你可以編輯 c:\boot.ini 檔案內容如下: [boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows NT" C:\BOOTSECT.BSD="FreeBSD" C:\="DOS"

此程序假設 DOS,NT,FreeBSD,或其他作業系統已經被安裝在 掛上一個 DOS 格式化的軟碟(假如你已經轉換到 NTFS)或 FAT 分割區 到 /mnt dd if=/dev/rsd0a of=/mnt/bootsect.bsd bs=512 count=1

重新開機進入 DOS 或 NT。NTFS 使用者把 attrib -s -r c:\boot.ini

編輯並從 attrib -r -s c:\boot.ini

如果 FreeBSD 是由 MBR 啟動,在你重新設定從哪個原生分割區啟動後 用 DOS 的的 `` 我該怎麼用 LILO 啟動 FreeBSD 和 Linux﹖

如果你在同一個磁碟機裡有 FreeBSD 和 Linux,只要跟隨 LILO 的安 裝指令,從一個非 Linux 作業系統啟動。簡略說明如下:

啟動 Linux,並在 /etc/lilo.conf 中加入以下幾行: other=/dev/hda2 table=/dev/hda label=FreeBSD (上面是假設你的 FreeBSD slice 在 Linux 是 /dev/hda2;請 配合自己的設定)。然後,用 root 執行 lilo 應該就完成了。

假如 FreeBSD 在另外一個磁碟,你必須在 LILO 選項中加入 ``loader=/boot/chain.b'',舉例: other=/dev/sdb4 table=/dev/sdb loader=/boot/chain.b label=FreeBSD

某些情形你必須指定 BIOS 磁碟代號給 FreeBSD 啟動載入程式以能從第 二磁碟成功的啟動。舉例,假如你的 FreeBSD SCSI 磁碟在 BIOS 中偵測 是 BIOS disk 1,那在 FreeBSD 啟動載入程式的提示號出現時你必須指 定: Boot: 1:sd(0,a)/kernel

在 FreeBSD 2.2.5 和之後的版本,你可以設定 這樣每次啟動時就會自動幫你執行。

是 FreeBSD 和 Linux 共用操作的良好 參考文件。 我怎麼使用 BootEasy 來啟動 FreeBSD 和 Linux﹖

在你的 Linux 啟動分割區安裝 LILO 取代主要啟動資料(Master Boot Record)。接著你可以從 BootEasy 啟動 LILO。

假如你正在執行 Windows-95 和 Linux,這是一個建議方法:要更簡單的 從 Linux 再次啟動在於你是否應該重新安裝 Windows95(這是一個善妒 的作業系統,它壓迫不讓其他作業系統存在於主要啟動記錄內)。 一個所謂``危險奉獻''的磁碟有害嗎﹖

現在,這是某些常見情形,人們只有 PC 的使用背景。更多本來曾使用 Unix 又想把機器設定只執行 FreeBSD 的人,大多會用傳統 Unix 的方 法讓一個作業系統佔據整個磁碟,從最開頭的第一個磁區到最後一個。 一個真實的 fdisk table 並在這個情形中並沒有實質功用,機器上一天 24 小時,每週七天無時不刻地都在執行 FreeBSD,甚至沒有啟動其他作 業系統。因此,如果你在 sysinstall 的 fdsik 編輯器裡選擇 ``A)ll FreeBSD'',並用 ``No'' 回答下一個問題,你就是在這種模式中 。值得注意的是這代表 BSD bootstrap 也由這台磁碟機的 MBR 所產生, 因此沒有留下空間給其他像是啟動管理員的程式。不要試著去安裝它,不 然你會把 BSD bootsrtap 弄壞了。

因此為何叫它``危險的''﹖一個處於這種模式的磁碟機不包含將被正 常 PC 公用程式視為有效的 fdisk table。依循它們被設計的模式,只 要它們在這樣一個磁碟機中一旦被觸及可能就會產生錯誤的提示,或更 糟糕的,可能未經提示或通知你就把 FreeBSD bootstrap 弄壞。一些在 PC 上廣泛使用的作業系統就有這種 ``使用者不友善性'' 的存在(當然 ,它們稱之為``使用者的友善性'')。至少已知在 HP Netservers 上的 Award BIOS(它並不是唯一的特例)就是會忽略任何它認為沒有有效 fdisk 列表的硬碟。這導致它啟動時,簡略的忽略過這樣一個磁碟裝置, 切換到軟碟機,然後只是跟你吐著``讀取錯誤''的訊息。很讓人印象深 刻吧﹖或許他們也叫這為``使用者友善性'',誰知道﹖

這種模式的好處是:FreeBSD 擁有整個磁碟,不需要因為 1980 年代 簡略的分割模式強迫一些人造而現在看起來無意義的限制在這些分割該 怎麼被完成,浪費好幾個虛擬的``磁軌''。這些限制時常導致可能變成 PC 的 OS 安裝過程中最大的頭痛,幾何學錯誤的搭配這兩個差異的爭 論結果,是在 fdisk 列表中儲存分割資訊時過剩的方法。請查閱 。 在``完全奉獻''的模式下,BSD bootstrap 從磁區 0 開始,這是唯一 能轉換同一個 C/H/S 值的磁區,不管你的 BIOS 如何``轉換''你的磁 碟。因此,你也可以在系統/控制器之間以一種不同的轉換架構置換磁 碟,而不須承擔失敗後磁碟機再也不會啟動的風險。

要把``危險奉獻''的磁碟回復到正常 PC 使用,基本上有兩個選擇。 第一個是你把足夠的 NULL 位元組寫入 MBR 確保任何隨後的安裝程 式相信這只是一個空白的磁碟。舉例來說你可以這樣做: dd if=/dev/zero of=/dev/rsd0 count=15

或是採用另外一個,非正式的 DOS ``特色'': fdisk /mbr

這將會安裝一個全新的主要啟動記錄,因此會破壞 BSD bootstrap。 我如何能加入更多的置換空間﹖

最好的方法是增加你置換分割區的大小,或利用這個方便理由的好處去 增加另一個硬碟。

在分散的磁碟上增加置換空間會比單純地在同一個磁碟加入置換空間 讓效率來的快一點。舉一個例子來說,如果你正在一個磁碟裡編譯來 源程式,而置換空間在另一個磁碟,這會比置換空間跟編譯程式都在 同一個磁碟時來得快。這對 SCSI 磁碟機特別正確。

IDE 磁碟並不允許同時在同一通道理存取兩個裝置(FreeBSD 不支援 mode 4,因此所有的 IDE 磁碟 I/O 是``可程式化的'')。然而我仍 會建議你把置換空間放在分別的磁碟。磁碟機這麼便宜,實在沒什麼 好擔心的。

把你的置換檔放在 NFS 實在是一個很爛的主意,除非你正在一個非常 快速的網路環境下執行,還要有一個很好的伺服器。

這裡有個範例是用 64MB vn-swap (/usr/swap0,當然你能用 任何你想用的名字)。

確定你的核心程式建立時有包含以下這行: pseudo-device vn 1 #Vnode driver (turns a file into a device)

在你的設定檔中。GENERIC 這個核心已經包含這項了。 建立一個 vn-device cd /dev sh ./MAKEDEV vn0 建立一個置換檔 (/usr/swap0) dd if=/dev/zero of=/usr/swap0 bs=1024k count=64 /etc/rc.conf 中啟動置換檔 swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired. 重新開機。

要馬上啟動置換檔,鍵入: vnconfig -ce /dev/vn0c /usr/swap0 swap 我不會設定我的印表機。

請參閱 Handbook 裡有關列印的部份。這應該能解決你大部分的問題,請看 我系統上的鍵盤配置錯了。

kbdcontrol 程式有一個選項可以讀取鍵盤配置檔案。在 /usr/share/syscons/keymaps 有一些配置檔。選擇一個跟你的 相關的並讀取它。 kbdcontrol -l uk.iso

/usr/share/syscons/keymaps 所斷定。

可以從 /etc/sysconfig (或 ) 來設定,請看此檔裡適合的註解。

在 2.0.5R 及其之後的版本,所有跟文字字型,鍵盤對應相關的設定都在 /usr/share/examples/syscons

以下是目前支援的對應設定: Belgian ISO-8859-1 Brazilian 275 keyboard Codepage 850 Brazilian 275 keyboard ISO-8859-1 Danish Codepage 865 Danish ISO-8859-1 French ISO-8859-1 German Codepage 850 German ISO-8859-1 Italian ISO-8859-1 Japanese 106 Japanese 106x Latin American Norwegian ISO-8859-1 Polish ISO-8859-2 (programmer's) Russian Codepage 866 (alternative) Russian koi8-r (shift) Russian koi8-r Spanish ISO-8859-1 Swedish Codepage 850 Swedish ISO-8859-1 Swiss-German ISO-8859-1 United Kingdom Codepage 850 United Kingdom ISO-8859-1 United States of America ISO-8859-1 United States of America dvorak United States of America dvorakx 我無法讓 user quotas 正常工作。

不要在 '/' 打開 quotas, 把 quotas 檔放在它必須強迫置入的檔案系統內,舉例: FS QUOTA FILE /usr /usr/admin/quotas /home /home/admin/quotas ... 我的 ccd 有何不妥﹖

這種情形的徵兆是: # ccdconfig -C ccdconfig: ioctl (CCDIOCSET): /dev/ccd0c: Inappropriate file type or format #

通常這會發生在你嘗試要連結 `c' 分割區,這內定的型別是 ``無法使用的'' 。ccd 磁碟需要的基礎分割區型別為 FS_BSDFFS,編輯你要試著連結的磁碟 標記並更改分割區的型別為`4.2BSD'。 為何我不能編輯我 ccd 的磁碟標記﹖

這種情形的徵兆是: # disklabel ccd0 (這裡印出某些明顯的資料,所以試著編輯它) # disklabel -e ccd0 (編輯,儲存,然後離開) disklabel: ioctl DIOCWDINFO: No disk label on disk; use "disklabel -r" to install initial label #

這是因為由 ccd 傳回的磁碟標記事實上是一個``假的''而沒有真正在磁碟 上。你可以把它完全寫入來解決這個問題,像這樣: # disklabel ccd0 > /tmp/disklabel.tmp # disklabel -Rr ccd0 /tmp/disklabel.tmp # disklabel -e ccd0 (this will work now) FreeBSD 支援 System V IPC 格式指令集?

是的,FreeBSD 支援 System V-格式 IPC。這包括共享記憶體,訊息跟 信號。你需要在你的核心設定檔內加入下列幾行以啟動它們。 options SYSVSHM options "SHMMAXPGS=64" # 256Kb of sharable memory options SYSVSEM # enable for semaphores options SYSVMSG # enable for messaging

重新編譯並安裝。

我該如何使用 sendmail 透過 UUCP 來遞送郵件?

跟隨 FreeBSD 套裝而來的 sendmail 設定是適合那些直接連上網際網路 的的站台。那些想透過 UUCP 交換它們郵件的站台必須另外安裝 sendmil 的設定檔案。

手動修改 /etc/sendmail.cf 是絕對必要的。第 8 版的 sendmail 提供一個全新的入口以透過一些像 的處理就能 產生設定檔,這事實上是一個高層概念等級的技巧性設定。你應該可以在以 下檔案裡使用它: /usr/src/usr.sbin/sendmail/cf

假如你不是用完整的來源程式安裝系統,那麼 sendmail 設定項目可能已 經分散成好幾個來源分布檔在等著你,假設你已經掛上光碟機,做以下動作: cd /usr/src tar -xvzf /cdrom/dists/src/ssmailcf.aa

別驚慌,這只有數十萬個位元組的大小。在 cf 目錄裡的 README 可以提供一個 m4 設定法的基本介紹。

以 UUCP 遞送來說,建議你最好使用 mailertable 特點。 建構一個資料庫讓 sendmail 可以使用它自己的路徑決策。

首先,你必須建立自己的 .mc 檔。 /usr/src/usr.sbin/sendmail/cf/cf 目錄是這些檔案的家。 首先,已經有好幾個範例檔,假設你已經命名自己的檔叫 foo.mc,你要做的只是把它轉換成一個有效的 sendmail.cf cd /usr/src/usr.sbin/sendmail/cf/cf make foo.cf cp foo.cf /etc/sendmail.cf

一個典型的 .mc 檔看起來可能像這樣: include(`../m4/cf.m4') VERSIONID(`Your version number') OSTYPE(bsd4.4) FEATURE(nodns) FEATURE(nocanonify) FEATURE(mailertable) define(`UUCP_RELAY', your.uucp.relay) define(`UUCP_MAX_SIZE', 200000) MAILER(local) MAILER(smtp) MAILER(uucp) Cw your.alias.host.name Cw youruucpnodename.UUCP

nodnsnocanonify 特性將避免任何在遞送郵件 時會用到 DNS 的機會。UUCP_RELAY 項目的出現理由很奇怪, 就不要為何了。簡單的放入一個網際網路上可以處理 .UUCP 虛擬網域位址 的主機名稱;通常,你只需要在這裡填入你 ISP 的信件回覆處 (mail replay)。

你已經做到這裡了,你還需要這個叫 /etc/mailertable 的檔案 。一個典型的範例如下: # # makemap hash /etc/mailertable.db < /etc/mailertable # horus.interface-business.de uucp-dom:horus .interface-business.de uucp-dom:if-bus interface-business.de uucp-dom:if-bus .heep.sax.de smtp8:%1 horus.UUCP uucp-dom:horus if-bus.UUCP uucp-dom:if-bus . uucp-dom:sax

如你所見,這是某個活生生檔案裡的一部份。首三行處理網域定址信件 不應該被送出到內定路徑,而由某些 UUCP 鄰居(UUCP neighbor)取代, 這是為了``縮短''遞送的路徑。下一行處理到本地乙太網路網域的信件 讓它可以使用 SMTP。最後,UUCP 鄰居提到 .UUCP 虛擬網域的記載, 允許一個``uucp-neighbor!recipient''推翻內定規則。最後一行則以一 個單獨的句點做結束,以 UUCP 遞送到提供當你全世界性郵件閘門的 UUCP 鄰居。所有在 uucp-dom: 關鍵字裡的節點名稱必須都是 有效的 UUCP 鄰居,你可以用 uuname 命令去確認。

提醒你這個檔案在使用前必須被轉換成 DBM 資料庫檔案,最好在 mailertable 最上面用註解寫出命令列來完成這個工作。當你每次更換你 的 mailertable 後你總是需要執行這個命令。

最後提示:如果你不確定某些特定的信件路徑可用,記得把 -bt 選項加到 sendmail。這會將 sendmail 啟動在 address test mode ;只要按下 ``0'',接著輸入你希望測試的信件路徑位址。最後一行告訴你使 用內部的信件代理程式,代理程式的會通知目的主機,以及(可能轉換的)位址 。要離開此模式請按 Control-D。 j@uriah 191% sendmail -bt ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter

> 0 foo@interface-business.de rewrite: ruleset 0 input: foo @ interface-business . de ... rewrite: ruleset 0 returns: $# uucp-dom $@ if-bus $: foo \ < @ interface-business . de > > ^D j@uriah 192% 當我用撥接連上網路時該怎麼設定信件遞送?

如果你已經有一個固定的 IP 數字,你不需要調整任何內定值。設好 你要指定的網路名稱,其他的 sendmail 都會幫你做完。

如果你拿到的是動態配置的 IP 數字而使用撥接 為了從你的信箱接收信件,你將需要安裝取信程式以便從信箱取回信件。 /etc/ppp/ppp.linkup 裡面 設定以下幾項: MYADDR: !bg su user -c fetchmail

我假設你在 poll myISP.com protocol pop3 fetchall pass MySecret;

無須贅言,這個檔除了 為了在寄信時有正確的抬頭 以下的 VERSIONID(`bsd.home.mc version 1.0') OSTYPE(bsd4.4)dnl FEATURE(nouucp)dnl MAILER(local)dnl MAILER(smtp)dnl Cwlocalhost Cwbsd.home MASQUERADE_AS(`myISP.com')dnl FEATURE(allmasquerade)dnl FEATURE(masquerade_envelope)dnl FEATURE(nocanonify)dnl FEATURE(nodns)dnl define(SMART_HOST, `relay.myISP.com') Dmbsd.home define(`confDOMAIN_NAME',`bsd.home')dnl define(`confDELIVERY_MODE',`deferred')dnl

如果轉換這個 咦!我忘記 root 的密碼了!

不要驚慌!只要重新啟動系統,在 boot: 提示號打 -s 進入單使用者模式。 在問要使用哪個 shell 時,按下 ENTER。你會看到一個 # 的提示號,輸入 mount -u / 以重新架設你的根檔案系統可供讀/寫。執行 我該怎麼保留讓 Control-Alt-Delete 不能重新啟動系統?

修改你正在使用的主控台鍵盤對應,並且把所有 /usr/share/syscons/keymaps/us.iso.kbd。你可能需要明白的 吩咐 /etc/rc.conf 去讀取這個鍵盤對應以確保更動生效。當 然如果你正在用適合你國籍的鍵盤對應,你應該編輯那一個。 我該怎麼把 DOS 文字檔案重新格式化成 UNIX 的?

簡單地使用這個 perl 命令: perl -i.bak -pe 's/\r\n/\n/g' file ...

file 就是要處理的檔案。這個修改是在內部完成,原始的檔案會儲存成 副檔名為 .bak 的檔案。 我該怎麼用名稱砍掉 process?

使用 為何在 root 的 ACL 時 su 好像有問題?

這個錯誤是因為 Kerberos 分散認證系統。這個問題並不是很嚴重但是令人 厭煩。你可以用 -K 選項去執行 su,或是像下個問題所描述的移除 Kerberos。 - 我該怎麼移除 Kerberos? + 我該怎麼移除 Kerberos?

要從系統裡移除 Kerberos,重裝你正在執行的 release 版本內 bin 分類 。如果你有 CDROM,你可以掛上 cd(假設在 /cdrom)並執行: cd /cdrom/bin ./install.sh 我該怎麼增加系統的虛擬終端機?

如果你有許多 telnet,ssh,X 或是 screen 使用者,你或許會用完虛擬 終端機,這能教你怎麼加更多: 建立並安裝一個新的核心程式並且加入這行到設定檔: pseudo-device pty 256 執行這個命令: # cd /dev # ./MAKEDEV pty{1,2,3,4,5,6,7}

會造出 256 個虛擬終端機的裝置節點。 編輯 /etc/ttys 並加入符合 256 個終端機的行數。它們應 該符合已經存在單項的格式,舉例來說,它們看起來像: ttyqc none network

字母設計的順序是 tty[pqrsPQRS][0-9a-v],使用正規表示式。 用新的核心程式重新啟動電腦就可以了。 diff --git a/zh_TW.Big5/FAQ/install.sgml b/zh_TW.Big5/FAQ/install.sgml index bcd2cce3af..3ba8d45ae5 100644 --- a/zh_TW.Big5/FAQ/install.sgml +++ b/zh_TW.Big5/FAQ/install.sgml @@ -1,632 +1,633 @@ - + 安裝 FreeBSD 我該下載哪些檔案以取得 FreeBSD?

通常你只需要一張軟碟映像檔,floppies/boot.flp,把它拷 貝到 1.44MB 軟碟片上然後啟動它,再去下載其他的部份(安裝程序會管 理你的 TCP/IP 連線,以及 tapes,光碟機,軟碟機,DOS 分割區,及 其他只要是安裝過程中需要用到的)。

若你只需要自己下載 distributions(可迅速的由 DOS 檔案系統來安裝) ,以下是我們建議你抓來安裝的 distributions: bin/ manpages/ compat*/ doc/ src/ssys.*

安裝程序的完整指令,以及更多普遍性安裝時會碰到的問題可以在 這裡找到。 救命!啟動的軟碟映像檔無法塞到一片單獨的軟碟片裡!

一張 3.5 英吋(1.44MB)軟碟片可以容納 1474560 位元組的資料。 啟動的映像檔就剛好是這個大小。

在準備啟動軟碟片時常見的錯誤有: 使用 FTP 時沒有使用 binary 模式。

某些 FTP client 軟體它們內定的傳輸模式是 ascii 並且試著更改任何在終端被接收的字元,以符合這個 client 系統本身 。大部分情形下這必然會毀損啟動映像檔,檢查一下你下載的啟動 映像檔大小:如果這不是完全地符合 server 端上的檔 案大小,那麼你的下載程序就有問題。

解決方法:在你連接上 server 但尚未開始下載映像檔之前, 看到 FTP 命令提示號時打 binary使用 DOS 的 copy 命令(或等效的 GUI 工具)來把啟 動映像檔傳送到軟碟片。

類似像 copy 的程式,在啟動映像檔被建立並且直接 開機後並沒有功用。映像檔裡有完整的磁碟內容,磁軌對磁軌,這代 表著你無法用磁片上固定的檔案去取代它。 你必須把它傳送到軟碟片的``raw''上,使用低階化工具(像是 fdimagerawrite),這些在 裡面多有描述。 安裝 FreeBSD 的指令是什麼?

你可以在這裡找到安裝指令。 要執行 FreeBSD 我還需要什麼?

你需要一台 386 或更好的 PC,包含 5MB 或更多的 RAM以及至少 60MB 的磁碟空間。可以僅使用一個低階的 MDA 圖形卡,如果你要執行 X11R6 ,需要 VGA 或更好的視訊卡。

亦參考這個章節 我只有 4MB RAM,那我能安裝 FreeBSD 嗎?

FreeBSD 2.1.7 是最後一個可在 4MB 系統上被安裝的版本。新版的 FreeBSD,像是 2.2,需要至少 5MB 來安裝它在一個全新的系統上。

FreeBSD 的所有版本,包括 3.0,都在 4MB 的記憶體下執行,不過安裝 時不能只用 4MB。如果你想這樣,你可以在安裝時加入額外的記憶體,然 後等系統可以執行後,換回 4MB。或是你可以把你的磁碟機切出一個 4MB 以上置換空間,安裝好系統後再把置換空間砍掉。

FreeBSD 2.1.7 也有不能在 4MB 安裝的情形。正確的說,應該是指 不能在基本的 640kB 加上 3MB 延伸記憶體裡安裝。如果你的主機板 可以重新找回在 640kB 到 1MB 範圍中那些``遺失''的記憶體,那麼 或許你還是可以把 FreeBSD 2.1.7 裝起來。

試著進入你的 BIOS 設定選單並找一個``remap''選像,把它打開。 你或許也該把 ROM shadowing 給關掉。

只在安裝時使用 4MB 可能容易一點,建立一個只有你需要的選項的 核心程式然後就可以用只用 4MB。

你也可以安裝 2.0.5 然後再把你的系統用 2.1.7 安裝程式裡 ``upgrade''的選項升級到 2.1.7 版本。

安裝後如果你建立一個自訂的核心,這將會在 4MB 下執行。曾有 人成功的用 2MB 開機(不過系統幾乎不能用 :-))。 我該怎麼製作自訂的安裝軟碟片?

目前你無法 *只* 製作一個自訂的安裝軟碟片。你必須做出整個全新的 release 系統,這裡面就包括你的安裝軟碟片。某些在 /usr/src/release/floppies/Makefile 裡的程式碼假設能讓 你*只*做出那些軟碟片,但是事實上還不行。

要做出自訂的 release 版本,請遵循 的指令。 我可以在我的 PC 上擁有超過一個以上的作業系統嗎?

請參考 Windows 95 可以跟 FreeBSD 並存嗎?

先安裝 Windows 95,然後再裝 FreeBSD。FreeBSD 的啟動管理員 會接著管理 Win95 和 FreeBSD。假使你第二個才裝 Win95,它將會 問都不問的粗魯地把你的啟動管理員覆寫過去。假如這已經發生, 請看下一節。 Windows 95 把我的啟動管理員殺掉了!我該怎麼把它救回來?

你可以用以下兩種方法之一來重新安裝 FreeBSD 的啟動管理員: 執行 DOS,進入你的 FreeBSD distributions 的 tools/ 目錄 並找到 bootinst.exe。你可以這樣執行它:

bootinst.exe boot.bin

這樣啟動管理員將會再次被安裝。 用 FreeBSD 啟動軟碟片再次開機然後進入 Custom 安裝選單 項目,選擇 Partition,選擇那個包含啟動管理員的磁碟機(大多是 第一個),然後當分割區編輯器(partition editor)出現時,第一件 事(意思就是:不要做任何更改) 先選擇 (W)rite。會出現確認的詢 問,回答 yes,然後當你看到 Boot Manager 的選擇提示時,確定 你選的是"Boot Manager"這項。 這會把啟動管理員重新寫回磁碟裡。跳離安裝選單然後就跟正常情形 一樣重新啟動硬碟。 我可以在一個有壞軌(bad block)的磁碟上進行安裝嗎?

FreeBSD 的 bad block ( 命令) 處理並非 100&percnt 完全(用圖形化來看),而且很不幸我要告 訴你假如你有一個 IDE 或 ESDI 裝置包含大量的 bad blocks,那麼 FreeBSD 可能不適合你!這表示,對其他大多數的 IDE 系統可能有 用,你可能想在放棄前先嘗試看看。

如果你有一個有 bad blocks 的 SCSI 裝置,請看 . 當我啟動安裝軟碟片時,奇怪的事情發生了!

如果你看到奇怪的事情,像是機器停住了或是當你試著從安裝磁片起 動時突然自動重新開機了,這裡有三個問題你該先問問自己:- 你是否使用一個新的,剛格式化過,沒有任何錯誤的軟碟片(可 以是一張全新剛拆封的,而非是那種已經你的床下躺了三年,是雜誌贈 送的封面磁片)? 你是否用 binary 模式下載軟碟映像檔? (不用不好意思,就算是我們之中最好的一個人也曾意外的把 binary 檔用 ASCII 模式下載至少一次!) 如果你正在使用像是 Windows95 或 Windows NT 這幾種新型的 作業系統,你有沒有把系統關機然後啟動到最原始狀態,只有 DOS? 這些 OS 看起來會阻礙那些直接操作硬體的程式,像是建立磁碟的程式 ,只要在 GUI 環境下的 DOS shell 就會導致這個問題。

也有過報告有關 Netscape 會導致下載啟動軟碟的問題,因此如果你 可以,最好使用別種不同的 FTP client 。 救命!我不能從 tape 安裝!

如果你從 tape 安裝 2.1.7,你必須用每個 tar blocksize 是 10 (5120 bytes)建立這個 tape。內定的 tar blocksize 是 20(10240 bytes),然而用這種內定大小建立的 tape 無法用來安裝 2.1.7R; 如果你用這種 tapes,你會看到有關資料記錄區大小過大的抱怨訊 息。 用一條並聯線(PLIP)連接兩台 FreeBSD。

找一條 laplink 線,確定兩邊電腦的核心都支援 lpt 驅動程式。 $ dmesg | grep lp lpt0 at 0x378-0x37f irq 7 on isa lpt0: Interrupt-driven port lp0: TCP/IP capable interface

把 laplink 線插入並聯界面上。

用 root 身分在兩台電腦上設定 lp0 的網路界面參數。舉例,如果 你想用 max 連接 moritz: max <-----> moritz IP Address 10.0.0.1 10.0.0.2 max 端應該這樣開始: # ifconfig lp0 10.0.0.1 10.0.0.2 moritz 則這樣: # ifconfig lp0 10.0.0.2 10.0.0.1

好了!也請你看看 lp(4) 和 lpt(4) 的 manpages。

你也該把這些主機加到 /etc/hosts 裡面。 127.0.0.1 localhost.my.domain localhost 10.0.0.1 max.my.domain max 10.0.0.2 moritz.my.domain moritz

用以下方法檢查是否有正常動作: on max: $ ifconfig lp0 lp0: flags=8851 mtu 1500 inet 10.0.0.1 --> 10.0.0.2 netmask 0xff000000 $ netstat -r Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire moritz max UH 4 127592 lp0 $ ping -c 4 moritz PING moritz (10.0.0.2): 56 data bytes 64 bytes from 10.0.0.2: icmp_seq=0 ttl=255 time=2.774 ms 64 bytes from 10.0.0.2: icmp_seq=1 ttl=255 time=2.530 ms 64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=2.556 ms 64 bytes from 10.0.0.2: icmp_seq=3 ttl=255 time=2.714 ms --- moritz ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms 我可以在我的膝上型電腦用 PLIP(Parallel Line IP)安裝嗎?

用 laplink 並聯線連接兩台電腦以使用這個特性: +----------------------------------------+ |A-name A-End B-End Descr. Port/Bit | +----------------------------------------+ |DATA0 2 15 Data 0/0x01 | |-ERROR 15 2 1/0x08 | +----------------------------------------+ |DATA1 3 13 Data 0/0x02 | |+SLCT 13 3 1/0x10 | +----------------------------------------+ |DATA2 4 12 Data 0/0x04 | |+PE 12 4 1/0x20 | +----------------------------------------+ |DATA3 5 10 Strobe 0/0x08 | |-ACK 10 5 1/0x40 | +----------------------------------------+ |DATA4 6 11 Data 0/0x10 | |BUSY 11 6 1/0x80 | +----------------------------------------+ |GND 18-25 18-25 GND - | +----------------------------------------+

請參考 Mobile Computing 網頁的 我該怎麼使用一個磁碟裝置的幾何(geometry)? +

(一台磁碟的"gromrtry",我們指的是這台磁碟上 cylinders, heads 和 sectors/track 的數目 - 為了方便且稱之為 C/H/S。這是 PC 的 BIOS 用來讀/寫磁碟的依據)。

為了某些理由,這似乎會導致很多困擾。首先,一台 SCSI 裝置的 另外就是所謂的對 SCSI 磁碟機來說,geometry 的使用是依靠啟動控制器來支援 extended translation (這通常稱之為"對>1GB DOS 磁碟機 的支援或"類似的稱呼)。如果不支援,那麼使用 N cylinders,64 heads 和 32 sectors/track,這裡'N'是指磁碟機的 MB 容量。舉例 來說,一個 2GB 的磁碟機應該假設它有 2048 cylinders,64 heads 和 32 sectors/track。

如果它確定如果你不確定以上這個,或是 FreeBSD 在安裝過程中要偵測 geometry 的正確性時失敗了,最簡單的解決方法通常是在磁碟上建立一個小的 DOS 分割區。正確的 geometry 應該能被偵測到(而且如果你不想保留它, 你總是可以在分割區編輯器裡把這個 DOS 分割區移除掉,或是把它留下 來,給程式化網路卡使用或隨你高興怎麼用它)。

另外,有一個免費而有用的公用程式叫 ``tools 子目錄 下或是在大多數的 FreeBSD ftp 站台內可找到),這個程式可用來解 決找出另一作業系統正在使用磁碟機上的哪塊 geometry。然後你就可 以在分割區編輯器裡面輸入它。 當我分割磁碟機實有任何限制嗎﹖

是的。你必須確認你的 root 分割區是在 1024 cylinders 之內,讓 BIOS 可以從其中啟動核心。(注意:這是 PC 的 BIOS 功能限制,而不 是 FreeBSD 的)

對 SCSI 裝置來說,這通常按試著 root 分割區將會處於開始的 1024 MB(或是開始的 4096MB,如果 extended translation 是打開的 - 請 參考前一節)。對 IDE 來說,相關的部份是 504MB。 可以使用磁碟管理程式(disk managers)嗎﹖或是,我有一個巨大的磁碟機!

FreeBSD 認識 Ontrack Disk Manager 並且允許使用它,其他的 disk managers 則不在支援之列。

如果你只想在磁碟機上使用 FreeBSD 那麼你根本不需要 disk manager。 只要把磁碟設定成 BIOS 能抓到的最大空間(通常是 504 megabytes),那麼 FreeBSD 應該就可以算出你事實上擁有多少空間。如果你正使用一個 MFM 控制器來控制的老磁碟,你可能需要明白的告訴 FreeBSD 要使用多少個 cylinders。

如果你想在磁碟上使用 FreeBSD 和另一個作業系統,你可能不需要 disk manager:只要確定 FreeBSD 的啟動分割區跟其他作業系統的 slice 都位於開始的 1024 cylinders 內。如果你相當地小心,一個 20 megabytes 的啟動分割區應該就夠了。 當我啟動 FreeBSD,我看到 ``Missing Operating System''

這是一個典型的情形,有關 FreeBSD 以及 DOS 或其他在磁碟處理的 方法上有衝突的 OS 。你需要 重新安裝 FreeBSD,但是請遵照上面所提到的指令應該就可以了。 我看不到 boot manager 的 'F?' 提示號。

這是前一頁所描述問題的另一個徵兆。你的 BIOS geometry 和 FreeBSD 的 geometry 設定不相同!如果你的控制器或 BIOS 支援 cylinders translation (通常被標示成``>1GB drive support''),試著把這個 設定打開然後重新安裝 FreeBSD。 我有 >16MB RAM。這會導致任何問題嗎﹖

從效能的角度來看,不會。FreeBSD 2.X 內含 bounce buffers,這允許 你的 bus mastering controller 存取超過 16MB。(注意如果你正使用 ISA 裝置這應該是必需的,儘管一個或兩個更早的 EISA 和 VLB 裝置也可 能需要它)。

也請參考 這節,假如你有這麼多記憶體,或假使你使用 Compaq 或是其他能處理 這麼多有用記憶體的機器。 我需要安裝完整的原始程式(sources)嗎﹖

通常是不需要。然而,會強烈建議你最少安裝 ``以外。缺少核心的原始程式,我們的建築架構是設定 成讓你可以從別處如 NFS 來掛上唯獨的原始程式,因此還是可以製 作新的 binaries。(因為 kernel-source 的限制,我們建議你不要 直接把它掛在 /usr/src 下,最好用適合的符號性重複連 結到 source tree 的上層架構。)

線上擁有 sources 並知道如何建立一個系統,將會讓你在升級今後 FreeBSD 的 releases 版本更容易一點。

要實際的選擇 sources 的一個子集合,在你在系統安裝工具的 Distributions 選單時,使用 Custom 選單項目。src/install.sh script 將會把 sources distribution 的部份安裝進去,主要是看 你傳入哪些參數。 我需要建立一個核心嗎﹖

建立一個新的核心在 FreeBSD 安裝過程中是絕對必需的一個步驟。 但新版 releases 帶來一個更友善的核心設定工具指令的好處。在 FreeBSD 啟動提示號(boot:)時,使用 "-c" 旗號你就會進入一個設 定螢幕,這允許你做常見 ISA 卡的設定

仍然建議你最後建立一個核心,只包含你需要的驅動程式,這是為了 節省 RAM,但是對大多數的系統來說這卻不是嚴格的要求。 我不是住在美國,那我可以使用 DES 嗎﹖

如果對你來說使用 DES 格式的加密技術不是絕對需要的,你可以使 用 FreeBSD 的內定加密技術,有因為 DES 加密演算法不能由 US 合法輸出到國外,非 US 使用者不 應該從 US FTP 站台下載這個軟體(然而另外還有個有效的 libcrypt,原始程式基本上由澳洲的 David Burren 寫成。這個程式碼目前在某些非 US FreeBSD mirror 站台上可以找到。這個沒有限制的 libcrypt 原始程式,以及使用它 的 binaries 程式,可以在以下 FTP 站台獲得: ftp://ftp.internat.freebsd.org/pub/FreeBSD ftp://storm.sea.uct.ac.za/pub/FreeBSD ftp://ftp.iqm.unicamp.br/pub/FreeBSD ftp://nic.funet.fi/pub/unix/FreeBSD/eurocrypt

非 US 的 非 US 使用者請勿從 USA 下載任何加密軟體。這會導致站台的管理 者因為被下載的軟體惹上數個法律性的困難。

一個非 US 的 Kerberos distribution 亦正在發展中,現行版本通 可由匿名 FTP braae.ru.ac.za 來獲得。

也有一個 專門用來討論 非 US 加密軟體。欲獲得更多資訊,寄一封內含單獨一行訊息說 ``<majordomo@braae.ru.ac.za>. 啟動軟碟開始讀了可是卻停在``Probing Devices...''螢幕。

如果你安裝了 IDE Zip 或 Jaz 裝置,移除它並重新試一遍。 啟動軟碟片可能會被這些裝置混淆了。當系統安裝好以後你可以再 把它接回來。希望這在之後的 release 版本可以被修正。 當我安裝好重新啟動系統後,我看到``panic: cant mount root'' 的錯誤訊息。

這個錯誤試因為啟動區塊跟核心程式對磁碟裝置的認知不相同。通 這個 錯誤會出現在雙磁碟的 IDE 系統,硬碟排列在 master,或是在分離的 IDE 系統上有單一個磁碟機。當核心指定第二個磁碟控制器的第一個磁碟 機 wd2 時,啟動 block 卻認為系統裝在 wd1(第二個 BIOS 磁碟機)。 在偵測裝置時,核心程式試著把啟動 block 認為的啟動磁碟(wd1) mount 起來,事實上卻是 wd2,所以失敗了。

要修正這個問題,做以下幾種方法之一: 當 Boot: 提示號出現時,輸入: 1:wd(2,a)kernel 然後按 Enter。如果系統開始了,就執行以下命令: echo "1:wd(2,a)kernel" > /boot.config 讓它變成內定的 boot string。 把 FreeBSD 磁碟機移到 primary IDE controller,因此硬碟機是 連續的。 修改有關 wd 設定的行數: controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr disk wd0 at wdc0 drive 0 # disk wd1 at wdc0 drive 1 # comment out this line controller wdc1 at isa? port "IO_WD2" bio irq 15 vector wdintr disk wd1 at wdc1 drive 0 # change from wd2 to wd1 disk wd2 at wdc1 drive 1 # change from wd3 to wd2 安裝新的核心程式。 如果你移動你的磁碟機,並希望把先前的設定恢復,只要把磁碟用預期 的設定置換回來然後重新開機。你的系統應該就能成功的啟動。 記憶體的限制是什麼﹖

對記憶體來說,(理論上)限制是 4 gigabytes。1 gigabytes 已被測試 過;一般你不可能買到可以支援超過這個數目的 i386 PC。 ffs 檔案系統的限制是什麼﹖

對 ffs filesystems 而言,最大理論值限制在 8 terabytes(2G blocks ),或當使用內定 block大小時,限制是 16TB。還有,軟體限制是 1 terabytes,但如果是經過修改的檔案系統上 4 terabytes 是可能(並且 存在)的。

單一 ffs 檔案的大小最大是趨近 1G blocks(4TB) - 假如 block 大小是 4K。 The maximum size of a single ffs file is approximately 1G blocks (4TB) if the block size is 4K. maxfilesize ---------------------------------- 2.2.7 3.0 fs block size -stable -current works should-work ------------- ------- -------- ----- ----------- 4K 4T-1 4T-1 4T-1 4+T 8K 32+G 8T-1 32+G 16T-1 16K 128+G 16T-1 128+G 32T-1 32K 512+G 32T-1 512+G 64T-1 64K 2048+G 64T-1 2048+G 128T-1

當 fs block 大小是 4K,triple indirect block 運作並且所有的事情 都應該以表示成使用 triple indirect block 的最大 fs block 來作限 制(近似於 1K^3 + 1K^2 + 1K),但在 fs block 數目上卻有一個(錯誤) 的 1G-1 限制。對 fs block 數目的限制應該是 2G-1。在 fs block 數目接近 2G-1 時有點錯誤,但當 fs block 大小是 4K 時這個 block 數目是不能達到的。

block 大小如果是 8K 或更大,fs block 數目應該限制在 2G-1,但實 際 fs block 數目卻限制在 1G-1,除了在 -stable 時 triple indirect blocks 是無法達到的,所以最多 fs block 數目的限制可以表示成用 double indirect blocks(近似於(blocksize/4)^2 + (blocksize/4)) ,且在 -current 下超過這個限制可能會導致問題產生。使用正確的 2G-1 block 限制的確會導致問題發生。 我該怎麼在軟碟上放入 1TB 檔案?

我自己就在軟碟片上放好幾個 :-)。檔案的最大容量事實上跟磁碟最大 的容量並沒有密切相關。磁碟的最大容量是 1TB,這是一個檔案大小可 以超過磁碟容量的一個特色。

以下範例會在小小的 root 分割區建立一個使用整個磁碟的 32K 空間 ,大小是 8T-1 的檔案(3 indirect blocks and 1 data block)。dd 指令需要讓 dd 能在一個大檔案下執行。 ttyv0:bde@alphplex:/tmp/q> cat foo df . dd if=/dev/zero of=z bs=1 seek=`echo 2^43 - 2 | bc` count=1 ls -l z du z df . ttyv0:bde@alphplex:/tmp/q> sh foo Filesystem 1024-blocks Used Avail Capacity Mounted on /dev/sd0a 64479 27702 31619 47% / 1+0 records in 1+0 records out 1 bytes transferred in 0.000187 secs (5346 bytes/sec) -rw-r--r-- 1 bde bin 8796093022207 Sep 7 16:04 z 32 z Filesystem 1024-blocks Used Avail Capacity Mounted on /dev/sd0a 64479 27734 31587 47% / ttyv0:bde@alphplex:/tmp/q> exit

Bruce Evans, September 1998 diff --git a/zh_TW.Big5/FAQ/misc.sgml b/zh_TW.Big5/FAQ/misc.sgml index 3f9ac79e5d..f2a381fc49 100644 --- a/zh_TW.Big5/FAQ/misc.sgml +++ b/zh_TW.Big5/FAQ/misc.sgml @@ -1,242 +1,242 @@ - + 其它各式各樣的問題 為甚麼 FreeBSD 用的 swap 空間比 Linux 多?

不是這樣的. 如果你的意思是: ``為甚麼我的 swap 看起來滿了?'' 那是因為把東西放在 swap 裡後拿回來的速度會比 pager 經由檔案系 統拿回(未修改)的執行碼快.

事實上, 記憶體中 dirty pages 的量並未減少; clean pages 則在需 要的時後移走. 為甚麼要用(甚麼是) a.out 和 ELF 執行檔格式?

要了解為甚麼 FreeBSD 使用 a.out 格式, 首先你要知道一些 目前 Unix 中使用最廣泛的三種格式:

最早和`古典'的 unix 目的檔格式. 使用一種短而緊密的檔頭, 伴隨一個通常用來辨認格式的魔術數字(參考 有更多細節). 具有三個節區: .text, .data, 和 .bss 加上一個符號表和字串表. COFF

SVR3 目的檔格式. 檔頭包含了一個節區表, 所以可以具備比 .text, .data, .bss 還多的節區. ELF

FreeBSD 藉由一個工具, 把程式需要那種 ABI 的資訊 烙印 取得更多資訊.

FreeBSD 來自 "古典" 陣營, 傳統上都使用 格式, 這是在好幾代的 BSD 中證明可靠的計術. 雖然可以在 FreeBSD 上可以建立以及執行原生的 在 FreeBSD 的狀況中, 我們的共享程式庫機制更接近 SunOS 的 型式, 也就是, 易於使用. 然而, 從 3.0 開始, FreeBSD 正式支援 好吧, 但為甚麼會有這麼多種不同的格式?

在黑暗的過去, 只有簡單的硬體. 簡單的硬體支援小型、簡單的系統. a.out 在簡單的系統上勝任愉快 (PDP-11). 當 unix 移植到其他平台時, a.out 保留了下來, 因為對早期的 Motorola 68K, VAX 之類的架構已經 夠用了.

然後有些硬體工程師覺得讓軟體多做點事, 那 CPU 的電晶體就能少 - 一點而跑的更快. 要在這種新式硬體上工作(現在稱為RISC), 此外, 當程式越來越大兒磁碟(以及主記憶體)相對來說較小時, 共享 程式庫的概念就發展出來了. 虛擬記憶體系統也變得越來越精巧. 當每一 種進步都在 然而, 隨著時間過去, FreeBSD 的 build tools 形成了平行的兩支 (尤其是組譯器和 loader). FreeBSD 這支加進了共享程式庫以及修正 了一些錯誤. GNU 原來撰寫這些程式的人則重寫了這些程式, 並加入了 對於跨平台編譯, 不同格式模組之類的東西更簡單的支援. 許多人想要 做出以 FreeBSD 為目的平台的跨平台編譯器, 不幸的是 FreeBSD 的 as 和 ld 不能做這項工作. 新的 GNU 工具(binutils) 加入了跨平台編譯、 為甚麼 chmod 不會改變符號連結(symlink)的存取權限?

你必須把 `` man pages 以取得更多資訊.

且不要 加任何選項, 並且在 symlink 的結尾加上斜線(``/''). 舉例來說 , 如果 `` chmod 555 foo/

依照結尾的斜線, 會 經過連結 `` 為甚麼帳號

你會認為修改 在 FreeBSD 3.0 以及之後的版本, 帳號的最大長度增加到16個字元, 而那些寫死長度的程式也找出來修正. 影響到系統如此多部份正是直到 3.0 才做修改的原因.

如果你有自信在出問題的時後能自行解決, 你可以用下面的方法讓較早的 版本支援較長的帳號. 修改 /usr/include/utmp.h 中的 UT_NAMESIZE. 你也 必須把 /usr/include/sys/param.h 中的 MAXLOGNAME 改成跟 UT_NAMESIZE 相符. 最後, 如果你是從原始程式建立系統, 別忘了 /usr/include 每次都 會更新! 修改 /usr/src/.. 中適當的檔案.

我能在 FreeBSD 下跑 DOS 程式嗎?

是的, 從 3.0 版開始可以使用已經整合並加強的 BSDI

對 3.0 之前的系統, 在 port 中有一個極佳的工具程式 可以模擬 8088 和足夠的 BIOS 服務以執行 DOS 文字模式程式. 它須要 X Window System (由 XFree86 提供). 甚麼是 ``

意思是 Software Update Protocol, 由 CMU 發展以維持發展的同步. 我們利用他來保持遠端的站台和原始站台同步.

SUP 對頻寬的使用不友善, 而且已放棄了. 目前建議維持原始碼更新的方法是 How cool is FreeBSD?

問: 有人做過 FreeBSD 執行時的溫度測試嗎? 我知道 Linux 比 DOS 涼, 但沒聽人提過 FreeBSD. 似乎很熱.

A. No, but we have done numerous taste tests on blindfolded volunteers who have also had 250 micrograms of LSD-25 administered beforehand. 35% of the volunteers said that FreeBSD tasted sort of orange, whereas Linux tasted like purple haze. Neither group mentioned any particular variances in temperature that I can remember. We eventually had to throw the results of this survey out entirely anyway when we found that too many volunteers were wandering out of the room during the tests, thus skewing the results. I think most of the volunteers are at Apple now, working on their new ``scratch and sniff'' GUI. It's a funny old business we're in!

不開玩笑了, FreeBSD 和 Linux 都使用 `` 誰在我的記憶體插槽中沙沙作響??

問: FreeBSD 編譯核心時有做甚麼 "奇特" 的事讓記譯體沙沙作響嗎? 當編譯時(還有開機時確認軟碟後的短暫時間), 也種似乎來自記憶體插槽 的奇怪聲音.

答; 是的! 在 BSD 的文件中你會常常看到 ``背後靈'', 大部份的人 都不知道那是一種實際存在的精神體 --- 掌控著你的電腦. 你聽到的聲音 是這些背後靈以高音口哨在溝通怎樣做許多的系統管理工作.

如果這些聲音很困擾你, 來自 DOS 的 ``fdisk /mbr'' 就 能擺脫, 但如果有相反的效果也不要驚訝. 事實上, 如果在儀式中聽到 Bill Gates 恐怖的聲音從內建的喇叭傳來, 馬上逃而且不要回頭! 從 BSD 背後靈不平衡的影響中解放, DOS 和 Windows 背後靈通常都能 重新控制整台機器並對你的靈魂詛咒. 如果有選擇, 我想我寧願習慣奇 怪的聲音. MFC 是甚麼意思?

MFC 是 'Merged From -CURRENT' 的縮寫. 使用在 CVS 記錄中以 表示從 CURRENT 中整合進 STABLE 分支的改變.