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: 2014/01/01 01:00:54

$NetBSD: index.html,v 1.101 2014/11/21 19:29:13 snj 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. How to get NetBSD
II. System installation and related issues
2. Installing NetBSD: Preliminary considerations and preparations
2.1. Preliminary considerations
2.1.1. Dual booting
2.1.2. NetBSD on emulation and virtualization
2.2. Install preparations
2.2.1. The INSTALL document
2.2.2. Partitions
2.2.3. Hard disk space requirements
2.2.4. Network settings
2.2.5. Backup your data and operating systems!
2.2.6. Preparing the installation media
2.3. Checklist
3. Example installation
3.1. Introduction
3.2. The installation process
3.3. Keyboard layout
3.4. Starting the installation
3.5. MBR partitions
3.6. Disklabel partitions
3.7. Setting the disk name
3.8. Last chance!
3.9. The disk preparation process
3.10. Choosing the installation media
3.10.1. Installing from CD-ROM or DVD
3.10.2. Installing from an unmounted file system
3.10.3. Installing via FTP
3.10.4. Installing via NFS
3.11. Extracting sets
3.12. System configuration
3.13. Finishing the installation
4. Upgrading NetBSD
4.1. Using sysinst
4.1.1. Overview
4.1.2. The INSTALL document
4.1.3. Performing the upgrade
4.2. Using sysupgrade
III. System configuration, administration and tuning
5. The first steps on NetBSD
5.1. Troubleshooting
5.1.1. Boot problems
5.1.2. Misconfiguration of /etc/rc.conf
5.2. The man command
5.3. Editing configuration files
5.4. Login
5.5. Changing the root password
5.6. Adding users
5.7. Shadow passwords
5.8. Changing the keyboard layout
5.9. System time
5.10. Secure Shell (ssh(1))
5.11. Basic configuration in /etc/rc.conf
5.12. Basic network settings
5.13. Mounting a CD-ROM
5.14. Mounting a floppy
5.15. Installing additional software
5.16. Security alerts
5.17. Stopping and rebooting the system
6. Editing
6.1. Introducing vi
6.1.1. The vi interface
6.1.2. Switching to Edit Mode
6.1.3. Switching Modes & Saving Buffers to Files
6.1.4. Yanking and Putting
6.1.5. Navigation in the Buffer
6.1.6. Searching a File, the Alternate Navigational Aid
6.1.7. A Sample Session
6.2. Configuring vi
6.2.1. Extensions to .exrc
6.2.2. Documentation
6.3. Using tags with vi
7. The rc.d System
7.1. Basics
7.2. The rc.d Scripts
7.3. The Role of rcorder and rc.d Scripts
7.4. Additional Reading
8. Console drivers
8.1. wscons
8.1.1. wsdisplay
8.1.2. wskbd
8.1.3. wsmouse
9. X
9.1. What is X?
9.2. Configuration
9.3. The mouse
9.4. The keyboard
9.5. The monitor
9.6. The video card
9.7. Starting X
9.8. Customizing X
9.9. Other window managers or desktop environments
9.10. Graphical login with xdm
10. Linux emulation
10.1. Emulation setup
10.1.1. Configuring the kernel
10.1.2. Installing the Linux libraries
10.1.3. Installing Acrobat Reader
10.2. Directory structure
10.3. Emulating /proc
10.4. Using Linux browser plugins
10.5. Further reading
11. Audio
11.1. Basic hardware elements
11.2. BIOS settings
11.3. Configuring the audio device
11.4. Configuring the kernel audio devices
11.5. Advanced commands
11.5.1. audioctl(1)
11.5.2. mixerctl(1)
11.5.3. audioplay(1)
11.5.4. audiorecord(1)
12. Printing
12.1. Enabling the printer daemon
12.2. Configuring /etc/printcap
12.3. Configuring Ghostscript
12.4. Printer management commands
12.5. Remote printing
13. Using removable media
13.1. Initializing and using floppy disks
13.2. How to use a ZIP disk
13.3. Reading data CDs with NetBSD
13.4. Reading multi-session CDs with NetBSD
13.5. Allowing normal users to access CDs
13.6. Mounting an ISO image
13.7. Using video CDs with NetBSD
13.8. Using audio CDs with NetBSD
13.9. Creating an MP3 (MPEG layer 3) file from an audio CD
13.10. Using a CD-R writer with data CDs
13.11. Using a CD-R writer to create audio CDs
13.12. Creating an audio CD from MP3s
13.13. Copying an audio CD
13.14. Copying a data CD with two drives
13.15. Using CD-RW rewritables
13.16. DVD support
13.17. Creating ISO images from a CD
13.18. Getting volume information from CDs and ISO images
14. The cryptographic device driver (CGD)
14.1. Overview
14.1.1. Why use disk encryption?
14.1.2. Logical Disk Drivers
14.1.3. Availability
14.2. Components of the Crypto-Graphic Disk system
14.2.1. Kernel driver pseudo-device
14.2.2. Ciphers
14.2.3. Verification Methods
14.3. Example: encrypting your disk
14.3.1. Preparing the disk
14.3.2. Scrubbing the disk
14.3.3. Creating the cgd
14.3.4. Modifying configuration files
14.3.5. Restoring data
14.4. Example: encrypted CDs/DVDs
14.4.1. Introduction
14.4.2. Creating an encrypted CD/DVD
14.4.3. Using an encrypted CD/DVD
14.5. Suggestions and Warnings
14.5.1. Using a random-key cgd for swap
14.5.2. Warnings
14.6. Further Reading
15. Concatenated Disk Device (CCD) configuration
15.1. Install physical media
15.2. Configure Kernel Support
15.3. Disklabel each volume member of the CCD
15.4. Configure the CCD
15.5. Initialize the CCD device
15.6. Create a 4.2BSD/UFS filesystem on the new CCD device
15.7. Mount the filesystem
16. NetBSD RAIDframe
16.1. RAIDframe Introduction
16.1.1. About RAIDframe
16.1.2. A warning about Data Integrity, Backups, and High Availability
16.1.3. Getting Help
16.2. Setup RAIDframe Support
16.2.1. Kernel Support
16.2.2. Power Redundancy and Disk Caching
16.3. Example: RAID-1 Root Disk
16.3.1. Pseudo-Process Outline
16.3.2. Hardware Review
16.3.3. Initial Install on Disk0/wd0
16.3.4. Preparing Disk1/wd1
16.3.5. Initializing the RAID Device
16.3.6. Setting up Filesystems
16.3.7. Migrating System to RAID
16.3.8. The first boot with RAID
16.3.9. Adding Disk0/wd0 to RAID
16.3.10. Testing Boot Blocks
17. NetBSD Logical Volume Manager (LVM) configuration
17.1. Anatomy of NetBSD Logical Volume Manager
17.2. Install physical media
17.3. Configure Kernel Support
17.4. Configure LVM on a NetBSD system
17.5. Disklabel each physical volume member of the LVM
17.6. Create Physical Volumes
17.7. Create Volume Group
17.8. Create Logical Volume
17.9. Example: LVM with Volume groups located on raid1
17.9.1. Loading Device-Mapper driver
17.9.2. Preparing raid1 installation
17.9.3. Creating PV, VG on raid disk
17.9.4. Creating LV's from VG located on raid disk
17.9.5. Integration of LV's in to the system
18. Pluggable Authentication Modules (PAM)
18.1. About
18.2. Introduction
18.3. Terms and conventions
18.3.1. Definitions
18.3.2. Usage examples
18.4. PAM Essentials
18.4.1. Facilities and primitives
18.4.2. Modules
18.4.3. Chains and policies
18.4.4. Transactions
18.5. PAM Configuration
18.5.1. PAM policy files
18.5.2. Breakdown of a configuration line
18.5.3. Policies
18.6. PAM modules
18.6.1. Common Modules
18.6.2. NetBSD-specific PAM Modules
18.7. PAM Application Programming
18.8. PAM Module Programming
18.9. Sample PAM Application
18.10. Sample PAM Module
18.11. Sample PAM Conversation Function
18.12. Further Reading
19. Tuning NetBSD
19.1. Introduction
19.1.1. Overview
19.2. Tuning Considerations
19.2.1. General System Configuration
19.2.2. System Services
19.2.3. The NetBSD Kernel
19.3. Visual Monitoring Tools
19.3.1. The top Process Monitor
19.3.2. The sysstat utility
19.4. Monitoring Tools
19.4.1. fstat
19.4.2. iostat
19.4.3. ps
19.4.4. vmstat
19.5. Network Tools
19.5.1. ping
19.5.2. traceroute
19.5.3. netstat
19.5.4. tcpdump
19.6. Accounting
19.6.1. Accounting
19.6.2. Reading Accounting Information
19.6.3. How to Put Accounting to Use
19.7. Kernel Profiling
19.7.1. Getting Started
19.7.2. Interpretation of kgmon Output
19.7.3. Putting it to Use
19.7.4. Summary
19.8. System Tuning
19.8.1. Using sysctl
19.8.2. tmpfs & mfs
19.8.3. Soft-dependencies
19.8.4. Journaling
19.8.5. LFS
19.9. Kernel Tuning
19.9.1. Preparing to Recompile a Kernel
19.9.2. Configuring the Kernel
19.9.3. Building the New Kernel
19.9.4. Shrinking the NetBSD kernel
20. NetBSD Veriexec subsystem
20.1. How it works
20.2. Signatures file
20.3. Generating fingerprints
20.4. Strict levels
20.5. Veriexec and layered file systems
20.6. Kernel configuration
21. Bluetooth on NetBSD
21.1. Introduction
21.2. Supported Hardware
21.3. System Configuration
21.4. Human Interface Devices
21.4.1. Mice
21.4.2. Keyboards
21.5. Personal Area Networking
21.5.1. Personal Area Networking User
21.6. Serial Connections
21.7. Audio
21.7.1. SCO Audio Headsets
21.7.2. SCO Audio Handsfree
21.8. Object Exchange
21.9. Troubleshooting
22. Miscellaneous operations
22.1. Installing the boot manager
22.2. Deleting the disklabel
22.3. Speaker
22.4. Forgot root password?
22.5. Password file is busy?
22.6. Adding a new hard disk
22.7. How to rebuild the devices in /dev
IV. Networking and related issues
23. Introduction to TCP/IP Networking
23.1. Audience
23.2. Supported Networking Protocols
23.3. Supported Media
23.3.1. Serial Line
23.3.2. Ethernet
23.4. TCP/IP Address Format
23.5. Subnetting and Routing
23.6. Name Service Concepts
23.6.1. /etc/hosts
23.6.2. Domain Name Service (DNS)
23.6.3. Network Information Service (NIS/YP)
23.6.4. Other
23.7. Next generation Internet protocol - IPv6
23.7.1. The Future of the Internet
23.7.2. What good is IPv6?
23.7.3. Changes to IPv4
24. Setting up TCP/IP on NetBSD in practice
24.1. A walk through the kernel configuration
24.2. Overview of the network configuration files
24.3. Connecting to the Internet with a modem
24.3.1. Getting the connection information
24.3.2. resolv.conf and nsswitch.conf
24.3.3. Creating the directories for pppd
24.3.4. Connection script and chat file
24.3.5. Authentication
24.3.6. pppd options
24.3.7. Testing the modem
24.3.8. Activating the link
24.3.9. Using a script for connection and disconnection
24.3.10. Running commands after dialin
24.4. Creating a small home network
24.5. Setting up an Internet gateway with IPNAT
24.5.1. Configuring the gateway/firewall
24.5.2. Configuring the clients
24.5.3. Some useful commands
24.6. Setting up a network bridge device
24.6.1. Bridge example
24.7. A common LAN setup
24.8. Connecting two PCs through a serial line
24.8.1. Connecting NetBSD with BSD or Linux
24.8.2. Connecting NetBSD and Windows NT
24.8.3. Connecting NetBSD and Windows 95
24.9. IPv6 Connectivity & Transition via 6to4
24.9.1. Getting 6to4 IPv6 up & running
24.9.2. Obtaining IPv6 Address Space for 6to4
24.9.3. How to get connected
24.9.4. Security Considerations
24.9.5. Data Needed for 6to4 Setup
24.9.6. Kernel Preparation
24.9.7. 6to4 Setup
24.9.8. Quickstart using pkgsrc/net/hf6to4
24.9.9. Known 6to4 Relay Routers
24.9.10. Tunneling 6to4 through an IPFilter firewall
24.9.11. Conclusion & Further Reading
25. The Internet Super Server inetd
25.1. Overview
25.2. What is inetd?
25.3. Configuring inetd - /etc/inetd.conf
25.4. Services - /etc/services
25.5. Protocols - /etc/protocols
25.6. Remote Procedure Calls (RPC) - /etc/rpc
25.7. Allowing and denying hosts - /etc/hosts.{allow,deny}
25.8. Adding a Service
25.9. When to use or not to use inetd
25.10. Other Resources
26. The Domain Name System
26.1. DNS Background and Concepts
26.1.1. Naming Services
26.1.2. The DNS namespace
26.1.3. Resource Records
26.1.4. Delegation
26.1.5. Delegation to multiple servers
26.1.6. Secondaries, Caching, and the SOA record
26.1.7. Name Resolution
26.1.8. Reverse Resolution
26.2. The DNS Files
26.2.1. /etc/named.conf
26.2.2. /etc/namedb/localhost
26.2.3. /etc/namedb/zone.127.0.0
26.2.4. /etc/namedb/diverge.org
26.2.5. /etc/namedb/1.168.192
26.2.6. /etc/namedb/root.cache
26.3. Using DNS
26.4. Setting up a caching only name server
26.4.1. Testing the server
27. Mail and news
27.1. postfix
27.1.1. Configuration of generic mapping
27.1.2. Testing the configuration
27.1.3. Using an alternative MTA
27.2. fetchmail
27.3. Reading and writing mail with mutt
27.4. Strategy for receiving mail
27.5. Strategy for sending mail
27.6. Advanced mail tools
27.7. News with tin
28. Introduction to the Common Address Redundancy Protocol (CARP)
28.1. CARP Operation
28.2. Configuring CARP
28.3. Enabling CARP Support
28.4. CARP Example
28.5. Advanced CARP configuration
28.6. Forcing Failover of the Master
29. Network services
29.1. The Network File System (NFS)
29.1.1. NFS setup example
29.1.2. Setting up NFS automounting for /net with amd(8)
29.2. The Network Time Protocol (NTP)
V. Building the system
30. Obtaining the sources
30.1. Preparing directories
30.2. Terminology
30.3. Downloading tarballs
30.3.1. Downloading sources for a NetBSD release
30.3.2. Downloading sources for a NetBSD stable branch
30.3.3. Downloading sources for a NetBSD-current development branch
30.4. Fetching by CVS
30.4.1. Fetching a NetBSD release
30.4.2. Fetching a NetBSD stable branch
30.4.3. Fetching the NetBSD-current development branch
30.4.4. Saving some cvs(1) options
30.5. Sources on CD (ISO)
31. Crosscompiling NetBSD with build.sh
31.1. Building the crosscompiler
31.2. Configuring the kernel manually
31.3. Crosscompiling the kernel manually
31.4. Crosscompiling the kernel with build.sh
31.5. Crosscompiling the userland
31.6. Crosscompiling the X Window System
31.7. Changing build behaviour
31.7.1. Changing the Destination Directory
31.7.2. Static Builds
31.7.3. Using build.sh options
31.7.4. make(1) variables used during build
32. Compiling the kernel
32.1. Requirements and procedure
32.2. Installing the kernel sources
32.3. Creating the kernel configuration file
32.4. Building the kernel manually
32.4.1. Configuring the kernel manually
32.4.2. Generating dependencies and recompiling manually
32.5. Building the kernel using build.sh
32.6. Installing the new kernel
32.7. If something went wrong
33. Updating an existing system from sources
33.1. Manual build and update procedure
33.1.1. Building a new userland
33.1.2. Building a new kernel
33.1.3. Installing the kernel and userland
33.1.4. Updating the system configuration files
33.1.5. Summary
33.2. Using sysinst
33.3. Using sysbuild and sysupgrade
33.3.1. Tweak: Building as non-root
33.3.2. Tweak: Setting up nightly builds
33.4. More details about the updating of configuration and startup files
33.4.1. Using etcupdate with source files
33.4.2. Using etcupdate with binary distribution sets
33.4.3. Using etcmanage instead of etcupdate
34. Building NetBSD installation media
34.1. Creating custom install or boot floppies for your architecture e.g. i386
34.2. Creating a custom install or boot CD with build.sh
A. Information
A.1. Where to get this document
A.2. Guide history
B. Contributing to the NetBSD guide
B.1. Sending contributions
B.2. 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. 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
D.3.3. Joel Knight's license on the CARP article
E. Bibliography
Bibliography

