FreeBSD 使用手冊

FreeBSD 文件計畫

歡迎使用FreeBSD! 本使用手冊涵蓋範圍包括了 FreeBSD 5.5-RELEASEFreeBSD 6.2-RELEASE 的安裝和日常使用。 這份使用手冊是很多人的集體創作,而且仍然『持續不斷』的進行中。 許多章節仍未完成,已完成的部份也有些需要更新。 如果您有興趣協助本計畫的話,請寄 e-mail 到 FreeBSD 文件計畫的郵遞論壇。 在 FreeBSD 網站 可以找到這份文件的最新版本(舊版文件可從 http://docs.FreeBSD.org/doc/ 取得),也可以從 FreeBSD FTP 伺服器 或是眾多 mirror 站臺 下載不同格式的資料。 如果比較偏好實體書面資料,那可以在 FreeBSD Mall 購買。 此外,也可以在 使用手冊 中搜尋資料。

Redistribution and use in source (SGML DocBook) and 'compiled' forms (SGML, HTML, PDF, PostScript, RTF and so forth) with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code (SGML DocBook) must retain the above copyright notice, this list of conditions and the following disclaimer as the first lines of this file unmodified.

  2. Redistributions in compiled form (transformed to other DTDs, converted to PDF, PostScript, RTF and other formats) must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

Important: THIS DOCUMENTATION IS PROVIDED BY THE FREEBSD DOCUMENTATION PROJECT "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD DOCUMENTATION PROJECT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

FreeBSD 是 FreeBSD基金會的註冊商標

3Com 和 HomeConnect 是 3Com Corporation 的註冊商標。

3ware 和 Escalade 是 3ware Inc 的註冊商標。

ARM 是 ARM Limited. 的註冊商標。

Adaptec 是 Adaptec, Inc. 的註冊商標。

Adobe, Acrobat, Acrobat Reader, 以及 PostScript 是 Adobe Systems Incorporated 在美國和/或其他國家的商標或註冊商標。

Apple, FireWire, Mac, Macintosh, Mac OS, Quicktime, 以及 TrueType 是 Apple Computer, Inc. 在美國以及其他國家的註冊商標。

Corel 和 WordPerfect 是 Corel Corporation 和/或其子公司 在加拿大、美國和/或其他國家的註冊商標。

Sound Blaster 是 Creative Technology Ltd. 在美國和/或其他國家的註冊商標。

CVSup 是 John D. Polstra 的註冊商標。

Heidelberg, Helvetica, Palatino, 和 Times Roman 是 Heidelberger Druckmaschinen AG 在美國以及其他國家的商標或註冊商標。

IBM, AIX, EtherJet, Netfinity, OS/2, PowerPC, PS/2, S/390, 和 ThinkPad 是 國際商用機器公司在美國和其他國家的註冊商標或商標。

IEEE, POSIX, 和 802 是 Institute of Electrical and Electronics Engineers, Inc. 在美國的註冊商標。

Intel, Celeron, EtherExpress, i386, i486, Itanium, Pentium, 和 Xeon 是 Intel Corporation 及其分支機構在美國和其他國家的商標或註冊商標。

Intuit 和 Quicken 是 Intuit Inc., 或其子公司在美國和其他國家的商標或註冊商標。

Linux 是 Linus Torvalds 的註冊商標。

LSI Logic, AcceleRAID, eXtremeRAID, MegaRAID 和 Mylex 是 LSI Logic Corp 的商標或註冊商標。

M-Systems 和 DiskOnChip 是 M-Systems Flash Disk Pioneers, Ltd. 的商標或註冊商標。

Macromedia, Flash, 以及 Shockwave Macromedia, Inc. 在美國和/或其他國家的商標或註冊商標。

Microsoft, IntelliMouse, MS-DOS, Outlook, Windows, Windows Media, 和 Windows NT 是 Microsoft Corporation 在美國和/或其他國家的商標或註冊商標。

Netscape 以及 Netscape Navigator 是 Netscape Communications Corporation 在美國和其他國家的註冊商標。

GateD 和 NextHop 是 NextHop 在美國和其他國家的商標或註冊商標。

Motif, OSF/1, 和 UNIX 是 The Open Group 在美國和其他國家的註冊商標; IT DialTone 和 The Open Group 是其商標。

Oracle 是 Oracle Corporation 的註冊商標。

PowerQuest 和 PartitionMagic 是 PowerQuest Corporation 在美國和/或其他國家的註冊商標。

RealNetworks, RealPlayer, 和 RealAudio 是 RealNetworks, Inc. 的註冊商標。

Red Hat, RPM, 是 Red Hat, Inc. 在美國和其他國家的註冊商標。

SAP, R/3, 和 mySAP 是 SAP AG 在德國以及許多其他國家的商標或註冊商標。

Sun, Sun Microsystems, Java, Java Virtual Machine, JavaServer Pages, JDK, JSP, JVM, Netra, Solaris, StarOffice, Sun Blade, Sun Enterprise, Sun Fire, SunOS, 和 Ultra 是 Sun Microsystems, Inc. 在美國和其他國家的商標或註冊商標。

Symantec 和 Ghost 是 Symantec Corporation 在美國和其他國家的註冊商標。

MATLAB 是 The MathWorks, Inc. 的註冊商標。

SpeedTouch 是 Thomson 的商標。

U.S. Robotics 和 Sportster 是 U.S. Robotics Corporation 的註冊商標。

VMware 是 VMware, Inc. 的商標

Waterloo Maple 和 Maple 是 Waterloo Maple Inc 的商標或註冊商標

Mathematica 是 Wolfram Research, Inc 的註冊商標。

XFree86 是 The XFree86 Project, Inc 的商標。.

Ogg Vorbis 和 Xiph.Org 是 Xiph.Org 的商標。

許多製造商和經銷商使用一些稱為商標的圖案或文字設計來彰顯自己的產品。 本文中出現的眾多商標,以及 FreeBSD Project 本身廣所人知的商標,後面將以 '™' 或 '®' 符號來標註。


Table of Contents
I. 開始使用 FreeBSD
1 簡介
1.1 概述
1.2 Welcome to FreeBSD!
1.3 關於 FreeBSD 計劃
2 安裝 FreeBSD
2.1 概述
2.2 安裝前的準備工作
2.3 開始安裝
2.4 介紹 Sysinstall
2.5 硬碟空間的分配
2.6 選擇想要安裝的
2.7 選擇安裝來源
2.8 開始進行安裝
2.9 後續安裝
2.10 支援的硬體
2.11 安裝的疑難雜症解決
2.12 進階安裝指南
2.13 製作安裝片
3 UNIX 基礎概念
3.1 概述
3.2 Virtual Consoles 和終端機
3.3 Permissions
3.4 Directory Structure
3.5 Disk Organization
3.6 Mounting and Unmounting File Systems
3.7 Processes
3.8 Daemons, Signals, and Killing Processes
3.9 Shells
3.10 Text Editors
3.11 Devices and Device Nodes
3.12 Binary Formats
3.13 For More Information
4 軟體套件管理篇:Packages 及 Ports 機制
4.1 概述
4.2 安裝軟體的各種方式介紹
4.3 尋找想裝的軟體
4.4 使用 Packages 管理機制
4.5 使用 Ports 管理機制
4.6 安裝之後,有什麼後續注意事項嗎?
4.7 如何處理爛掉(Broken)的 Ports?
5 X Window 視窗系統
5.1 概述
5.2 Understanding X
5.3 安裝 X11
5.4 設定 X11
5.5 在 X11 中使用字型
5.6 The X Display Manager
5.7 Desktop Environments
II. 一般性工作
6 桌面環境應用程式
6.1 概述
6.2 瀏覽器
6.3 辦公室軟體
6.4 文件閱覽器
6.5 財務
6.6 摘要
7 多媒體影音娛樂(Multimedia)
7.1 概述
7.2 設定音效卡
7.3 MP3 音樂
7.4 播放影片
7.5 設定電視卡(TV Cards)
7.6 掃描器
8 設定 FreeBSD Kernel
8.1 概述
8.2 為何需要重新調配、編譯 kernel?
8.3 重新調配、編譯 kernel
8.4 The Configuration File
8.5 Making Device Nodes
8.6 If Something Goes Wrong
9 Printing
9.1 Synopsis
9.2 Introduction
9.3 Basic Setup
9.4 Advanced Printer Setup
9.5 Using Printers
9.6 Alternatives to the Standard Spooler
9.7 Troubleshooting
10 與 Linux Binary 的相容方面
10.1 概述
10.2 安裝
10.3 Installing Mathematica®
10.4 Installing Maple
10.5 Installing MATLAB®
10.6 Installing Oracle®
10.7 Installing SAP® R/3®
10.8 Advanced Topics
III. 系統管理
11 設定與效能調校(Tuning)
11.1 概述
11.2 一開始的規劃
11.3 最主要的設定檔
11.4 各式應用程式的設定檔
11.5 各種 Services 的啟動方式
11.6 設定 cron
11.7 在 FreeBSD 5.X (含之後) 使用 rc
11.8 設定網路卡
11.9 虛擬主機(Virtual Hosts)
11.10 還有哪些主要設定檔呢?
11.11 Tuning with sysctl
11.12 Tuning Disks
11.13 Tuning Kernel Limits
11.14 Adding Swap Space
11.15 Power and Resource Management
11.16 Using and Debugging FreeBSD ACPI
12 FreeBSD 開機流程篇
12.1 概述
12.2 Booting 問題
12.3 The Boot Manager and Boot Stages
12.4 Kernel Interaction During Boot
12.5 Device Hints
12.6 Init: Process Control Initialization
12.7 Shutdown Sequence
13 使用者與基本帳號管理
13.1 概述
13.2 介紹
13.3 The Superuser Account
13.4 System Accounts
13.5 User Accounts
13.6 Modifying Accounts
13.7 對帳號的資源運用作限制
13.8 Groups
14 系統安全
14.1 概述
14.2 介紹
14.3 FreeBSD 的系統安全
14.4 DES, MD5, and Crypt
14.5 One-time Passwords
14.6 TCP Wrappers
14.7 KerberosIV
14.8 Kerberos5
14.9 OpenSSL
14.10 VPN over IPsec
14.11 OpenSSH
14.12 File System Access Control Lists
14.13 Monitoring Third Party Security Issues
14.14 FreeBSD Security Advisories
14.15 Process Accounting
15 Mandatory Access Control
15.1 Synopsis
15.2 Key Terms in this Chapter
15.3 Explanation of MAC
15.4 Understanding MAC Labels
15.5 Module Configuration
15.6 The MAC bsdextended Module
15.7 The MAC ifoff Module
15.8 The MAC portacl Module
15.9 MAC Policies with Labeling Features
15.10 The MAC partition Module
15.11 The MAC Multi-Level Security Module
15.12 The MAC Biba Module
15.13 The MAC LOMAC Module
15.14 Implementing a Secure Environment with MAC
15.15 Another Example: Using MAC to Constrain a Web Server
15.16 Troubleshooting the MAC Framework
16 Security Event Auditing
16.1 Synopsis
16.2 Key Terms - Words to Know
16.3 Installing Audit Support
16.4 Audit Configuration
16.5 Event Audit Administration
17 儲存設備篇
17.1 概述
17.2 裝置名稱
17.3 新增硬碟
17.4 RAID
17.5 USB Storage Devices
17.6 Creating and Using Optical Media (CDs)
17.7 Creating and Using Optical Media (DVDs)
17.8 Creating and Using Floppy Disks
17.9 Creating and Using Data Tapes
17.10 Backups to Floppies
17.11 Backup Strategies
17.12 Backup Basics
17.13 Network, Memory, and File-Backed File Systems
17.14 File System Snapshots
17.15 File System Quotas
17.16 Encrypting Disk Partitions
17.17 Encrypting Swap Space
18 GEOM: Modular Disk Transformation Framework
18.1 概述
18.2 GEOM 導論
18.3 RAID0 - 分散連結(striping)
18.4 RAID1 - 鏡射(Mirroring)
19 The Vinum Volume Manager
19.1 Synopsis
19.2 Disks Are Too Small
19.3 Access Bottlenecks
19.4 Data Integrity
19.5 Vinum Objects
19.6 Some Examples
19.7 Object Naming
19.8 Configuring Vinum
19.9 Using Vinum for the Root Filesystem
20 語系設定 - I18N/L10N 用法與設定
20.1 概述
20.2 L10N 基礎概念
20.3 使用語系設定(Localization)
20.4 Compiling I18N Programs
20.5 Localizing FreeBSD to Specific Languages
21 更新、升級 FreeBSD
21.1 概述
21.2 FreeBSD-CURRENT vs. FreeBSD-STABLE
21.3 更新你的 Source
21.4 Rebuilding “world”
21.5 Tracking for Multiple Machines
IV. 網路通訊
22 Serial Communications
22.1 Synopsis
22.2 Introduction
22.3 Terminals
22.4 Dial-in Service
22.5 Dial-out Service
22.6 Setting Up the Serial Console
23 PPP and SLIP
23.1 Synopsis
23.2 Using User PPP
23.3 Using Kernel PPP
23.4 Troubleshooting PPP Connections
23.5 Using PPP over Ethernet (PPPoE)
23.6 Using PPP over ATM (PPPoA)
23.7 Using SLIP
24 Electronic Mail
24.1 Synopsis
24.2 Using Electronic Mail
24.3 sendmail Configuration
24.4 Changing Your Mail Transfer Agent
24.5 Troubleshooting
24.6 Advanced Topics
24.7 SMTP with UUCP
24.8 Setting Up to Send Only
24.9 Using Mail with a Dialup Connection
24.10 SMTP Authentication
24.11 Mail User Agents
24.12 Using fetchmail
24.13 Using procmail
25 Network Servers
25.1 概述
25.2 The inetd “Super-Server”
25.3 Network File System (NFS)
25.4 Network Information System (NIS/YP)
25.5 Automatic Network Configuration (DHCP)
25.6 Domain Name System (DNS)
25.7 BIND9 and FreeBSD
25.8 Apache HTTP Server
25.9 File Transfer Protocol (FTP)
25.10 File and Print Services for Microsoft® Windows clients (Samba)
25.11 Clock Synchronization with NTP
26 防火牆
26.1 介紹
26.2 淺談防火牆概念
26.3 防火牆相關軟體
26.4 OpenBSD 封包過濾器 (Packet Filter, PF)及 ALTQ
26.5 IPFILTER (IPF) 防火牆
26.6 IPFW
27 Advanced Networking
27.1 Synopsis
27.2 Gateways and Routes
27.3 Wireless Networking
27.4 Bluetooth
27.5 Bridging
27.6 Diskless Operation
27.7 ISDN
27.8 Network Address Translation
27.9 Parallel Line IP (PLIP)
27.10 IPv6
27.11 Asynchronous Transfer Mode (ATM)
V. 附錄
A. 取得 FreeBSD 的方式
A.1 CDROM 及 DVD 發行商
A.2 FTP 站
A.3 Anonymous CVS
A.4 Using CTM
A.5 Using CVSup
A.6 Using Portsnap
A.7 CVS Tags
A.8 AFS Sites
A.9 rsync Sites
B. Bibliography
B.1 Books & Magazines Specific to FreeBSD
B.2 Users' Guides
B.3 Administrators' Guides
B.4 Programmers' Guides
B.5 Operating System Internals
B.6 Security Reference
B.7 Hardware Reference
B.8 UNIX History
B.9 Magazines and Journals
C. 網際網路上的資源
C.1 郵遞論壇(Mailing Lists)
C.2 Usenet Newsgroups
C.3 World Wide Web Servers
C.4 Email Addresses
C.5 Shell Accounts
D. PGP Keys
D.1 Officers
D.2 Core Team Members
D.3 Developers
FreeBSD Glossary
Index
Colophon
List of Tables
2-1. 硬體清單(舉例)
2-2. 第一顆硬碟的分割區(Partition)配置
2-3. 其他硬碟的分割區(Partition)配置
2-4. Possible Security Profiles
2-5. FreeBSD 4.X ISO Image Names and Meanings
2-6. FreeBSD 5.X ISO Image Names and Meanings
3-1. Disk Device Codes
17-1. 命名規則
19-1. Vinum Plex Organizations
22-1. DB-25 to DB-25 Null-Modem Cable
22-2. DB-9 to DB-9 Null-Modem Cable
22-3. DB-9 to DB-25 Null-Modem Cable
22-4. Signal Names
27-1. Wiring a Parallel Cable for Networking
27-2. Reserved IPv6 addresses
List of Figures
2-1. 偵測硬體的例子
2-2. 離開 Sysinstall 程式
2-3. 選擇 Sysinstall 主畫面的『Usage(快速說明)』
2-4. 選擇『Documentation(說明文件)』選單
2-5. Sysinstall 的說明文件(Documentation)選單
2-6. Sysinstall 主選單
2-7. Sysinstall 鍵盤對應選單
2-8. Sysinstall 主選單
2-9. Sysinstall 選項設定
2-10. 開始進行標準安裝
2-11. 選擇 FDisk 要分割的硬碟
2-12. (舉例)未編輯前的 Fdisk 分割區(Partition)
2-13. Fdisk 採用整顆硬碟作分割區(Partition)
2-14. Sysinstall 的 Boot Manager 選單
2-15. 離開『選擇硬碟』畫面
2-16. Sysinstall 的 Disklabel 編輯器
2-17. Sysinstall 的 Disklabel 編輯器 — 使用自動分配
2-18. Free Space for Root Partition
2-19. Edit Root Partition Size
2-20. Choose the Root Partition Type
2-21. Choose the Root Mount Point
2-22. Sysinstall Disklabel Editor
2-23. 選擇套件(Distributions)
2-24. Confirm Distributions
2-25. 選擇安裝來源
2-26. 選擇網路卡
2-27. Set Network Configuration for ed0
2-28. Editing inetd.conf
2-29. Default Anonymous FTP Configuration
2-30. Edit the FTP Welcome Message
2-31. Editing exports
2-32. Security Profile Options
2-33. System Console Configuration Options
2-34. Screen Saver Options
2-35. Screen Saver Timeout
2-36. System Console Configuration Exit
2-37. Select Your Region
2-38. Select Your Country
2-39. Select Your Time Zone
2-40. Select Mouse Protocol Type
2-41. Set Mouse Protocol
2-42. Configure Mouse Port
2-43. Setting the Mouse Port
2-44. Enable the Mouse Daemon
2-45. Test the Mouse Daemon
2-46. Network Configuration Upper-level
2-47. Select a default MTA
2-48. Ntpdate Configuration
2-49. Network Configuration Lower-level
2-50. Select Configuration Method Menu
2-51. Select Default Desktop
2-52. Select Package Category
2-53. Select Packages
2-54. Install Packages
2-55. Confirm Package Installation
2-56. Select User
2-57. Add User Information
2-58. Exit User and Group Management
2-59. Exit Install
19-1. Concatenated Organization
19-2. Striped Organization
19-3. RAID-5 Organization
19-4. A Simple Vinum Volume
19-5. A Mirrored Vinum Volume
19-6. A Striped Vinum Volume
19-7. A Mirrored, Striped Vinum Volume
List of Examples
2-1. 使用現有的分割區
2-2. 縮減現有的分割區
3-1. Sample Disk, Slice, and Partition Names
3-2. Conceptual Model of a Disk
4-1. 手動下載、安裝 Package (譯者chinsan: 這方法比較不便,建議改用 pkg_add -r )
11-1. Creating a Swapfile on FreeBSD
12-1. boot0 Screenshot
12-2. boot2 Screenshot
12-3. An Insecure Console in /etc/ttys
13-1. Configuring adduser and adding a user on FreeBSD 4.X
13-2. Adding a user on FreeBSD 5.X
13-3. rmuser Interactive Account Removal
13-4. Interactive chpass by Superuser
13-5. Interactive chpass by Normal User
13-6. Changing Your Password
13-7. Changing Another User's Password as the Superuser
13-8. Adding a Group Using pw(8)
13-9. Adding Somebody to a Group Using pw(8)
13-10. Using id(1) to Determine Group Membership
14-1. Using SSH to Create a Secure Tunnel for SMTP
17-1. Using dump over ssh
17-2. Using dump over ssh with RSH set
17-3. A Script for Creating a Bootable Floppy
17-4. Using mdconfig to Mount an Existing File System Image
17-5. Creating a New File-Backed Disk with mdconfig
17-6. Configure and Mount a File-Backed Disk with mdmfs
17-7. Creating a New Memory-Based Disk with mdconfig
17-8. Creating a New Memory-Based Disk with mdmfs
22-1. Adding Terminal Entries to /etc/ttys
24-1. Configuring the sendmail Access Database
24-2. Mail Aliases
24-3. Example Virtual Domain Mail Map
25-1. Sending inetd a HangUP Signal
25-2. Mounting an Export with amd
27-1. Branch Office or Home Network
27-2. Head Office or Other LAN
A-1. Checking Out Something from -CURRENT (ls(1)):
A-2. Using SSH to check out the src/ tree:
A-3. Checking Out the Version of ls(1) in the 6-STABLE Branch:
A-4. Creating a List of Changes (as Unified Diffs) to ls(1)
A-5. Finding Out What Other Module Names Can Be Used:

給讀者的話

若您是第一次接觸 FreeBSD 的新手,可以在本書第一部分找到 FreeBSD 的安裝方法,同時會逐步介紹 UNIX® 的基礎概念與一些常用、共通的東西。而閱讀這部分並不難,只需要您有探索的精神和接受新概念。

讀完這些之後,手冊中的第二部分花很長篇幅介紹的各種廣泛主題,相當值得系統管理者去注意。 在閱讀這些章節的內容時所需要的背景知識,都註釋在該章的大綱裡面,若不熟的話,可在閱讀前先預習一番。

延伸閱讀方面,可參閱 Appendix B

第三版的主要修訂

您目前看到的這本手冊第三版是 FreeBSD 文件計劃的成員歷時兩年完成的心血之作。 新版的主要修訂部分,如下:

第二版的主要修訂

本手冊的第二版是 FreeBSD 文件計劃的成員歷時兩年完成的心血之作。第二版包含了如下的主要變動︰

本書架構

本書主要分為五大部分,第一部份『開始使用』:介紹 FreeBSD 的安裝、基本操作。 讀者可根據自己的程度,循序或者跳過一些熟悉的主題來閱讀; 第二部分『常用操作』:介紹 FreeBSD 常用功能,這部分可以不按順序來讀。 每章前面都會有概述,概述會描述本章節涵蓋的內容和讀者應該已知的, 這主要是讓讀者可以挑喜歡的章節閱讀; 第三部分『系統管理』:介紹 FreeBSD 老手所感興趣的各種專題部分; 第四部分『網路通訊』:則包括網路和各式 Server 專題;而第五部分『附錄』:是各種有關 FreeBSD 的資源。

Chapter 1, 簡介篇

向新手介紹 FreeBSD。該篇說明了 FreeBSD 計劃的歷史、目標和開發模式。

Chapter 2, 安裝篇

介紹安裝程序。其中還有介紹一些進階的安裝主題,包括像是如何透過 serial console 來安裝。

Chapter 3, UNIX 基礎概念篇

Covers the basic commands and functionality of the FreeBSD operating system. If you are familiar with Linux or another flavor of UNIX then you can probably skip this chapter.

Chapter 4, 軟體套件管理篇

Covers the installation of third-party software with both FreeBSD's innovative “Ports Collection” and standard binary packages.

Chapter 5, X Window 視窗系統篇

Describes the X Window System in general and using X11 on FreeBSD in particular. Also describes common desktop environments such as KDE and GNOME.

Chapter 6, Desktop Applications

Lists some common desktop applications, such as web browsers and productivity suites, and describes how to install them on FreeBSD.

Chapter 7, Multimedia

Shows how to set up sound and video playback support for your system. Also describes some sample audio and video applications.

Chapter 8, Configuring the FreeBSD Kernel

Explains why you might need to configure a new kernel and provides detailed instructions for configuring, building, and installing a custom kernel.

Chapter 9, 列印篇

Describes managing printers on FreeBSD, including information about banner pages, printer accounting, and initial setup.

Chapter 10, Linux Binary Compatibility

Describes the Linux compatibility features of FreeBSD. Also provides detailed installation instructions for many popular Linux applications such as Oracle, SAP R/3, and Mathematica®.

Chapter 11, Configuration and Tuning

Describes the parameters available for system administrators to tune a FreeBSD system for optimum performance. Also describes the various configuration files used in FreeBSD and where to find them.

Chapter 12, Booting Process

Describes the FreeBSD boot process and explains how to control this process with configuration options.

Chapter 13, Users and Basic Account Management

Describes the creation and manipulation of user accounts. Also discusses resource limitations that can be set on users and other account management tasks.

Chapter 14, Security

Describes many different tools available to help keep your FreeBSD system secure, including Kerberos, IPsec and OpenSSH.

Chapter 15, Mandatory Access Control

Explains what Mandatory Access Control (MAC) is and how this mechanism can be used to secure a FreeBSD system.

Chapter 17, Storage

Describes how to manage storage media and filesystems with FreeBSD. This includes physical disks, RAID arrays, optical and tape media, memory-backed disks, and network filesystems.

Chapter 18, GEOM

Describes what the GEOM framework in FreeBSD is and how to configure various supported RAID levels.

Chapter 19, Vinum

Describes how to use Vinum, a logical volume manager which provides device-independent logical disks, and software RAID-0, RAID-1 and RAID-5.

Chapter 20, Localization

Describes how to use FreeBSD in languages other than English. Covers both system and application level localization.

Chapter 21, The Cutting Edge

Explains the differences between FreeBSD-STABLE, FreeBSD-CURRENT, and FreeBSD releases. Describes which users would benefit from tracking a development system and outlines that process.

Chapter 22, Serial Communications

Explains how to connect terminals and modems to your FreeBSD system for both dial in and dial out connections.

Chapter 23, PPP and SLIP

Describes how to use PPP, SLIP, or PPP over Ethernet to connect to remote systems with FreeBSD.

Chapter 24, Electronic Mail

Explains the different components of an email server and dives into simple configuration topics for the most popular mail server software: sendmail.

Chapter 25, Network Servers

Provides detailed instructions and example configuration files to set up your FreeBSD machine as a network filesystem server, domain name server, network information system server, or time synchronization server.

Chapter 26, Firewalls

Explains the philosophy behind software-based firewalls and provides detailed information about the configuration of the different firewalls available for FreeBSD.

Chapter 27, Advanced Networking

Describes many networking topics, including sharing an Internet connection with other computers on your LAN, advanced routing topics, wireless networking, bluetooth, ATM, IPv6, and much more.

Appendix A, Obtaining FreeBSD

Lists different sources for obtaining FreeBSD media on CDROM or DVD as well as different sites on the Internet that allow you to download and install FreeBSD.

Appendix B, Bibliography

This book touches on many different subjects that may leave you hungry for a more detailed explanation. The bibliography lists many excellent books that are referenced in the text.

Appendix C, Resources on the Internet

Describes the many forums available for FreeBSD users to post questions and engage in technical conversations about FreeBSD.

Appendix D, PGP Keys

Lists the PGP fingerprints of several FreeBSD Developers.

本書的編排體裁

為方便閱讀本書,以下是一些本書所遵循的編排體裁:

文字編排體裁

斜體字(Italic)

斜體字型(Italic) 用於:檔名、目錄、網址(URL)、 強調語氣、以及第一次提及的技術詞彙。

定寬字(Monospace)

定寬字(Monospace) 用於: 錯誤訊息、指令、環境變數、port 名稱、主機名稱(hostname)、帳號、群組、設備(device)名稱、變數、 程式碼等。

粗體字型(Bold)

粗體字表示:應用程式、命令、按鍵。

使用者輸入

鍵盤輸入以 粗體字(Bold) 表示,以便與一般文字做區隔。 組合鍵是指同時按下一些按鍵,我們以 `+' 來表示連接,像是:

Ctrl+Alt+Del

也就是說,一起按 Ctrl 鍵、 Alt 鍵,以及 Del 鍵。

若要逐一按鍵,那麼會以逗號(,)來表示,像是:

Ctrl+X, Ctrl+S

也就是說:先同時按下 CtrlX 鍵, 然後放開後再同時按 CtrlS 鍵。

舉個實例

下面例子以 E:\> 為開頭的代表 MS-DOS® 指令部分。 若沒有特殊情況的話,這些指令應該是在 Microsoft® Windows® 環境的 “命令提示字元(Command Prompt)” 內執行。

E:\> tools\fdimage floppies\kern.flp A:

例子若是先以 # 為開頭再接指令的話,就是指在 FreeBSD 中以 root 權限來下命令。 你可以先以 root登入系統並下指令,或是以你自己的帳號登入,並使用 su(1) 來取得 root 權限。

# dd if=kern.flp of=/dev/fd0

例子若是先以 % 為開頭再接指令的話,就是指在 FreeBSD 中以一般帳號來下命令即可。 除非有提到其他用法,否則都是預設為 C-shell(csh/tcsh) 語法,用來設定環境變數以及下其他指令的意思。

% top

致謝

您所看到的這本書是經過數百個分散在世界各地的人所努力而來的結果。 無論他們只是糾正一些錯誤或提交完整的章節,所有的點滴貢獻都是非常寶貴有用的。

也有一些公司透過提供資金讓作者專注於撰稿、提供出版資金等模式來支持文件的寫作。 其中,BSDi (之後併入 Wind River Systems) 資助 FreeBSD 文件計劃成員來專職改善這本書直到 2000 年 3 月第一版的出版。(ISBN 1-57176-241-8) Wind River Systems 同時資助其他作者來對輸出架構做很多改進,以及給文章增加一些附加章節。這項工作結束於 2001 年 11 月第二版。(ISBN 1-57176-303-1) 在 2003-2004 兩年中,FreeBSD Mall 把報酬支付給改進這本手冊以使第三版印刷版本能夠出版的志工。

I. 開始使用 FreeBSD

這部份是提供給初次使用 FreeBSD 的使用者和系統管理者。 這些章節包括:

  • 介紹 FreeBSD 給您。

  • 在安裝過程給您指引。

  • 教您 UNIX 的基礎及原理。

  • 展示給您看如何安裝豐富的 FreeBSD 的應用軟體

  • 向您介紹 X, UNIX 的視窗系統以及詳細的桌面環境設定,讓您更有生產力。

我們試著儘可能的讓這段文字的參考連結數目降到最低,讓您在讀使用手冊的這部份時可以不太需要常常前後翻頁。


Chapter 1 簡介

Restructured, reorganized, and parts rewritten by Jim Mock.

1.1 概述

非常感謝您對 FreeBSD 感興趣!以下章節涵蓋 FreeBSD 計劃的各方面:比如它的歷史、目標、開發模式等等。

讀完這章,您將了解︰

  • FreeBSD 與其他 OS 之間的關係;

  • FreeBSD 計劃的歷史源流;

  • FreeBSD 計劃的目標;

  • FreeBSD open-source 開發模式的基礎概念;

  • 當然囉,還有 “FreeBSD” 這名字的緣故。


1.2 Welcome to FreeBSD!

FreeBSD 是一個從 4.4BSD-Lite 衍生出而能在以 Intel (x86 and Itanium®), AMD64, Alpha™, Sun UltraSPARC® 為基礎的電腦上執行的作業系統。同時,移植到其他平台的工作也在進行中。 對於本計劃歷史的介紹,請看 FreeBSD 歷史源流, 對於 FreeBSD 的最新版本介紹,請看 current release 。若打算對於 FreeBSD 計劃有所貢獻的話(像是程式碼硬體設備,資金), 請看 如何對 FreeBSD 有貢獻


1.2.1 FreeBSD 能做什麼?

FreeBSD 提供給你許多先進功能。這些功能包括:

  • 動態優先權調整的『先佔式多工』能夠確保,即使在系統負擔很重的情況下, 程式執行平順並且應用程式與使用者公平地共享資源。

  • 『多人共用(multi-user)』代表著許多人可以同時使用一個 FreeBSD 系統來處理各自的事務。 系統的硬體周邊(如印表機及磁帶機)也可以讓所有的使用者適當地分享。 也可以針對各別使用者或一群使用者的系統資源,予以設限, 以保護系統不致被過度使用。

  • 好用的『TCP/IP 網路功能』可支援許多業界標準,比如:SLIP、PPP、NFS、DHCP 和 NIS 的支援,也就是說 FreeBSD 可以容易地跟其他作業系統透過網路共同運作, 或是當作企業的伺服器用途,例如提供遠端檔案共享(NFS)及電子郵件(email)等服務, 或是讓您的企業連上網際網路(Internet)並提供 WWW、FTP、路由(routing) 、及防火牆(firewall、security) 等必備服務。

  • 『記憶體保護(Memory protection)』能確保程式(或是使用者)不會互相干擾, 即使任何程式有不正常的運作,都不會影響其他程式的執行。

  • FreeBSD 是『32位元(32-bit)』的作業系統 (在 Alpha、Itanium、 AMD64 及 UltraSPARC 上則是『64位元(64-bit)』) — 打從一開始便是這樣設計的。

  • 業界標準的『X Window 系統』(X11R6)可以在常見的便宜 VGA 顯示卡/螢幕, 提供了圖形化的使用者介面(GUI),並且包括了完整的原始程式碼。

  • 能『直接執行』許多其他作業系統(比如: Linux、SCO、SVR4、BSDI 和 NetBSD) 的可執行檔。

  • 數以萬計的立即可以執行的應用程式,這些都可透過 FreeBSD 的『ports』及『packages』軟體管理機制來取得。 不再需要費心到網路上到處搜尋所需要的軟體。

  • 此外,網路上尚有可非常容易移植的數以萬計應用程式。 FreeBSD 的原始程式碼與許多常見的商業版 UNIX 系統都相容, 所以大部分的程式都只需要很少的修改(或根本不用修改) ,就可以編譯執行。

  • 需要時才置換(demand paged) virtual memory 及 “merged VM/buffer cache” 的設計, 這點在系統中有用去大量記憶體的程式執行時,仍然有不錯的效率表現。

  • 支援 CPU 的對稱多工處理(SMP):可以支援多 CPU 的電腦系統。

  • 完全相容的 CC++ 以及 Fortran 的環境和其他開發工具。 以及其他許多可供進階研發的程式語言也收集在 ports 和 packages。

  • 整個系統都有『原始程式碼』, 這讓你對作業環境擁有最完全的掌握度。 既然能擁有完全開放的系統,何苦被特定封閉軟體所約束,任廠商擺佈呢?

  • 廣泛且豐富的『線上文件』。

  • 當然囉,還不止如此!

FreeBSD 系統乃是基於美國加州大學柏克萊分校的電腦系統研究群 (Computer Systems Research Group 也就是 CSRG) 所發行的 4.4BSD-Lite,以及基於 BSD 系統開發的優良傳統。 除了由 CSRG 所提供的高品質的成果, 為了提供可處理真正具負荷的工作, FreeBSD 計劃也投入了數千小時以上的細部調整, 以能獲得最好的執行效率以及系統的穩定度。 正當許多商業上的巨人正努力地希望能提供效能及穩定時, FreeBSD 已經具備這樣的特質 -- 就是現在

FreeBSD 的運用範圍無限,其實完全限制在你的想像力上。 從軟體的開發到工廠自動化,或是人造衛星上面的天線的方位角度的遠端控制; 這些功能若可以用商用的 Unix 產品來達成, 那麼極有可能使用 FreeBSD 也能辦到! FreeBSD 也受益於來自於全球各研究中心及大學所開發的數千個高品質的軟體 ,這些通常只需要花費很少的費用或根本就是免費的。 當然也有商業軟體,而且出現的數目是與日俱增。

由於每個人都可以取得 FreeBSD 的原始程式碼, 這個系統可以被調整而能執行任何原本完全無法想像的功能或計劃, 而對於從各廠商取得的作業系統通常沒有辦法這樣地被修改。 以下提供一些人們使用 FreeBSD 的例子:

  • 網路服務: FreeBSD 內建強勁的網路功能使它成為網路服務(如下例)的理想平台:

    • 檔案伺服器(FTP servers)

    • 全球資訊網伺服器(WWW servers) (標準的或更安全的 SSL 連線)

    • 防火牆以及 NAT (“IP masquerading”) gateways。

    • 電子郵件伺服器(Electronic Mail servers)

    • 網路新聞伺服器(USENET News) 或是電子佈告欄系統(BBS)

    • 還有更多...

    有了 FreeBSD,您可以容易地先用便宜的 386 PC, 再逐步升級您的機器到四個 CPU 的 Xeon 並使用磁碟陣列(RAID)來滿足您企業運用上的需求。

  • 教育: 如果你是資訊或相關工程領域的學生,再也沒有比使用 FreeBSD 能學到更多作業系統、計算機結構、及網路的方法了。 另外如果你想利用電腦來處理一些其他的 工作,還有一些如 CAD、 數學運算以及圖形處理軟體等可以免費地取得使用。

  • 研究:有了完整的原始程式碼,FreeBSD 是研究作業系統及電腦科學的極佳環境。 具有免費且自由取得特性的 FreeBSD 也使得一個分置兩地的合作計劃,不必擔心版權及系統開放性的問題, 而能自在的交流。

  • 網路: 你如果需要 router、Name Server (DNS) 或安全的防火牆(Firewall), FreeBSD 可以輕易的將你沒有用到的 386 或 486 PC 變身成為絕佳的伺服器,甚至具有過濾封包(packet-filter) 的功能。

  • X 視窗工作站: FreeBSD 是 X 終端機的良策,你可以使用免費的 X11 Server 或是由 Xi Graphics 所提供的商業版 X Server。 FreeBSD 不但可以充當遠端 X 程式終端機, 也可以執行本地的 X 程式而減輕大型工作站的負荷。 如果有一台中央伺服器的話,FreeBSD 甚至可以經由網路開機 (不需硬碟,也就是“diskless”) ,而變成更便宜且易於管理的工作站。

  • 軟體開發: 基本安裝的 FreeBSD 就包含了完整的程式開發工具,如 GNU C/C++ 編譯器及除錯器。

你可以經由燒錄 CDROM、DVD 或是從 FTP 站上抓回 FreeBSD -- 包括立即可執行的系統以及系統的完整程式碼。 詳情請參閱 Appendix A 取得 FreeBSD。


1.2.2 誰在用 FreeBSD?

許多 Internet 上的大型網站都是以 FreeBSD 作為它的作業系統,例如:

以及許多其他的網站。


1.3 關於 FreeBSD 計劃

接下來講的是 FreeBSD 計劃的背景,包含歷史源流的簡介、計劃的目標,以及開發的模式。


1.3.1 FreeBSD 歷史源流的簡介

Contributed by Jordan Hubbard.

FreeBSD 計畫的想法是在 1993 年初所形成的, 那是源自於維護一組 『非官方 386BSD 的 patchkit(修正工具)』計劃的三個協調維護人 Nate Williams,Rod Grimes 和我(Jordan Hubbard)。

我們最初的目標是做出一份 386BSD 綜合修正的 snapshot 版,以便修正當時一堆 patchkit 都不容易解決的問題。有些人可能還記得早期的計劃名稱叫做 “386BSD 0.5” 或 “386BSD Interim” 就是這個原因。

386BSD 是 Bill Jolitz 的作業系統,在當時就已有約一年的分裂討論。 當該修正工具 (patchkit) 日漸龐雜得令人不舒服,我們無異議地同意要作一些事了, 並決定提供一份臨時性的 “淨化版(cleanup)” 來幫助 Bill。 然而,由於 Bill Jolitz 忽然決定取消其對該計劃的認可,且沒有明確指出未來的打算, 所以該計劃便突然面臨斷炊危機。

不久我們便決定在即使沒有 Bill 的支持下,讓該計劃仍然繼續下去, 最後我們採用 David Greenman 丟銅板決定的名字,也就是『FreeBSD』。 在詢問了當時的一些使用者意見之後,就開始決定了最初的目標, 當該計劃開始實施一切就要成真時,一切就變得更清楚了。 我跟 Walnut Creek CDROM 討論發行 CDROM 這樣子不便上網的人就可以用比較簡單的方式取得 FreeBSD。 Walnut Creek CDROM 不只贊成以 CDROM 來發行 FreeBSD 的想法,同時提供了一台機器以及快速的網際網路的頻寬。 如果不是 Walnut Creek CDROM 幾乎是空前的信任這個剛開始還是完全默默無聞的計劃, 那麼很可能 FreeBSD 不會如此快速的成長到今日這樣的規模。

第一張以 CDROM (及網路)發行的 FreeBSD 1.0 是在 1993 年十二月。 該版本是基於由 U.C. Berkeley 以磁帶方式發行的 4.3BSD-Lite (“Net/2”)以及許多來自於 386BSD 和自由軟體基金會的軟體。對於第一次發行而言還算成功, 我們又接著於 1994 年 5 月發行了相當成功的 FreeBSD 1.1。

然而此後不久,另一個意外的風暴在 Novell 和 U.C. Berkeley 關於 Berkeley Net/2 磁帶之法律地位的訴訟確定之後形成。 U.C. Berkeley 接受大部份的 Net/2 的程式碼都是『侵佔來的』且是屬於 Novell 的財產 -- 事實上是當時不久前從 AT&T 取得的。 Berkeley 得到的是 Novell 對於 4.4BSD-Lite 的『祝福』,最後當 4.4BSD-Lite 終於發行之後,便不再是侵佔行為。 而所有現有 Net/2 使用者都被強烈建議更換新版本,這包括了 FreeBSD。 於是,我們被要求於 1994 年 6 月底前停止散佈基於 Net/2 的產品。在此前提之下,本計劃被允許在期限以前作最後一次發行,也就是 FreeBSD 1.1.5.1。

FreeBSD 便開始了這宛如『重新發明輪子』的艱鉅工作 -- 從全新的且不完整的 4.4BSD-Lite 重新整合。 這個 “Lite” 版本是不完整的,因為 Berkeley 的 CSRG 已經刪除了大量在建立一個可以開機執行的系統所需要的程式碼 (基於若干法律上的要求),且該版本在 Intel 平台的移植是非常不完整的。 直到 1994 年 11 月本計劃才完成了這個轉移, 同時在該年 12 月底以 CDROM 以及網路的形式發行了 FreeBSD 2.0。 雖然該份版本在當時有點匆促粗糙,但仍是富有意義的成功。 隨之於 1995 年 6 月又發行了更容易安裝,更好的 FreeBSD 2.0.5。

我們在 1996 年 8 月發行了 FreeBSD 2.1.5,在 ISP 和商業團體中非常流行。 隨後, 2.1-STABLE 分支的另一個版本應運而生,它就是在 1997 年 2 月發行 FreeBSD 2.1.7.1 ,同時也是 2.1-STABLE 分支的最後版。之後此分支便進入維護狀態, 僅僅提供安全性的加強和其他嚴重錯誤修補的維護(RELENG_2_1_0)。

1996 年 11 月 FreeBSD 2.2 從開發主軸分支 (“-CURRENT”) 出來成為 RELENG_2_2 分支。它的第一個完整版(2.2.1)於 1997 年 4 月發行。 2.2 分支的延續版本在 97 年夏秋之間發行的,其最後版是在 1998 年 11 月發行的 2.2.8 版。 第一個正式的 3.0 版本在 1998 年 10 月發行,亦即宣告 2.2 分支的落幕。

1999/01/20 日再度分支,這產生了 4.0-CURRENT 以及 3.X-STABLE 兩個分支。 3.X-STABLE 方面,3.1 發行於 1999/02/15,3.2 發行於1999/05/15,3.3 發行於 1999/09/16, 3.4 發行於 1999/12/20,3.5 發行於 2000/06/24 ,接下來幾天後發佈了一些的修補檔(對 Kerberos 安全性方面的修正),就升級至 3.5.1 ,這是 3.X 分支最後一個發行版本。

在 2000/03/13 又有了一個新的分支, 也就是 4.X-STABLE 。這個分支之後發佈了許多的發行版本︰ 4.0-RELEASE 在 2000 年 3 月發行, 而最後的 4.11-RELEASE 則在 2005 年 1 月發行。4-STABLE 分支的支援會持續到 2007/01/31 ,但主要焦點在於安全方面的漏洞、臭蟲及其他嚴重問題的修補。

期待已久的 5.0-RELEASE 在 2003/01/19 正式發行。這是將近開發三年的巔峰之作,同時 也開始加強多顆CPU(SMPng)的支援、kernel thread(KSE) 的支援、檔案系統採用 UFS2 以及支援 snapshot 等, 並支援 UltraSPARCia64 平台、支援藍芽、32 bit 的 PCMCIA 等。之後於 2003 年 6 月發行了 5.1。 而 -CURRENT 這個發展主軸分支的最後 5.X 版本是在 2004 年 2 月正式發行的 5.2.1-RELEASE,在 5.X 系列進入 -STABLE (RELENG_5分支)之後,-CURRENT 就轉移為 6.X 系列。

RELENG_5 分支於 2004 年 8 月正式開跑,之後是 5.3-RELEASE ,它是 5-STABLE 分支的第一個發行版本。5.5-RELEASE 的最新發表是在 May 2006 發行的 5.5-RELEASE,照往例 RELENG_5 分支還將有後續的發行版。

RELENG_6 分支於 2005 年 7 月開跑,而 6.X 分支的第一個 release(6.0-RELEASE) 是在 2005 年 11 月出的。 最新的 6.2-RELEASE 是在 Jan 2007 發行。當然囉,RELENG_6 分支還將有後續的發行版。

目前,長期的開發計畫繼續在 7.X-CURRENT (trunk) 分支中進行,而 7.X 的 CDROM (當然,也可以用網路抓) snapshot 版本可以在 FreeBSD snapshot server 取得。


1.3.2 FreeBSD 計劃的目標

Contributed by Jordan Hubbard.

FreeBSD 計劃的目標在於提供可作任意用途的軟體而不附帶任何限制條文。 我們之中許多人對程式碼 (以及計畫本身) 都有非常大的投入, 因此,當然不介意偶爾有一些資金上的補償,但我們並沒打算堅決地要求得到這類資助。 我們認為我們的首要『使命(mission)』是為任何人提供程式碼, 不管他們打算用這些程式碼做什麼, 因為這樣程式碼將能夠被更廣泛地使用,從而發揮其價值。 我認為這是自由軟體最基本的,同時也是我們所倡導的一個目標。

我們程式碼樹中,有若干是以 GNU GPL 或者 LGPL 發佈的那些程式碼帶有少許的附加限制,還好只是強制性的要求開放程式碼而不是別的。 由於使用 GPL 的軟體在商業用途上會增加若干複雜性,因此,如果可以選擇的話, 我們會比較喜歡使用限制相對更寬鬆的 BSD 版權來發佈軟體。


1.3.3 FreeBSD 的開發模式

Contributed by Satoshi Asami.

FreeBSD 的開發是一個非常開放且具彈性的過程,就像從 貢獻者名單 所看到的,是由全世界上千上萬的貢獻者發展起來的。 FreeBSD 的開發基礎架構允許數以百計的開發者透過網際網路協同工作。 我們也經常關注著那些對我們的計畫感興趣的新開發者和新的創意, 那些有興趣更進一步參與計劃的人只需要在 FreeBSD technical discussions mailing list 連繫我們。 FreeBSD announcements mailing list 對那些希望了解我們進度的人也是相當有用的。

無論是單獨開發者或者封閉式的團隊合作,多瞭解 FreeBSD 計劃和它的開發過程會是不錯的︰

The CVS repository

FreeBSD 的中央 source tree 是以 CVS (Concurrent Versions System) 來維護的,它是個自由軟體,可用來做為版本控制,一裝完 FreeBSD 內就有附了。 最主要的 CVS repository 是位於美國加州 Santa Clara 的某台機器上, 然後再 mirror 到世界上其他的許多機器上。CVS tree 內有兩個主分支:-CURRENT 以及 -STABLE ,這些都可輕鬆複製到自己機器上。 詳情請參閱 更新你的 source tree 一節。

The committers list

所謂的 committers 指的是對 CVS tree 有 write 權限, 並依不同授權部分,而有不同權限可修改 FreeBSD source。 (“committer” 這詞源自 cvs(1) 中的 commit 指令,該指令是用來把新的修改提交給 CVS repository。) 而提交修改給 committer 們檢查的最好方式,就是用 send-pr(1) 指令。 若提交 PR 的流程、系統上有壅塞現象的話,也可以改用寄信方式,寄信到 FreeBSD committer's mailing list 即可。

The FreeBSD core team

如果把 FreeBSD 看成是一家公司的話,FreeBSD core team 就相當於『董事會(board of directors)』。 core team 的主要職責在於確保此計劃有良好的架構,以朝著正確的方向發展。 此外,邀請熱血且負責的軟體開發者加入 committers 行列,以在若干成員離去時得以補充新血。 目前的 core team 是在 2004 年 6 月 committers 候選人中選出來的,每兩年會舉辦一次選舉

有些 core team 成員還負責某些特定範圍,也就是說他們必須盡量確保一些子系統的穩定、效能。 關於 FreeBSD 開發者們以及各自責任範圍,請參閱 貢獻者名單

Note: core team 大部分成員加入 FreeBSD 開發都是志工性質而已,並未從本計劃中獲得任何薪酬, 所以不該把 “commitment” 誤解為 “guaranteed support” 才對。 剛前面所講的『董事會』可能是不恰當的類推,或許我們應該說: 他們是一群自願放棄原本的優渥生活、個人其他領域成就,而選擇投入 FreeBSD 開發的熱血有為者才對!

其他的貢獻者

最後一點,但這點絕非最不重要的,最大的開發者團隊就是持續為我們提供回饋以及錯誤修正的使用者自己。 與 FreeBSD 非核心開發者互動的主要方式,便是透過訂閱 FreeBSD technical discussions mailing list 來進行溝通, 這方面可參考,請參閱 Appendix C 以瞭解各式不同的 FreeBSD 郵遞論壇(mailing lists)。

FreeBSD 貢獻者名單 相當長且不斷成長中,只要有貢獻就會被列入其中,要不要立即考慮貢獻 FreeBSD 一些回饋呢?

然而,提供原始碼並非為這個計劃做貢獻的唯一方式; 還需要大家投入的完整工作列表、說明,請參閱 FreeBSD 官網

簡單的說,我們的開發模式就像是一組沒有拘束的同心圓。 這種集中開發模式是以 給使用者方便 為主, 同時讓他們能很容易地共同維護軟體,而不會把潛在的貢獻者排除在外! 我們的目標是提供含有大量一致性的 應用軟體(ports/packages) ,以便讓使用者輕鬆安裝、使用的作業系統 —— 而這開發模式相當符合此一目標。

我們對於那些想要加入 FreeBSD 開發者的期待是:請保持如同前人一樣的投入,以確保繼續成功!


1.3.4 最新的 FreeBSD 發行版本

FreeBSD 是免費使用且帶有完整原始程式碼的以 4.4BSD-Lite 為基礎的系統,可以在 Intel i386™, i486™, Pentium®, Pentium Pro, Celeron®, Pentium II, Pentium III, Pentium 4 (或者相容型號), Xeon™, DEC Alpha 和 Sun UltraSPARC 為基礎的電腦上執行的作業系統。 它主要以加州大學巴爾克利分校 的 CSRG 研究小組的軟體為基礎,並加入了 NetBSD、OpenBSD、386BSD 以及自由軟體基金會的一些東西。

自從 1994 年末,我們發佈了 FreeBSD 2.0 之後,系統的執行效率、 功能、穩定性都有了令人注目的提升。 最大的改變就是我們將記憶體與檔案系統的 cache 機制結合在一起。 這不只使得系統的表現變得更好, 並且使得 FreeBSD 系統最少的記憶體需求減少到 5 MB。 其它的改進包括完整的 NIS cilent and server 功能支援, 支援 transaction TCP、PPP 撥接連線、整合的 DHCP 支援、 SCSI 子系統的改進、ISDN 的支援,ATM、FDDI 以及乙太網路 (Ethernet、包括 100 Mbit 和 Gigabit) 的支援,提升了最新的 Adaptec 控制卡驅動程式的改善,以及數以千計的 bug 修正。

除了最基本的系統軟體,FreeBSD 還提供了廣受歡迎的套件軟體管理機制: Ports Collection。 到本書付印時,已有超過 16,000 個 ports,其中範疇包括從 http(WWW) 伺服器到遊戲、程式語言、編輯器以及您能想到的幾乎所有的東西。 完整的 Ports Collection 需要約 440 MB 的硬碟空間,除了 port 基本架構檔案外,都只儲存與該 port 軟體的原始碼有『須要變更』的部份。 如此一來,我們可以更容易更新這些 ports, 也大量的減少如舊的 1.0 版 Ports Collection 對於硬碟空間的需求。 要安裝一個 port 的話,只需要進入該 port 的目錄,輸入 make install ,這樣子系統就會幫你裝好了。您要編譯的每個程式的完整原始程式, 都可從 FTP 或 CDROM 中獲得,所以您只需準備足夠的硬碟空間來編譯你要的 port 軟體。 幾乎每一個 port 都有已事先編譯好的 “package”以方便安裝, 如果不想從編譯 port 的人,只要用個簡單指令(pkg_add)就可以安裝。 有關 packages 和 ports 的細節,可以參閱 Chapter 4

FreeBSD 主機的 /usr/share/doc 目錄下找到許多有用的文件, 來幫助您安裝、使用 FreeBSD。也可以使用下面的網址,以瀏覽器來翻閱本機上安裝的手冊︰

FreeBSD 使用手冊

/usr/share/doc/handbook/index.html

FreeBSD 常見問答集

/usr/share/doc/faq/index.html

此外,可在下列網址找到最新版 (也是更新最頻繁的版本):http://www.FreeBSD.org/


Chapter 2 安裝 FreeBSD

Restructured, reorganized, and parts rewritten by Jim Mock. The sysinstall walkthrough, screenshots, and general copy by Randy Pratt.

2.1 概述

FreeBSD 提供一個簡單好用的文字介面安裝程式,叫做 sysinstall。 這是 FreeBSD 預設使用的安裝程式。協力廠商如果想,也可以改用自己的安裝程式。 本章將說明如何使用 sysinstall 來安裝 FreeBSD。

讀完這章,您將了解︰

  • 如何製作 FreeBSD 安裝片

  • FreeBSD 對硬碟的使用及配置。

  • 如何啟動 sysinstall 程式。

  • 在執行 sysinstall 時會問的相關問題有哪些、 這些問題的意思為何、以及該如何回答。

在開始閱讀這章之前,您需要︰

  • 閱讀要安裝的 FreeBSD 版本所附之硬體支援表,以確定您的硬體有沒有被支援。

Note: 一般來說,此安裝說明是針對 i386 (相容的 PC 機種) 架構的電腦。 如果有其他架構(比如 Alpha)的安裝說明,我們會一併列出。 雖然本文件會常常更新,但有可能與您安裝版本上所附的說明文件有些許出入。 在此,我們建議您把本說明文章當作一般的安裝參考原則就好。


2.2 安裝前的準備工作

2.2.1 列出您電腦的硬體清單

在安裝 FreeBSD 之前,您應該試著將您電腦中的硬體清單列出來。 FreeBSD 安裝程式會將這些硬體(硬碟、網路卡、光碟機等等)以型號及製造廠商列出來。 FreeBSD 也會嘗試為這些硬體找出最適當的 IRQ 及 IO port 的設定。 但是因為 PC 的硬體種類實在太過複雜,這個步驟不一定保證絕對成功。 這時,您就可能需要手動更改有問題的設定值哩。

如果您已裝了其它的作業系統,如: Windows 或 Linux,那麼可先由這些系統所提供的工具,來查看這些硬體設定值是怎麼設定的。 若真的沒辦法確定某些卡用什麼設定值,那麼可以檢查看看卡上面所標示的東西,說不定它的設定已有標示在卡上。 常用的 IRQ 號碼為 3、5 以及 7;而 IO 埠的值通常以 16 進位表示,例如 0x330。

建議您在安裝 FreeBSD 之前,把這些資料列印或抄錄下來,做成表格的樣子也許會較有用喔,例如:

Table 2-1. 硬體清單(舉例)

硬體名稱 IRQ IO port(s) 備註
第一顆 IDE 硬碟 N/A N/A 40 GB,Seagate 製造,first IDE master
CDROM N/A N/A First IDE slave
第二顆硬碟 N/A N/A 20 GB,IBM 製造, second IDE master
第一個 IDE controller 14 0x1f0  
網路卡 N/A N/A Intel® 10/100
數據機 N/A N/A 3Com® 56K faxmodem,接在 COM1
...      

2.2.2 備份您的資料

如果要裝的電腦上面存有重要資料,那麼在安裝 FreeBSD 前, 請確定您已經將這些資料備份了,並且先測試過這些備份檔是否沒有問題。 FreeBSD 安裝程式在要寫入任何資料到您的硬碟前,都會先提醒您確認, 一旦您確定要寫入,那麼之後就再也沒有反悔的機會囉。


2.2.3 決定要將 FreeBSD 安裝到哪裡

如果您想讓 FreeBSD 直接使用整顆硬碟,那麼請直接跳到下一節。

然而,如果您想要 FreeBSD 跟既有的系統並存,那麼,您必須對硬碟的資料分佈方式有深入的了解, 以及其所造成的影響。


2.2.3.1 i386™ 架構的硬碟配置模式

PC 上的硬碟可以被細分為許多分散的區域。這些區域叫做 分割區(Partitions)。 因為設計的方式,每個硬碟最多可以有 4 個分割區,而這些分割叫做 主要分割區(Primary Partitions)。 為了突破這個限制,以便能使用更多的分割區,就有了新的分割區類型,叫作: 延伸分割區(Extended Partition)。 每個硬碟就只能有一個延伸分割區。然而,在延伸分割區裡面可以建立許多個特殊分割區,叫作 邏輯分割區(Logical Partitions)

每種分割區都有其 分割區代號(Partition ID) 用以區別每種分割區的資料類型。而 FreeBSD 分割區代號是 165

一般來講,每種作業系統都會有自己獨特的方式來區別分割區。舉例: DOS 及其之後的作業系統,比如 Windows ,會分配給每個主要分割區及邏輯分割區 1 個 磁碟代號(drive letter),從 C: 開始。

FreeBSD 必須安裝在主要分割區。FreeBSD 可以在這個分割區上面存放資料或是您建立的任何檔案。 然而,如果您有很多顆硬碟,也可以在這些(或部份)硬碟建立 FreeBSD 分割區。 安裝 FreeBSD 的時候,必須至少要有 1 個分割區給 FreeBSD 使用, 這個分割區可以是尚未使用的分割區,或是現存的分割區。(但上面的資料不打算繼續使用)

如果您已經用完了您磁碟上所有的分割區,那麼您必須使用其他作業系統所提供的工具 (像是 DOS or Windows 上的 fdisk)來騰出一個分割區給 FreeBSD 用。

如果有多餘的分割區,也可以使用它。但使用前,您可能需要先整理一下這些分割區。

FreeBSD最小安裝需要約 100 MB 的空間,但是這只是『最小安裝』, 幾乎沒剩下多少空間來存放您自己的檔案。 較理想的(不含圖形介面)最小安裝是約 250 MB,或者是 350 MB 左右(包含圖形介面)。 還需要安裝其他的套件軟體,那麼將需要更多的硬碟空間。

您可以使用商業軟體,例如 PartitionMagic® 來重新調整分割區空間,來給 FreeBSD 用的空間。FreeBSD 光碟、FTP 上面的 tools 目錄包含兩個免費的工具,也可以達成這個工作,叫作: FIPSPResizer。這些工具的說明文件可以在同個目錄內找到。 FIPS, PResizerPartitionMagic 可以重新調整在 MS-DOSWindows ME 所使用的 FAT16FAT32 分割區大小。另外, PartitionMagic 則是上述軟體中唯一可以重新調整 NTFS 分割區大小。

Warning: 不當的使用這些工具,可能會刪除所有硬碟上的資料。 在使用這些工具前,請確定您已有先備份好資料。

Example 2-1. 使用現有的分割區

假設您只有一個 4 GB 的硬碟,而且已經裝了 Windows ,然後將這顆硬碟分成兩個磁碟代號:C:D:,每個大小為 2 GB 。 C: 槽上放了 1 GB 的資料,而 D: 槽上放了 0.5 GB 的資料。

這表示硬碟上有兩個分割區,每個磁碟代號槽都是分割區。您可以把所有放在 D: 的資料,都移動到 C: ,這樣就空出了第二個分割區可以給 FreeBSD 使用。

Example 2-2. 縮減現有的分割區

假設您只有一個 4 GB 硬碟,而且已經裝了 Windows 。在安裝 Windows 時把 4 GB 都給 C: 槽,並且現在已經用了 1.5 GB 空間,而你想將剩下空間的 2 GB 給 FreeBSD 使用。

如此一來,為了裝 FreeBSD ,你必須在以下兩種方式二選一:

  1. 備份 Windows 資料,然後重裝 Windows,並在安裝 Windows 時給 2 GB 的分割空間。

  2. 使用上述的工具,像是 PartitionMagic,來重新調整 Windows 所用的分割區大小。


2.2.3.2 Alpha 架構的磁碟配置模式

在 Alpha 上,您必須使用一整顆硬碟給 FreeBSD ,沒有辦法在同顆硬碟上跟其他作業系統共存。根據不同型號的 Alpha 機器,您的硬碟可以是 SCSI 或 IDE 硬碟,只要您的機器可以從這些硬碟開機就可以。

按照 Digital / Compaq 使用手冊的編排風格,所有 SRM 輸入的部分都用大寫表示。 注意,SRM 大小寫有別。

要得知您磁碟的名稱以及型號,可以在 SRM console 提示下使用 SHOW DEVICE 命令:

>>>SHOW DEVICE
dka0.0.0.4.0               DKA0           TOSHIBA CD-ROM XM-57  3476
dkc0.0.0.1009.0            DKC0                       RZ1BB-BS  0658
dkc100.1.0.1009.0          DKC100             SEAGATE ST34501W  0015
dva0.0.0.0.1               DVA0
ewa0.0.0.3.0               EWA0              00-00-F8-75-6D-01
pkc0.7.0.1009.0            PKC0                  SCSI Bus ID 7  5.27
pqa0.0.0.4.0               PQA0                       PCI EIDE
pqb0.0.1.4.0               PQB0                       PCI EIDE

例子中機器為 Digital Personal Workstation 433au 並且顯示出此機器有連接三個磁碟機。第一個是 CDROM,叫做 DKA0 ;另外兩個是磁碟機, 分別叫做: DKC0DKC100

磁碟機的名稱中有 DKx 字樣的是 SCSI 硬碟。例如: DKA100 表示是 SCSI 硬碟,其 SCSI ID 為 1, 位在第一個 SCSI 匯流排(A); 而 DKC300 表示是 SCSI 硬碟,其 SCSI ID 為 3 ,位於第三個 SCSI 匯流排(C)。裝置名稱 PKx 表示 SCSI 控制卡。由上述 SHOW DEVICE 的結果看來, SCSI 光碟機也被視為是 SCSI 硬碟的一種。

若為 IDE 硬碟的話,名稱會有 DQx 字樣,而 PQx 則表示相對應的 IDE 磁碟控制器。


2.2.4 整理你的網路設定資料

如果想透過網路( FTP 站或 NFS)安裝 FreeBSD,那麼就必須知道您的網路組態。 在安裝 FreeBSD 的過程中將會提示您輸入這些資訊,以順利完成安裝過程。


2.2.4.1 使用乙太網路(Ethernet)或 Cable/DSL 數據機上網

若使用乙太網路,或是要透過 Cable/DSL 數據機上網,那麼您必須準備 下面的資訊:

  1. IP 位址

  2. 預設 Gateway(閘道) 的 IP 位址

  3. Hostname(機器名稱)

  4. DNS 伺服器的 IP 位址

  5. Subnet Mask

若不知道這些資訊,您可以詢問系統管理者或是您的 ISP 業者。 他們可能會說這些資訊會由 DHCP 自動指派;如果是這樣的話, 請記住這一點就可以了。


2.2.4.2 使用數據機上網

若由一般的數據機撥接上網,您仍然可以安裝 FreeBSD,只是會需要很長的時間。

您必須知道:

  1. 撥接到 ISP 的電話號碼。

  2. 您的數據機是連到哪個 COM 埠。

  3. 您撥接到 ISP 所用的帳號跟密碼。


2.2.5 查閱 FreeBSD 勘誤表(Errata)

雖然我們盡力使得每個 FreeBSD 發行版本都很穩定,但是過程中仍然不免有時會發生錯誤。 在很罕見的情形下,這些錯誤會影響到安裝的過程。當發現這些錯誤且修正後,會將它們列在 FreeBSD 勘誤表(Errata) 中。在您安裝 FreeBSD 前,應該先看看勘誤表中有沒有什麼問題會影響到您的安裝。

關於所有發行版本的資訊,包括勘誤表,可以在 FreeBSD 網站發行情報(release information) 找到。


2.2.6 準備好 FreeBSD 安裝檔案

FreeBSD 可以透過下面任何一種安裝來源進行安裝︰

Local Media

  • CDROM 或 DVD

  • 現有的 DOS 分割區

  • SCSI 或 QIC 磁帶。

  • 軟碟磁片

Network

  • FTP 站、支援 Passvie 模式的 FTP 站(若您機器在 NAT 內)、甚至 HTTP proxy 都可以。

  • NFS 伺服器

  • 專用(dedicated)的 parallel 或 serial 連線

若已經有 FreeBSD 的 CD 或 DVD,但機器不支援從光碟開機的話,那麼請直接進下一節 (Section 2.2.7)。

若沒有 FreeBSD 安裝片的話,那麼請先看 Section 2.13 這裡會介紹如何準備所需要的安裝片,照該節步驟弄好後,就可以繼續下一步 Section 2.3


2.2.7 準備好開機磁片

FreeBSD 安裝流程是要從電腦開機後,進入 FreeBSD 安裝畫面 —— 而不是在其他作業系統上執行程式。 一般來講,電腦都是用裝在硬碟上的作業系統來開機,也可以用開機磁片來開機; 此外,現在大多數電腦都可以從光碟開機。

Tip: 如果您有 FreeBSD 的 CDROM 或 DVD(無論是用買的或是自己燒錄的), 且您的電腦可支援由光碟開機, (通常在 BIOS 中會有 “Boot Order” 或類似選項),那麼您就可以跳過此小節。因為 FreeBSD CDROM 或 DVD 都可以用來開機。

請按照下面步驟,以製作開機片:

  1. 取得開機片的映像檔(images)

    開機磁片用的映像檔(images)通常會放在光碟片上的 floppies/ 目錄內,另外也可以從像是下面 FTP 站的 floppies 目錄下載: ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/<arch>/<version>-RELEASE/floppies/ 。請將『arch』、『version』替換為打算安裝的電腦架構、OS 版本。例如:要裝的電腦屬 i386 架構,而要裝的是 FreeBSD 6.2-RELEASE ,那麼可以到 ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/6.2-RELEASE/floppies/ 下載。

    映像檔(images)的附檔名都是 .flp 。而 floppies/ 目錄內包含一些不同用途的映像檔(images), 這取決於您要裝的 FreeBSD 版本、需求、硬體配備為何。 通常要 3 個映像檔,也就是: boot.flpkern1.flpkern2.flp。若有疑問的話,請翻閱同一目錄下的 README.TXT 文件檔,以瞭解相關最新注意事項。

    Note: 安裝 FreeBSD 5.3 之前的 5.X 系統時,有些硬體設備可能需要額外的驅動程式才能使用。 這些驅動程式都會放在 drivers.flp 這個映像檔內。

    Important: 在使用 FTP 下載時,必須使用 binary 模式 進行傳輸。有些瀏覽器預設是以 text (或 ASCII) 模式來傳輸資料,所以這些錯誤傳輸模式下載的映像檔所做成的磁片,會無法使用。

  2. 準備開機磁片

    每個映像檔都需要一張磁片,並且請避免使用到壞的磁片。最簡單的檢測方式就是自己先把這些磁片再重新格式化(format) 而不要相信所謂的已格式化的磁片,Windows 內的 format 在格式化時,並不會告訴你是否有壞軌,而只會直接將它們標示壞軌而不使用壞軌部分而已。 此外,建議採用全新的磁片來製作安裝片比較保險。

    Important: 若在安裝 FreeBSD 的過程中發生當機、畫面凍結或是其他怪異的現象,首先要懷疑的就是開機磁片是否壞掉。 請用其他的磁片製作映像檔再試試看。

  3. 將映像檔(images)寫入到磁片內

    .flp 檔並非一般檔案,不能直接把它複製到磁片上。 事實上它是包含整張磁片所有內容的映像檔(image)。也就是說,不能純粹複製檔案到磁片上, 而必須使用特別的工具程式,來將映像檔直接寫到磁片上。

    若要用 MS-DOS/Windows 來作安裝片的話,那麼可以用 fdimage 工具程式來將映像檔,寫到磁片上。

    若您用的是 FreeBSD 光碟的話(假設光碟機代號為 E: ,那麼請執行類似下面的指令:

    E:\> tools\fdimage floppies\kern.flp A:
    

    請針對每個需要用到的 .flp 映像檔,重複上述的指令(記得更改相關檔名),每次的映像檔完成後, 都需要換另外一片來裝新的映像檔;請記得,在作好的磁片上註明是使用哪個映像檔作的。若 .flp 映像檔放在不同地方,請自行修改上述指令。若沒有 FreeBSD 光碟的話,可以到 FTP 上面的 tools 目錄 下載 fdimage 使用。

    如果要用 UNIX 系統(比如其他台 FreeBSD 機器)來製作開機片的話,可以用 dd(1) 指令來把映像檔直接寫入到磁片上。在 FreeBSD上的話,可以打類似下面的指令:

    # dd if=kern.flp of=/dev/fd0
    

    在 FreeBSD 中,/dev/fd0 就是指第一台軟碟機(即一般 MS-DOS/Windows 上的 A: 磁碟機);而 /dev/fd1B: 磁碟機,其餘的依此類推。不過其他的 UNIX 系統可能會用不同的名稱,這時就要查閱該系統的說明文件了。

現在起,我們可以開始安裝 FreeBSD 囉!


2.3 開始安裝

Important: 預設的情況下,安裝過程並不會改變您磁碟機中的任何資料,除非您看到下面的訊息:

Last Chance: Are you SURE you want continue the installation?

If you're running this on a disk with data you wish to save then WE
STRONGLY ENCOURAGE YOU TO MAKE PROPER BACKUPS before proceeding!

We can take no responsibility for lost disk contents!

在看到這最後的警告訊息前,您都可以隨時離開安裝程式而不會變更您的硬碟。 如果您發現有任何設定錯誤,這時您可以直接將電源關掉而不會造成任何傷害。


2.3.1 開機啟動流程篇

2.3.1.1 i386 平台的開機流程

  1. 在一開始,電腦電源開關是關閉的。

  2. 打開電腦電源開關。剛開始的時候,它應該會顯示進入系統設定選單或 BIOS 要按哪個鍵,常見的有: F2, F10, DelAlt+S。(按鍵請依據實際情況決定)不論是要按哪個鍵,請按它進入 BIOS 設定畫面。有時您的電腦可能會顯示一個圖形畫面,通常做法是按 Esc 鍵將離開這個圖形畫面,以使您能夠看到必要的設定訊息。

  3. 找出可以設定『開機順序(Boot Order)』的選項,通常該選項會列出一些設備讓您選擇,例如︰ Floppy, CDROM, First Hard Disk 等等。

    如果要用軟碟安裝,請確定 floppy disk 要列為開機順序的第一個;若要用光碟安裝,記得 CDROM 要列為開機順序的第一個。為了避免疑惑,請參考機器、主機板說明手冊。

    儲存設定並離開,系統應該會重新啟動。

  4. 若要用磁片安裝,請把在 Section 2.2.7一節中製作好的 kern.flp 那張安裝磁片放到第一台軟碟機中。

    如果是從光碟安裝,那麼開機後請將 FreeBSD 光碟放入光碟機中。

    如果,開機後如往常一樣而沒有從軟碟或光碟開機,請檢查︰

    1. 是不是磁片或光碟太晚放入而錯失開機時間。如果是,請將它們放入,然後重新開機。

    2. BIOS 設定不對或忘了儲存設定,請重新檢查 BIOS 的設定。

    3. 您的電腦 BIOS 不支援從光碟開機。

  5. 此時,FreeBSD 就開始啟動了。如果是從光碟開機,會見到類似下面的畫面(版本部分省略)::

    Verifying DMI Pool Data ........
    Boot from ATAPI CD-ROM :
     1. FD 2.88MB  System Type-(00)
    Uncompressing ... done
    
    BTX loader 1.00 BTX version is 1.01
    Console: internal video/keyboard
    BIOS drive A: is disk0
    BIOS drive B: is disk1
    BIOS drive C: is disk2
    BIOS drive D: is disk3
    BIOS 639kB/261120kB available memory
    
    FreeBSD/i386 bootstrap loader, Revision 0.8
    
    /kernel text=0x277391 data=0x3268c+0x332a8 |
    
    |
    Hit [Enter] to boot immediately, or any other key for command prompt.
    Booting [kernel] in 9 seconds... _
    

    如果您從軟碟開機,會看到類似下面的畫面(版本部分省略):

    Verifying DMI Pool Data ........ 
    
    BTX loader 1.00  BTX version is 1.01 
    Console: internal video/keyboard 
    BIOS drive A: is disk0 
    BIOS drive C: is disk1 
    BIOS 639kB/261120kB available memory 
    
    FreeBSD/i386 bootstrap loader, Revision 0.8 
    
    /kernel text=0x277391 data=0x3268c+0x332a8 |
    
    Please insert MFS root floppy and press enter:
    

    請根據提示將 kern.flp 磁片取出, 並放入 mfsroot.flp 這張磁片,然後按 Enter 鍵。若是 FreeBSD 5.3 (含之後)的話,還有另外一張磁片(在前一節已經介紹過了)。 總之,您只需從第一張磁片啟動, 然後根據提示,再放入相關磁片即可。

  6. 無論從軟碟或光碟開機,您都會看到下面這段訊息:

    Hit [Enter] to boot immediately, or any other key for command prompt. 
    Booting [kernel] in 9 seconds... _
    

    您可以等待 10 秒,或是按 Enter 鍵。


2.3.1.2 Alpha 平台的開機流程

  1. 在一開始,電腦電源開關是關閉的。

  2. 打開電腦電源開關,然後等開機畫面出現。

  3. 若要用磁片安裝,請把在 Section 2.2.7一節中製作好的 kern.flp 那張安裝磁片放到第一台軟碟機中。 然後,打下列指令來從磁片開機(請把下列軟碟機代號改為你電腦的軟碟機代號):

    >>>BOOT DVA0 -FLAGS '' -FILE ''
    

    若要用光碟安裝,請把做好的安裝片放入光碟機,然後打下列指令來從光碟開機(請把下列光碟機代號改為你電腦的光碟機代號):

    >>>BOOT DKA0 -FLAGS '' -FILE ''
    
  4. 接著 FreeBSD 開機片就會開始了。若是由軟碟開機的話,這時會看到以下訊息:

    Please insert MFS root floppy and press enter:
    

    請照指示,拿走 kern.flp 片,改放 mfsroot.flp 片,然後按 Enter

  5. 無論從軟碟或光碟開機,您都會看到下面這段訊息:

    Hit [Enter] to boot immediately, or any other key for command prompt. 
    Booting [kernel] in 9 seconds... _
    

    您可以等待 10 秒,或是按 Enter 鍵。接下來就會進入kernel configuration 選單。


2.3.2 那要怎麼去翻閱偵測硬體的結果呢?

先前在螢幕上所顯示的最後幾百行字,會存在暫存區(buffer)以便您翻閱。

若要翻閱暫存區,請按 Scroll Lock 鍵,這會開啟捲動畫面功能。 然後就可以使用方向鍵,或是 PageUpPageDown 鍵來上下翻閱。再按一次 Scroll Lock 鍵,就會停止畫面捲動。

現在就請試試看,翻閱一下偵測硬體的畫面吧, 你應該會看到類似 Figure 2-1 的畫面,真正畫面會依你的電腦設備而有所不同。

Figure 2-1. 偵測硬體的例子

avail memory = 253050880 (247120K bytes) 
Preloaded elf kernel "kernel" at 0xc0817000.
Preloaded mfs_root "/mfsroot" at 0xc0817084.
md0: Preloaded image </mfsroot> 4423680 bytes at 0xc03ddcd4

md1: Malloc disk
Using $PIR table, 4 entries at 0xc00fde60
npx0: <math processor> on motherboard   
npx0: INT 16 interface   
pcib0: <Host to PCI bridge> on motherboard
pci0: <PCI bus> on pcib0
pcib1:<VIA 82C598MVP (Apollo MVP3) PCI-PCI (AGP) bridge> at device 1.0 on pci0
pci1: <PCI bus> on pcib1
pci1: <Matrox MGA G200 AGP graphics accelerator> at 0.0 irq 11
isab0: <VIA 82C586 PCI-ISA bridge> at device 7.0 on pci0
isa0: <iSA bus> on isab0
atapci0: <VIA 82C586 ATA33 controller> port 0xe000-0xe00f at device 7.1 on pci0
ata0: at 0x1f0 irq 14 on atapci0
ata1: at 0x170 irq 15 on atapci0
uhci0 <VIA 83C572 USB controller> port 0xe400-0xe41f irq 10 at device 7.2 on pci
0
usb0: <VIA 83572 USB controller> on uhci0
usb0: USB revision 1.0
uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr1
uhub0: 2 ports with 2 removable, self powered
pci0: <unknown card> (vendor=0x1106, dev=0x3040) at 7.3
dc0: <ADMtek AN985 10/100BaseTX> port 0xe800-0xe8ff mem 0xdb000000-0xeb0003ff ir
q 11 at device 8.0 on pci0
dc0: Ethernet address: 00:04:5a:74:6b:b5
miibus0: <MII bus> on dc0
ukphy0: <Generic IEEE 802.3u media interface> on miibus0
ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
ed0: <NE2000 PCI Ethernet (RealTek 8029)> port 0xec00-0xec1f irq 9 at device 10.
0 on pci0
ed0 address 52:54:05:de:73:1b, type NE2000 (16 bit)
isa0: too many dependant configs (8)
isa0: unexpected small tag 14
orm0: <Option ROM> at iomem 0xc0000-0xc7fff on isa0
fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq2 on isa0
fdc0: FIFO enabled, 8 bytes threshold
fd0: <1440-KB 3.5" drive> on fdc0 drive 0
atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0
atkbd0: <AT Keyboard> flags 0x1 irq1 on atkbdc0
kbd0 at atkbd0
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: model Generic PS/@ mouse, device ID 0
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
sio0: type 16550A
sio1 at port 0x2f8-0x2ff irq 3 on isa0
sio1: type 16550A
ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0
pppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
ppc0: FIFO with 16/16/15 bytes threshold
plip0: <PLIP network interface> on ppbus0
ad0: 8063MB <IBM-DHEA-38451> [16383/16/63] at ata0-master UDMA33
acd0: CD-RW <LITE-ON LTR-1210B> at ata1-slave PIO4
Mounting root from ufs:/dev/md0c
/stand/sysinstall running as init on vty0

請仔細檢查每項檢測結果,以確定 FreeBSD 有正確偵測到每項硬體。 若沒偵測到硬體的話,那畫面就不會列出來了。如果該硬體需要調 IRQ 及 port address 的話,那麼請檢查是否設定正確。

若想再改一些硬體的設定,那麼先退出 sysinstall 程式,再重頭來過即可。 這方式也有助你更熟悉這些流程。

Figure 2-2. 離開 Sysinstall 程式

在主畫面選擇 Exit Install,接下來應該會出現以下訊息:

                      User Confirmation Requested 
         Are you sure you wish to exit? The system will reboot 
           (be sure to remove any floppies from the drives).

                            [ Yes ]    No

若按下 [ Yes ] 之後,卻忘了把光碟退出來的話,那麼等下重開機後又會再次啟動安裝程式了。

若你是用磁片開機的話,那麼重開機之前,請記得退出開機片吧。


2.4 介紹 Sysinstall

sysinstall 是 FreeBSD 計劃所提供的安裝程式。 它是以文字模式操作方式為主,分為幾層選單、畫面,以讓您進行安裝。

sysinstall 選單主要由方向鍵、 EnterSpace 以及其他按鍵來進行操作,在 sysinstall 主畫面的 Usage 內有這些鍵盤操作上的說明

要查閱這些說明,請將游標移到 Usage,然後選 [Select] ,這時你畫面應該會長像 Figure 2-3,接著請按 Enter 鍵。

接下來,會出現安裝的使用說明,閱讀完畢請按 Enter 以跳回主畫面。

Figure 2-3. 選擇 Sysinstall 主畫面的『Usage(快速說明)』


2.4.1 選擇『 Documentation(說明文件)』選單

在主畫面用方向鍵選擇 Doc,然後按 Enter 鍵。

Figure 2-4. 選擇『Documentation(說明文件)』選單

這時會出現說明文件的選單。

Figure 2-5. Sysinstall 的說明文件(Documentation)選單

閱讀這些說明文件很重要。

要閱讀文件的話,請用方向鍵選取要閱讀的文件然後按 Enter 鍵。讀完後,再按一次 Enter 鍵就會回到說明文件畫面了。

若要回到主畫面,用方向鍵選擇 Exit 然後按下 Enter 鍵即可。


2.4.2 選擇『鍵盤對應』選單

如果要改變鍵盤按鍵的對應模式,請在主選單選取 Keymap 然後按 Enter 鍵即可。一般情況下是不用去改,除非你用的鍵盤不是一般標準或非美式鍵盤。

Figure 2-6. Sysinstall 主選單

您可以使用上下鍵移動到您想使用的鍵盤對應方式,然後按下 Space 鍵以選取它;再按一下 Space 鍵可以取消選取。當您完成後,請選擇 [ OK ] 然後按 Enter 鍵即可。

在這個畫面顯示的只是其中一小部分; 若只要用預設鍵盤對應方式就好的話,可以用 Tab 來選 [ Cancel ] 這樣就會返回主畫面。

Figure 2-7. Sysinstall 鍵盤對應選單


2.4.3 安裝選項的設定畫面

請選 Options 然後按 Enter 鍵。

Figure 2-8. Sysinstall 主選單

Figure 2-9. Sysinstall 選項設定

通常,使用者大多用預設值就可以了,而不用修改它們。 而 Release Name 的地方則依你所安裝的版本而有所不同。

而目前所選的的項目,會在畫面下方以藍底白字顯示說明。 注意:其中右邊最後的選項是 Use Defaults(使用預設值) ,您可以藉由此選項將所有的設定還原為預設值。

另外,可以按 F1 鍵來閱讀各選項的說明。

而按 Q 鍵則是可以回到主畫面。


2.4.4 開始進行標準安裝

Standard(標準)安裝適用於那些初探 UNIX 或 FreeBSD 的使用者。用方向鍵選擇 Standard 然後按 Enter 鍵即可開始進入標準安裝。

Figure 2-10. 開始進行標準安裝


2.5 硬碟空間的分配

您的第一個任務就是要決定分配給 FreeBSD 用的磁碟空間、label, 以便 sysinstall 幫你做相關準備動作。 因此,你必須先對 FreeBSD 是如何確認磁碟的流程有個概念。


2.5.1 BIOS 磁碟機編號

在您安裝、設定 FreeBSD 之前,有很重要的一點必須注意,尤其當您有許多顆硬碟的時候。

在 PC 架構,當您跑像 MS-DOSMicrosoft Windows 這種跟 BIOS 設定相關的作業系統, BIOS 那邊可以調整正常的磁碟機順序,然後這些作業系統會跟著 BIOS 做改變。 這讓使用者不一定非得要由所謂的 “primary master” 硬碟開機。 有人發現最簡單、便宜的備份系統方式,就是再去買一顆一模一樣的硬碟, 然後定期使用 Ghost®XCOPY 來把資料從第一顆硬碟複製到第二顆硬碟上面去。 所以,當第一顆硬碟掛了(可能是病毒或壞軌造成的),就可以輕鬆透過調整 BIOS 中的開機順序, 而直接用第二顆硬碟開機。這跟將機殼拆開,把第二顆硬碟跟第一顆對調(要調 jumper)有同樣的效果, 差別就是:不用拆機殼。

此外,若裝有比較貴的 SCSI 卡系統,通常本身也有 BIOS 的功能來讓 SCSI 設備(最多可到 7 個)達到類似改變順序的功能。

習慣上述方式的使用者很可能會感到驚訝,因為在 FreeBSD 中並非如此, FreeBSD 不會參考 BIOS 設定值,而且也不能偵測 “logical BIOS drive mapping” 設定。 這會讓人感覺很疑惑,明明就是一樣的硬碟, 而且資料也完全從另一顆複製過來,結果卻沒辦法像以前那樣用。

使用 FreeBSD 的時候,請將 BIOS 中的硬碟開機順序調回原本正常的順序, 並且以後不要再改這設定。如果您需要切換硬碟順序的話,那請用硬體方式, 直接打開機殼,調jumper 及排線即可。


2.5.2 以 FDisk 來建立分割磁區(Slices)

Note: 在這時候您所做的變更都還不會真正寫入硬碟中。 如果你發現弄錯了,想要重來一遍的話, 可以用選單來離開 sysinstall, 或是按 U 鍵來 Undo(回復) 所有設定。 如果你弄亂了而且不知道怎麼離開,你可以直接將電腦電源關掉再重來。

sysinstall 主畫面選擇使用標準安裝後, 應該會看到下面的訊息:

                                 Message
 In the next menu, you will need to set up a DOS-style ("fdisk")
 partitioning scheme for your hard disk. If you simply wish to devote
 all disk space to FreeBSD (overwriting anything else that might be on
 the disk(s) selected) then use the (A)ll command to select the default
 partitioning scheme followed by a (Q)uit. If you wish to allocate only
 free space to FreeBSD, move to a partition marked "unused" and use the
 (C)reate command. 
                                [  OK  ] 

                      [ Press enter or space ]

這時請依畫面說明,按 Enter 鍵。 然後會看到一個列表,上面會列出所有在偵測硬體時所找到的硬碟。 Figure 2-11 範例顯示的是有找到兩個 IDE 磁碟機的情形, 這兩個磁碟機分別為: ad0ad2

Figure 2-11. 選擇 FDisk 要分割的硬碟

You might be wondering why ad1 is not listed here. Why has it been missed?

Consider what would happen if you had two IDE hard disks, one as the master on the first IDE controller, and one as the master on the second IDE controller. If FreeBSD numbered these as it found them, as ad0 and ad1 then everything would work.

But if you then added a third disk, as the slave device on the first IDE controller, it would now be ad1, and the previous ad1 would become ad2. Because device names (such as ad1s1a) are used to find filesystems, you may suddenly discover that some of your filesystems no longer appear correctly, and you would need to change your FreeBSD configuration.

To work around this, the kernel can be configured to name IDE disks based on where they are, and not the order in which they were found. With this scheme the master disk on the second IDE controller will always be ad2, even if there are no ad0 or ad1 devices.

This configuration is the default for the FreeBSD kernel, which is why this display shows ad0 and ad2. The machine on which this screenshot was taken had IDE disks on both master channels of the IDE controllers, and no disks on the slave channels.

You should select the disk on which you want to install FreeBSD, and then press [ OK ]. FDisk will start, with a display similar to that shown in Figure 2-12.

The FDisk display is broken into three sections.

The first section, covering the first two lines of the display, shows details about the currently selected disk, including its FreeBSD name, the disk geometry, and the total size of the disk.

The second section shows the slices that are currently on the disk, where they start and end, how large they are, the name FreeBSD gives them, and their description and sub-type. This example shows two small unused slices, which are artifacts of disk layout schemes on the PC. It also shows one large FAT slice, which almost certainly appears as C: in MS-DOS / Windows, and an extended slice, which may contain other drive letters for MS-DOS / Windows.

The third section shows the commands that are available in FDisk.

Figure 2-12. (舉例)未編輯前的 Fdisk 分割區(Partition)

What you do now will depend on how you want to slice up your disk.

If you want to use FreeBSD for the entire disk (which will delete all the other data on this disk when you confirm that you want sysinstall to continue later in the installation process) then you can press A, which corresponds to the Use Entire Disk option. The existing slices will be removed, and replaced with a small area flagged as unused (again, an artifact of PC disk layout), and then one large slice for FreeBSD. If you do this, then you should select the newly created FreeBSD slice using the arrow keys, and press S to mark the slice as being bootable. The screen will then look very similar to Figure 2-13. Note the A in the Flags column, which indicates that this slice is active, and will be booted from.

If you will be deleting an existing slice to make space for FreeBSD then you should select the slice using the arrow keys, and then press D. You can then press C, and be prompted for size of slice you want to create. Enter the appropriate figure and press Enter. The default value in this box represents the largest possible slice you can make, which could be the largest contiguous block of unallocated space or the size of the entire hard disk.

If you have already made space for FreeBSD (perhaps by using a tool such as PartitionMagic) then you can press C to create a new slice. Again, you will be prompted for the size of slice you would like to create.

Figure 2-13. Fdisk 採用整顆硬碟作分割區(Partition)

When finished, press Q. Your changes will be saved in sysinstall, but will not yet be written to disk.


2.5.3 安裝 Boot Manager

You now have the option to install a boot manager. In general, you should choose to install the FreeBSD boot manager if:

  • You have more than one drive, and have installed FreeBSD onto a drive other than the first one.

  • You have installed FreeBSD alongside another operating system on the same disk, and you want to choose whether to start FreeBSD or the other operating system when you start the computer.

If FreeBSD is going to be the only operating system on this machine, installed on the first hard disk, then the Standard boot manager will suffice. Choose None if you are using a third-party boot manager capable of booting FreeBSD.

Make your choice and press Enter.

Figure 2-14. Sysinstall 的 Boot Manager 選單

The help screen, reached by pressing F1, discusses the problems that can be encountered when trying to share the hard disk between operating systems.


2.5.4 在其他硬碟上建立分割磁區(Slices)

If there is more than one drive, it will return to the Select Drives screen after the boot manager selection. If you wish to install FreeBSD on to more than one disk, then you can select another disk here and repeat the slice process using FDisk.

Important: If you are installing FreeBSD on a drive other than your first, then the FreeBSD boot manager needs to be installed on both drives.

Figure 2-15. 離開『選擇硬碟』畫面

The Tab key toggles between the last drive selected, [ OK ], and [ Cancel ].

Press the Tab once to toggle to the [ OK ], then press Enter to continue with the installation.


2.5.5 以 Disklabel 來建立分割區(Partitions)

You must now create some partitions inside each slice that you have just created. Remember that each partition is lettered, from a through to h, and that partitions b, c, and d have conventional meanings that you should adhere to.

Certain applications can benefit from particular partition schemes, especially if you are laying out partitions across more than one disk. However, for this, your first FreeBSD installation, you do not need to give too much thought to how you partition the disk. It is more important that you install FreeBSD and start learning how to use it. You can always re-install FreeBSD to change your partition scheme when you are more familiar with the operating system.

This scheme features four partitions——one for swap space, and three for filesystems.

Table 2-2. 第一顆硬碟的分割區(Partition)配置

Partition Filesystem Size Description
a / 100 MB This is the root filesystem. Every other filesystem will be mounted somewhere under this one. 100 MB is a reasonable size for this filesystem. You will not be storing too much data on it, as a regular FreeBSD install will put about 40 MB of data here. The remaining space is for temporary data, and also leaves expansion space if future versions of FreeBSD need more space in /.
b N/A 2-3 x RAM

The system's swap space is kept on this partition. Choosing the right amount of swap space can be a bit of an art. A good rule of thumb is that your swap space should be two or three times as much as the available physical memory (RAM). You should also have at least 64 MB of swap, so if you have less than 32 MB of RAM in your computer then set the swap amount to 64 MB.

If you have more than one disk then you can put swap space on each disk. FreeBSD will then use each disk for swap, which effectively speeds up the act of swapping. In this case, calculate the total amount of swap you need (e.g., 128 MB), and then divide this by the