FreeBSD Handbook

The FreeBSD Documentation Project

Welcome to FreeBSD! This handbook covers the installation and day to day use of FreeBSD 4.7-RELEASE. This manual is a work in progress and is the work of many individuals. Many sections do not yet exist and some of those that do exist need to be updated. If you are interested in helping with this project, send email to the FreeBSD documentation project mailing list . The latest version of this document is always available from the FreeBSD web site. It may also be downloaded in a variety of formats and compression options from the FreeBSD FTP server or one of the numerous mirror sites. If you would prefer to have a hard copy of the handbook, you can purchase one at the FreeBSD Mall. You may also want to search the handbook.

Table of Contents
I. Getting Started
1 Introduction
1.1 Synopsis
1.2 Welcome to FreeBSD!
1.3 About the FreeBSD Project
2 Installing FreeBSD
2.1 Synopsis
2.2 Pre-installation Tasks
2.3 Starting the Installation
2.4 Introducing Sysinstall
2.5 Allocating Disk Space
2.6 Choosing What To Install
2.7 Choosing Your Installation Media
2.8 Committing to the Installation
2.9 Post-installation
2.10 Supported Hardware
2.11 Troubleshooting
2.12 Advanced Installation Guide
2.13 Preparing Your Own Installation Media
3 Unix Basics
3.1 Synopsis
3.2 Permissions
3.3 Directory Structure
3.4 Mounting and Unmounting Filesystems
3.5 Processes
3.6 Daemons, Signals, and Killing Processes
3.7 Shells
3.8 Text Editors
3.9 Devices and Device Nodes
3.10 Virtual consoles & terminals
3.11 For More Information
4 Installing Applications: Packages and Ports
4.1 Synopsis
4.2 Overview of Software Installation
4.3 Finding Your Application
4.4 Using the Packages System
4.5 Using the Ports Collection
4.6 Post-installation activities
4.7 Troubleshooting
5 The X Window System
5.1 Synopsis
5.2 Understanding X
5.3 Installing XFree86
5.4 XFree86 Configuration
5.5 Using Fonts in XFree86
5.6 The X Display Manager
5.7 Desktop Environments
II. System Administration
6 Configuration and Tuning
6.1 Synopsis
6.2 Initial Configuration
6.3 Core Configuration
6.4 Application Configuration
6.5 Starting Services
6.6 Setting Up Network Interface Cards
6.7 Virtual Hosts
6.8 Configuration Files
6.9 Tuning with sysctl
6.10 Tuning Disks
6.11 Tuning Kernel Limits
6.12 Adding Swap Space
7 The FreeBSD Booting Process
7.1 Synopsis
7.2 The Booting Problem
7.3 The MBR, and Boot Stages One, Two, and Three
7.4 Kernel Interaction During Boot
7.5 Device Hints
7.6 Init: Process Control Initialization
7.7 Shutdown Sequence
8 Users and Basic Account Management
8.1 Synopsis
8.2 Introduction
8.3 The Superuser Account
8.4 System Accounts
8.5 User Accounts
8.6 Modifying Accounts
8.7 Limiting Users
8.8 Personalizing Users
8.9 Groups
9 Configuring the FreeBSD Kernel
9.1 Synopsis
9.2 Why Build a Custom Kernel?
9.3 Building and Installing a Custom Kernel
9.4 The Configuration File
9.5 Making Device Nodes
9.6 If Something Goes Wrong
10 Security
10.1 Synopsis
10.2 Introduction
10.3 Securing FreeBSD
10.4 DES, MD5, and Crypt
10.5 S/Key
10.6 Kerberos
10.7 Firewalls
10.8 OpenSSL
10.9 IPsec
10.10 OpenSSH
10.11 File System Access Control Lists
10.12 Mandatory Access Control (MAC)
11 Printing
11.1 Synopsis
11.2 Introduction
11.3 Basic Setup
11.4 Advanced Printer Setup
11.5 Using Printers
11.6 Alternatives to the Standard Spooler
11.7 Troubleshooting
12 Storage
12.1 Synopsis
12.2 Device Names
12.3 Adding Disks
12.4 RAID
12.5 Creating and Using Optical Media (CDs & DVDs)
12.6 Creating and Using Floppy Disks
12.7 Creating and Using Data Tapes
12.8 Backups to Floppies
12.9 Backup Basics
12.10 Network, Memory, and File-Based File Systems
12.11 File System Snapshots
12.12 File System Quotas
13 The Vinum Volume Manager
13.1 Synopsis
13.2 Disks are too small
13.3 Access bottlenecks
13.4 Data integrity
13.5 Vinum objects
13.6 Some examples
13.7 Object naming
13.8 Configuring Vinum
14 Localization - I18N/L10N Usage and Setup
14.1 Synopsis
14.2 The Basics
14.3 Using Localization
14.4 Compiling I18N Programs
14.5 Localizing FreeBSD to Specific Languages
15 Desktop Applications
15.1 Synopsis
15.2 Browsers
15.3 Productivity
15.4 Document Viewers
15.5 Finance
15.6 Summary
16 Multimedia
16.1 Synopsis
16.2 Setting Up The Sound Card
16.3 MP3 Audio
16.4 Video Playback
17 Serial Communications
17.1 Synopsis
17.2 Introduction
17.3 Terminals
17.4 Dial-in Service
17.5 Dial-out Service
17.6 Setting Up the Serial Console
18 PPP and SLIP
18.1 Synopsis
18.2 Using User PPP
18.3 Using Kernel PPP
18.4 Using PPP over Ethernet (PPPoE)
18.5 Using PPP over ATM (PPPoA)
18.6 Using SLIP
19 Advanced Networking
19.1 Synopsis
19.2 Gateways and Routes
19.3 Wireless
19.4 Bridging
19.5 NFS
19.6 Diskless Operation
19.7 ISDN
19.8 NIS/YP
19.9 DHCP
19.10 DNS
19.11 NTP
19.12 Network Address Translation
19.13 inetd ``Super-Server''
19.14 Parallel Line IP (PLIP)
19.15 IPv6
20 Electronic Mail
20.1 Synopsis
20.2 Using Electronic Mail
20.3 sendmail Configuration
20.4 Changing your Mail Transfer Agent
20.5 Troubleshooting
20.6 Advanced Topics
20.7 SMTP Authentication
21 The Cutting Edge
21.1 Synopsis
21.3 Synchronizing Your Source
21.4 Using make world
21.5 Tracking for multiple machines
22 Linux Binary Compatibility
22.1 Synopsis
22.2 Installation
22.3 Installing Mathematica
22.4 Installing Maple
22.5 Installing Oracle
22.6 Installing SAP R/3
22.7 Advanced Topics
III. Appendices
A. Obtaining FreeBSD
A.1 CDROM Publishers
A.2 DVD Publishers
A.3 FTP Sites
A.4 Anonymous CVS
A.5 Using CTM
A.6 Using CVSup
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. Resources on the Internet
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
List of Tables
2-1. Sample Device Inventory
2-2. Disk Device Codes
2-3. Partition Layout for First Disk
2-4. Partition Layout for Subsequent Disks
2-5. Possible security profiles
2-6. FreeBSD ISO image names and meanings
12-1. Physical Disk Naming Conventions
13-1. Vinum Plex organizations
19-1. Wiring a parallel cable for networking
List of Figures
2-1. Kernel Configuration Menu
2-2. The Kernel Device Configuration Visual Interface
2-3. Expanded Driver List
2-4. Driver Configuration With No Conflicts
2-5. Sysinstall Main Menu
2-6. Typical Device Probe Results
2-7. Select Sysinstall Exit
2-8. Selecting Usage From Sysinstall Main Menu
2-9. Selecting Documentation Menu
2-10. Sysinstall Documentation Menu
2-11. Sysinstall Main Menu
2-12. Sysinstall Keymap Menu
2-13. Sysinstall Main Menu
2-14. Sysinstall Options
2-15. Begin Standard Installation
2-16. Select Drive for FDisk
2-17. Typical Fdisk Partitions Before Editing
2-18. Fdisk Partition Using Entire Disk
2-19. Sysinstall Boot Manager Menu
2-20. Exit Select Drive
2-21. Sysinstall Disklabel Editor
2-22. Sysinstall Disklabel Editor With Auto Defaults
2-23. Free Space For Root Partition
2-24. Edit Root Partition Size
2-25. Choose The Root Partition Type
2-26. Choose The Root Mount Point
2-27. Sysinstall Disklabel Editor
2-28. Choose Distributions
2-29. Confirm Distributions
2-30. Choose Installation Media
2-31. Selecting An Ethernet Device
2-32. Set Network Configuration For ed0
2-33. Editing inetd.conf
2-34. Default Anonymous FTP Configuration
2-35. Edit The FTP Welcome Message
2-36. Editing exports
2-37. Security Profile Options
2-38. System Console Configuration Options
2-39. Screen Saver Options
2-40. Screen Saver Timeout
2-41. System Console Configuration Exit
2-42. Select Your Region
2-43. Select Your Country
2-44. Select Your Time Zone
2-45. Select Mouse Protocol Type
2-46. Set Mouse Protocol
2-47. Configure Mouse Port
2-48. Setting The Mouse Port
2-49. Enable The Mouse Daemon
2-50. Test The Mouse Daemon
2-51. Select Configuration Method Menu
2-52. Select Default Desktop
2-53. Select Package Category
2-54. Select Packages
2-55. Install Packages
2-56. Confirm Package Installation
2-57. Select User
2-58. Add User Information
2-59. Exit User and Group Management
2-60. Exit Install
13-1. Concatenated organization
13-2. Striped organization
13-3. RAID-5 organization
13-4. A simple Vinum volume
13-5. A mirrored Vinum volume
13-6. A striped Vinum volume
13-7. A mirrored, striped Vinum volume
List of Examples
2-1. Using an existing partition unchanged
2-2. Shrinking an existing partition
2-3. Sample Disk, Slice, and Partition Names
2-4. Conceptual Model of a Disk
4-1. Downloading a Package Manually and then Installing It Locally
6-1. Creating a Swapfile on FreeBSD 4.X
6-2. Creating a Swapfile on FreeBSD 5.X
7-1. boot0 Screenshot
7-2. boot2 Screenshot
7-3. An Insecure Console in /etc/ttys
8-1. Configuring adduser
8-2. rmuser Interactive Account Removal
8-3. Interactive chpass by Superuser
8-4. Interactive chpass by Normal User
8-5. Changing Your Password
8-6. Changing Another User's Password as the Superuser
8-7. Adding a Group Using pw(8)
8-8. Adding Somebody to a Group Using pw(8)
8-9. Using id(1) to Determine Group Membership
10-1. Using SSH to create a secure tunnel for SMTP
12-1. Using dump over ssh
12-2. A Script for Creating a Bootable Floppy
12-3. Using vnconfig to mount an Existing File System Image under FreeBSD 4.X
12-4. Creating a New File-Backed Disk with vnconfig
12-5. Using mdconfig to mount an Existing File System Image under FreeBSD 5.X
12-6. Creating a New File-Backed Disk with mdconfig
12-7. md Memory Disk
17-1. Adding Terminal Entries to /etc/ttys
19-1. Mounting an Export with amd
19-2. Branch Office or Home Network
19-3. Head Office or Other LAN
19-4. Sending inetd a HangUP Signal
20-1. Configuring the sendmail Access Database
20-2. Mail Aliases
20-3. Example Virtual Domain Mail Map
A-1. Checking Out Something from -CURRENT (ls(1)) and Deleting It Again:
A-2. Checking Out the Version of ls(1) in the 3.X-STABLE Branch:
A-3. Creating a List of Changes (as unified diffs) to ls(1)
A-4. Finding Out What Other Module Names Can Be Used:

This, and other documents, can be downloaded from

For questions about FreeBSD, read the documentation before contacting <>.
For questions about this documentation, e-mail <>.