List of Figures

2.1. Partitions
3.1. Selecting the language
3.2. Selecting a keyboard type
3.3. The sysinst main menu
3.4. Confirming to install NetBSD
3.5. Choosing a hard disk
3.6. Full or custom installation
3.7. Selecting distribution sets
3.8. Choosing the partitioning scheme
3.9. fdisk
3.10. Partition options
3.11. Installing the boot selector
3.12. Edit partitions?
3.13. Setting partition sizes
3.14. The disklabel editor
3.15. Disklabel partition editing
3.16. Naming the NetBSD disk
3.17. Last chance to abort
3.18. Selecting bootblocks
3.19. Choosing the verbosity of the extraction process
3.20. Installation media
3.21. CD-ROM/DVD installation
3.22. Mounting a file system
3.23. Mounting a partition
3.24. Accessing a MSDOS file system
3.25. Which network interface to configure
3.26. Using DHCP for network configuration
3.27. Entering and configuring network data
3.28. Confirming network parameters
3.29. Defining the FTP settings
3.30. NFS install screen
3.31. NFS example
3.32. Extraction of sets completed
3.33. Selecting the system's time zone
3.34. Selecting a password encryption scheme
3.35. Set a root password?
3.36. Setting root password
3.37. Choosing a shell
3.38. Installation completed
3.39. Reboot to finish installation
4.1. Starting the upgrade
4.2. Continuing the upgrade
4.3. Choosing the hard drive
4.4. Choosing the distribution filesets
4.5. File system check
4.6. Choosing bootblocks
4.7. Upgrade process - verbosity level
4.8. Install medium
4.9. Upgrade complete
16.1. RAID-1 Disk Logical Layout
16.2. Perform generic install onto Disk0/wd0
16.3. Setup RAID Set
16.4. Reboot using Disk1/wd1 of RAID
16.5. Mirror Disk1/wd1 back to Disk0/wd0
16.6. Award BIOS i386 Boot Disk1/wd1
16.7. Award BIOS i386 Boot Disk0/wd0
17.1. Anatomy of Logical Volume Management
17.2. Example raid 1 configuration
23.1. IPv4-addresses are divided into more significant network- and less significant hostbits
23.2. Our demo-network
23.3. Attaching one subnet to another one
23.4. IPv6-addresses are divided into more significant network- and less significant hostbits, too
23.5. IPv6-addresses have a similar structure to class B addresses
23.6. Several interfaces attached to a link result in only one scope ID for the link
24.1. Network with gateway
24.2. A frequently used method for transition is tunneling IPv6 in IPv4 packets
24.3. 6to4 derives an IPv6 from an IPv4 address
24.4. Request and reply can be routed via different gateways in 6to4
24.5. Enabling packet forwarding is needed for a 6to4 router
27.1. Structure of the mail system

List of Tables

18.1. PAM chain execution summary
20.1. Veriexec fingerprints tools
20.2. Veriexec access type aliases

List of Examples

12.1. /etc/printcap
12.2. /usr/local/libexec/lpfilter
12.3. /etc/printcap
12.4. /usr/local/libexec/lpfilter-ps
24.1. resolv.conf
24.2. nsswitch.conf
24.3. Connection script
24.4. Chat file
24.5. Chat file with login
24.6. /etc/ppp/options
24.7. ppp-start
24.8. ppp-stop
24.9. /etc/hosts
26.1. strider's /etc/hosts file
26.2. localhost
30.1. .cvsrc