The NetBSD Guide

The NetBSD Developers

All brand and product names used in this guide are or may be trademarks or registered trademarks of their respective owners.

NetBSD® is a registered trademark of The NetBSD Foundation, Inc.

Published: 2006/08/29 12:40:16

$NetBSD: netbsd.xml,v 1.38 2006/08/29 12:40:16 rpaulo Exp $


Table of Contents

Purpose of this guide
I. About NetBSD
1. What is NetBSD?
1.1. The story of NetBSD
1.2. NetBSD features
1.3. Supported platforms
1.4. NetBSD's target users
1.5. Applications for NetBSD
1.6. The philosophy of NetBSD
1.7. How to get NetBSD
II. System installation and related issues
2. Installation
2.1. Documentation
2.2. The layout of a NetBSD installation
2.3. Installation
2.3.1. Keyboard
2.3.2. Geometries
2.3.3. Partitions
2.3.4. Hard disk space requirements
2.3.5. Retry
3. Example Installation
3.1. Introduction
3.2. Preparing the installation
3.3. Creating the installation floppy
3.4. Last preparatory steps
3.5. Beginning the installation
3.6. Partitions
3.7. Disklabel
3.8. Creating a disklabel
3.9. The disk preparation process
3.10. Choosing the installation media
3.11. Installing from CD-ROM and DVD
3.12. Installing via FTP
3.13. Extracting sets
3.14. System configuration
4. The first boot
4.1. If something went wrong
4.2. Login
4.3. Changing the keyboard layout
4.4. The man command
4.5. Changing the root password
4.6. Changing the shell
4.7. System time
4.8. Basic configuration in /etc/rc.conf
4.9. Enabling FFS soft-dependencies
4.10. Rebooting the system
5. The second boot
5.1. dmesg
5.2. Mounting the CD-ROM
5.3. Mounting the floppy
5.4. Accessing a DOS/Windows partition
5.5. Adding users
5.6. Shadow passwords
5.7. Stopping and rebooting the system
6. rc.d System
6.1. The rc.d Configuration
6.2. The rc.d Scripts
6.3. The Role of rcorder and rc Scripts
6.4. Additional Reading
III. System configuration, administration and tuning
7. Editing
7.1. Introducing vi
7.1.1. The vi interface
7.1.2. Switching to Edit Mode
7.1.3. Switching Modes & Saving Buffers to Files
7.1.4. Yanking and Putting
7.1.5. Navigation in the Buffer
7.1.6. Searching a File, the Alternate Navigational Aid
7.1.7. A Sample Session
7.2. Configuring vi
7.2.1. Extensions to .exrc
7.2.2. Documentation
7.3. Using tags with vi
8. X
8.1. What is X?
8.2. Configuration
8.3. The mouse
8.4. The keyboard
8.5. The monitor
8.6. The video card
8.6.1. XFree 3.x
8.6.2. XFree86 4.x
8.7. Starting X
8.8. Customizing X
8.9. Other window managers
8.10. Graphical login with xdm
9. Linux emulation
9.1. Emulation setup
9.1.1. Configuring the kernel
9.1.2. Installing the Linux libraries
9.1.3. Installing Acrobat Reader
9.2. Directory structure
9.3. Emulating /proc
9.4. Further reading
10. Audio
10.1. Basic hardware elements
10.2. BIOS settings
10.3. Configuring the audio device
10.4. Configuring the kernel audio devices
10.5. Advanced commands
10.5.1. audioctl(1)
10.5.2. mixerctl(1)
10.5.3. audioplay(1)
10.5.4. audiorecord(1)
11. Printing
11.1. Enabling the printer daemon
11.2. Configuring /etc/printcap
11.3. Configuring Ghostscript
11.4. Printer management commands
11.5. Remote printing
12. Using removable media
12.1. Initializing and using floppy disks
12.2. How to use a ZIP disk
12.3. Reading data CDs with NetBSD
12.4. Reading multi-session CDs with NetBSD
12.5. Allowing normal users to access CDs
12.6. Mounting an ISO image
12.7. Using video CDs with NetBSD
12.8. Using audio CDs with NetBSD
12.9. Creating an MP3 (MPEG layer 3) file from an audio CD
12.10. Using a CD-R writer with data CDs
12.11. Using a CD-R writer to create audio CDs
12.12. Creating an audio CD from mp3s
12.13. Copying an audio CD
12.14. Copying a data CD with two drives
12.15. Using CD-RW rewritables
12.16. DVD support
12.17. Creating ISO images from a CD
12.18. Getting volume information from CDs and ISO images
13. The cryptographic device driver (CGD)
13.1. Overview
13.1.1. Why use disk encryption?
13.1.2. Logical Disk Drivers
13.1.3. Availability
13.2. Components of the Crypto-Graphic Disk system
13.2.1. Kernel driver pseudo-device
13.2.2. Ciphers
13.2.3. Verification Methods
13.3. Example: encrypting your disk
13.3.1. Preparing the disk
13.3.2. Scrubbing the disk
13.3.3. Creating the cgd
13.3.4. Modifying configuration files
13.3.5. Restoring data
13.4. Example: encrypted CDs/DVDs
13.4.1. Introduction
13.4.2. Creating an encrypted CD/DVD
13.4.3. Using an encrypted CD/DVD
13.5. Suggestions and Warnings
13.5.1. Using a random-key cgd for swap
13.5.2. Warnings
13.6. Further Reading
14. 连锁磁盘设备(CCD)配置
14.1. 安装物理媒介
14.2. 配置内核支持
14.3. 为CCD标签各个卷
14.4. 配置CCD
14.5. 初始化CCD设备
14.6. 为新的CCD设备建立4.2BSD/UFS文件系统
14.7. 挂载文件系统
15. NetBSD RAIDframe
15.1. RAIDframe Introduction
15.1.1. About RAIDframe
15.1.2. A warning about Data Integrity, Backups, and High Availability
15.1.3. Getting Help
15.2. Setup RAIDframe Support
15.2.1. Kernel Support
15.2.2. Power Redundancy and Disk Caching
15.3. Example: RAID-1 Root Disk
15.3.1. Pseudo-Process Outline
15.3.2. Hardware Review
15.3.3. Initial Install on Disk0/wd0
15.3.4. Preparing Disk1/wd1
15.3.5. Initializing the RAID Device
15.3.6. Setting up Filesystems
15.3.7. Setting up kernel dumps
15.3.8. Migrating System to RAID
15.3.9. The first boot with RAID
15.3.10. Adding Disk0/wd0 to RAID
15.3.11. Testing Boot Blocks
15.4. Testing kernel dumps
16. 可插接认证模块 (PAM)
16.1. 主题
16.2. 概述
16.3. 术语和规则
16.3.1. 定义
16.3.2. 使用举例
16.4. PAM核心
16.4.1. 功能与原语
16.4.2. 模块
16.4.3. 流水线与策略
16.4.4. 事务
16.5. PAM配置
16.5.1. PAM策略文件
16.5.2. Breakdown of a configuration line
16.5.3. 策略
16.6. PAM模块
16.6.1. 通用模块
16.6.2. FreeBSD专用PAM模块
16.6.3. NetBSD专用PAM模块
16.7. 编写PAM应用程序
16.8. 编写PAM模块
16.9. 简单的PAM应用程序
16.10. 简单的PAM模块
16.11. 简单的PAM转换函数
16.12. 深入导读
17. Tuning NetBSD
17.1. Introduction
17.1.1. Overview
17.2. Tuning Considerations
17.2.1. General System Configuration
17.2.2. System Services
17.2.3. The NetBSD Kernel
17.3. Visual Monitoring Tools
17.3.1. The top Process Monitor
17.3.2. The sysstat utility
17.4. Monitoring Tools
17.4.1. fstat
17.4.2. iostat
17.4.3. ps
17.4.4. vmstat
17.5. Network Tools
17.5.1. ping
17.5.2. traceroute
17.5.3. netstat
17.5.4. tcpdump
17.6. Accounting
17.6.1. Accounting
17.6.2. Reading Accounting Information
17.6.3. How to Put Accounting to Use
17.7. Kernel Profiling
17.7.1. Getting Started
17.7.2. Interpretation of kgmon Output
17.7.3. Putting it to Use
17.7.4. Summary
17.8. System Tuning
17.8.1. Using sysctl
17.8.2. memfs & softdeps
17.9. Kernel Tuning
17.9.1. Preparing to Recompile a Kernel
17.9.2. Configuring the Kernel
17.9.3. Building the New Kernel
17.9.4. Shrinking the NetBSD kernel
18. NetBSD Veriexec subsystem
18.1. How it works
18.2. Signatures file
18.3. Generating fingerprints
18.4. Strict levels
18.5. Veriexec and layered file systems
18.6. Kernel configuration
19. Miscellaneous operations
19.1. Creating a custom install/boot floppies for i386
19.2. Synchronizing the system clock with NTP
19.3. Installing the boot manager
19.4. Deleting the disklabel
19.5. Speaker
19.6. Forgot root password?
19.7. Adding a new hard disk
19.8. Password file is busy?
19.9. How to rebuild the devices in /dev
IV. Networking and related issues
20. Introduction to TCP/IP Networking
20.1. Audience
20.2. Supported Networking Protocols
20.3. Supported Media
20.3.1. Serial Line
20.3.2. Ethernet
20.4. TCP/IP Address Format
20.5. Subnetting and Routing
20.6. Name Service Concepts
20.6.1. /etc/hosts
20.6.2. Domain Name Service (DNS)
20.6.3. Network Information Service (NIS/YP)
20.6.4. Other
20.7. Next generation Internet protocol - IPv6
20.7.1. The Future of the Internet
20.7.2. What good is IPv6?
20.7.3. Changes to IPv4
21. Setting up TCP/IP on NetBSD in practice
21.1. A walk through the kernel configuration
21.2. Overview of the network configuration files
21.3. Connecting to the Internet with a modem
21.3.1. Getting the connection information
21.3.2. resolv.conf and nsswitch.conf
21.3.3. Creating the directories for pppd
21.3.4. Connection script and chat file
21.3.5. Authentication
21.3.6. pppd options
21.3.7. Testing the modem
21.3.8. Activating the link
21.3.9. Using a script for connection and disconnection
21.3.10. Running commands after dialin
21.4. Creating a small home network
21.5. Setting up an Internet gateway with IPNAT
21.5.1. Configuring the gateway/firewall
21.5.2. Configuring the clients
21.5.3. Some useful commands
21.6. A common LAN setup
21.7. Connecting two PCs through a serial line
21.7.1. Connecting NetBSD with BSD or Linux
21.7.2. Connecting NetBSD and Windows NT
21.7.3. Connecting NetBSD and Windows 95
22. The Internet Super Server inetd
22.1. Overview
22.2. What is inetd?
22.3. Configuring inetd - /etc/inetd.conf
22.4. Services - /etc/services
22.5. Protocols - /etc/protocols
22.6. Remote Procedure Calls (RPC) - /etc/rpc
22.7. Allowing and denying hosts - /etc/hosts.{allow,deny}
22.8. Adding a Service
22.9. When to use or not to use inetd
22.10. Other Resources
23. The Domain Name System
23.1. DNS Background and Concepts
23.1.1. Naming Services
23.1.2. The DNS namespace
23.1.3. Resource Records
23.1.4. Delegation
23.1.5. Delegation to multiple servers
23.1.6. Secondaries, Caching, and the SOA record
23.1.7. Name Resolution
23.1.8. Reverse Resolution
23.2. The DNS Files
23.2.1. /etc/namedb/named.conf
23.2.2. /etc/namedb/localhost
23.2.3. /etc/namedb/zone.127.0.0
23.2.4. /etc/namedb/diverge.org
23.2.5. /etc/namedb/1.168.192
23.2.6. /etc/namedb/root.cache
23.3. Using DNS
23.4. Setting up a caching only name server
23.4.1. Testing the server
24. Mail and news
24.1. postfix
24.1.1. Configuration of generic mapping
24.1.2. Testing the configuration
24.1.3. Using an alternative MTA
24.2. fetchmail
24.3. Reading and writing mail with mutt
24.4. Strategy for receiving mail
24.5. Strategy for sending mail
24.6. Advanced mail tools
24.7. News with tin
25. Introduction to the Common Address Redundancy Protocol (CARP)
25.1. CARP Operation
25.2. Configuring CARP
25.3. Enabling CARP Support
25.4. CARP Example
25.5. Advanced CARP configuration
25.6. Forcing Failover of the Master
26. Miscellaneous networking topics
26.1. Bridge
26.1.1. Bridge example
26.2. Network File System (NFS)
26.2.1. NFS setup example
26.3. Setting up NFS automounting for /net with amd(8)
26.3.1. Introduction
26.3.2. Actual setup
26.4. IPv6 Connectivity & Transition via 6to4
26.4.1. Getting 6to4 IPv6 up & running
26.4.2. Obtaining IPv6 Address Space for 6to4
26.4.3. How to get connected
26.4.4. Security Considerations
26.4.5. Data Needed for 6to4 Setup
26.4.6. Kernel Preparation
26.4.7. 6to4 Setup
26.4.8. Quickstart using pkgsrc/net/hf6to4
26.4.9. Known 6to4 Relay Routers
26.4.10. Tunneling 6to4 through an IPFilter firewall
26.4.11. Conclusion & Further Reading
V. Building the system
27. Obtaining the sources
27.1. Preparing directories
27.2. Terminology
27.3. Downloading tarballs
27.3.1. Downloading a NetBSD release
27.3.2. Downloading snapshots from a NetBSD stable branch
27.3.3. Downloading the NetBSD-current development branch
27.3.4. Downloading a pkgsrc-200xQy stable branch
27.3.5. Downloading the pkgsrc-current development branch
27.4. Fetching by CVS
27.4.1. Getting CVS
27.4.2. Fetching a NetBSD release
27.4.3. Fetching a NetBSD stable branch
27.4.4. Fetching the NetBSD-current development branch
27.4.5. Fetching a pkgsrc-200xQy stable branch
27.4.6. Fetching the pkgsrc-current development branch
27.4.7. Saving some cvs(1) options
27.5. Sources on CD (ISO)
28. Crosscompiling NetBSD with build.sh
28.1. Building the crosscompiler
28.2. Configuring the kernel manually
28.3. Crosscompiling the kernel manually
28.4. Crosscompiling the kernel with build.sh
28.5. Crosscompiling the userland
28.6. Crosscompiling the X Window System
28.7. Changing build behaviour
28.7.1. Changing the Destination Directory
28.7.2. Static Builds
28.7.3. Using build.sh options
28.7.4. make(1) variables used during build
29. Compiling the kernel
29.1. Requirements and procedure
29.2. Installing the kernel sources
29.3. Creating the kernel configuration file
29.4. Building the kernel manually
29.4.1. Configuring the kernel manually
29.4.2. Generating dependencies and recompiling manually
29.5. Building the kernel using build.sh
29.6. Installing the new kernel
29.7. If something went wrong
30. Console drivers
30.1. wscons
30.1.1. Virtual consoles
30.1.2. 50 lines text mode with wscons
30.1.3. Keyboard mappings
30.1.4. Cut&paste on the console with wsmoused
30.1.5. Enable scrollback on the console
30.2. pccons
31. The package collection
A. Information
A.1. Where to get this document
A.2. Guide history
B. Contributing to the NetBSD guide
B.1. Translating the guide
B.1.1. What you need to start a translation
B.1.2. Writing XML/DocBook
B.2. Sending contributions
B.3. XML/DocBook template
C. Getting started with XML/DocBook
C.1. What is XML/DocBook
C.2. Installing the necessary tools
C.3. Using the tools
C.4. Language-specific notes
C.4.1. Enabling hyphenation for the Italian language
C.5. Links
D. Acknowledgements
D.1. Original acknowledgements
D.2. Current acknowledgements
D.3. Licenses
D.3.1. Federico Lupi's original license of this guide
D.3.2. Networks Associates Technology's license on the PAM article
E. Bibliography
Bibliography

List of Figures

2.1. Partitions
3.1. Selecting the language
3.2. The main menu of the installation program
3.3. Confirming you want to install NetBSD
3.4. Choosing a hard disk
3.5. Full or custom installation
3.6. Selecting distribution sets
3.7. Choosing the partitioning scheme
3.8. Choosing a unit of measure
3.9. fdisk
3.10. Partition options
3.11. Installing the boot selector
3.12. Choosing if partitions should be edited
3.13. Setting partition sizes
3.14. The disklabel editor
3.15. The disklabel editor
3.16. Naming the NetBSD disk
3.17. Last chance before hitting the disk
3.18. Creating the filesystems
3.19. Selecting a bootblock
3.20. Choosing the verbosity of the extraction process
3.21. Installation media
3.22. CD-ROM/DVD installation
3.23. Which network interface to configure
3.24. Choosing network media options
3.25. Using DHCP for network configuration
3.26. Entering and configuring network data
3.27. Confirming network parameters
3.28. Which directory to use for downloading
3.29. Defining the set's source place
3.30. An error happened during download
3.31. Downloading installation sets
3.32. Extracting set files
3.33. Deleting sets after extraction?
3.34. Set extraction completed
3.35. Selecting your system's time zone
3.36. Selecting a password encryption scheme
3.37. Setting the root password now or later?
3.38. Setting the root password
3.39. Choosing a shell for the root account
3.40. Congratulations
3.41. Reboot the system to finish installation
15.1. RAID-1 Disk Logical Layout
15.2. Perform generic install onto Disk0/wd0
15.3. Setup RAID Set
15.4. Reboot using Disk1/wd1 of RAID
15.5. Mirror Disk1/wd1 back to Disk0/wd0
15.6. Award BIOS i386 Boot Disk1/wd1
15.7. Award BIOS i386 Boot Disk0/wd0
20.1. IPv4-addresses are divided into more significant network- and less significant hostbits
20.2. Our demo-network
20.3. Attaching one subnet to another one
20.4. IPv6-addresses are divided into more significant network- and less significant hostbits, too
20.5. IPv6-addresses have a similar structure to class B addresses
20.6. Several interfaces attached to a link result in only one scope ID for the link
21.1. Network with gateway
24.1. Structure of the mail system
26.1. A frequently used method for transition is tunneling IPv6 in IPv4 packets
26.2. 6to4 derives an IPv6 from an IPv4 address
26.3. Request and reply can be routed via different gateways in 6to4
26.4. Enabling packet forwarding is needed for a 6to4 router

List of Tables

16.1. PAM流水线执行总结
18.1. Veriexec fingerprints tools
18.2. Veriexec access type aliases

List of Examples

11.1. /etc/printcap
11.2. /usr/local/libexec/lpfilter
11.3. /etc/printcap
11.4. /usr/local/libexec/lpfilter-ps
21.1. resolv.conf
21.2. nsswitch.conf
21.3. Connection script
21.4. Chat file
21.5. Chat file with login
21.6. /etc/ppp/options
21.7. ppp-start
21.8. ppp-stop
21.9. /etc/hosts
23.1. strider's /etc/hosts file
23.2. localhost
27.1. .cvsrc