Chapter 4. 首次开机

Table of Contents
4.1. 如果出现错误
4.2. 登入
4.3. 更改键盘配置
4.4. man 指令
4.5. 更改 root 密码
4.6. 更改 shell
4.7. 系统时间
4.8. 基本的设定 /etc/rc.conf
4.9. 增加虚拟终端机
4.10. 系统重开机

在安装完毕之后,计算机将会重新开机:如果没有问题,你将会在数秒之后 看到登入提示符号(或是数分钟,依你的硬件而定)。系统还未被设定, 但别担心:设定将是非常容易的且方便的,还给你许多的弹性。你将会了 解如何快速地设定每样东西,同时,你也将学习知道系统如何运作,更进 一步,在发生问题时知道要检查什么地方。

4.1. 如果出现错误

如果系统没有开机,这可能是开机管理程序并没有被正确地安装或 在 MBR (Master Boot Record) 发生了问题。使用开机片重新开机, 你会看到以下的提示符号:

booting fd0a:netbsd - starting in ...
    

在 5 秒内按下空格键;开机程序将停止并出现另一个提示符号。 藉由 "?" 键或是输入 "help" 命令,可以 得到基本的帮助。

type "?" or "help" for help.
> ?
commands are:
boot [xdNx:][filename] [-adrs]
     (ex. "sd0a:netbsd.old -s")
ls [path]
dev xd[N[x]]:
help|?
quit
> boot wd0a:netbsd
    

系统现在应该使用硬盘开机来取代软盘。如果 NetBSD 从硬盘正确地开机, 那就是 Master Boot Record 的问题:你可以安装开机管理程序,或是利用 fdisk -B 指令修改它的设定。 请看 Section 19.4,可以得到详细的叙述。

4.2. 登入

你将使用 root 权限做第一次登入,这是 在安装完成后,唯一设定的使用者。在密码提示中,输入先前在 安装过程中所定义的密码。如果先前没有定义,则按 Enter 键。

NetBSD/i386 (Amnesiac) (ttyE0)
login: root
password
...
We recommend creating a non-root account and using su(1) for root access.
#
    

4.3. 更改键盘配置

键盘仍然是美式的配置;如果你有不同的键盘,最好现在改变它的配置, 再开始设定系统。例如,要使用意大利式键盘,可利用以下指令:

# wsconsctl -k -w encoding=it
encoding -> it
    

所有键盘对照表的清单在 /sys/dev/wscons/wsksymdef.h 中,但是 一些常用的对照是:

这个设定并不会延续到下一次的开机。你可以将先前的指令写入 /etc/rc.local:这将使它在下次开机时, 被自动地执行。

# echo "wsconsctl -k -w encoding=it" >> /etc/rc.local
    

Note: 请留意要键入两个 ">"。如果只键入一个 ">" 你将会复写整个档案而不是加入一行。

对于键盘配置问题较佳的作法是:使用你喜爱的配置作为默认值来 编译新的核心。这将被描述在 Chapter 7

4.4. man 指令

如果你之前尚未使用过 Unix(-like) 操作系统,那么你现在最好的 朋友便是 man 指令,这会向你展示在线手册: NetBSD 的在线手册是极佳的,可以找到很详细的说明,虽然它们 是技术性的。

man name 会展示 "name" 的在线 手册,而 man -k name 则展示与 "name" 相关的在线手册清单(你也可以使用 apropos 指令。)

要学习 man 指令,键入:

# man man
    

在线手册被分成九大部份,不但包含了指令的基本信息,也包括 一些 NetBSD 特征与架构上的描述。例如,请看 hier(7) 的在线 手册,它详细描述了 NetBSD 档案系统的配置。

# man hier
    

类似的在线手册还有 release(7) 和 packages(7)。在线手册中的 每一段都有 intro 在线手册描写它的内容。 例如:

# man 8 intro
    

Example 4-1. 在线手册的段落

  1. general commands (tools and utilities)

  2. system calls and error numbers

  3. C libraries

  4. special files and hardware support

  5. file formats

  6. games

  7. miscellaneous information pages

  8. system maintenance and operation commands

  9. kernel internals

相同的标题可以出现在不同的在线手册段落;想要查阅指定的 在线手册,要提供区块的号码做为 man 指令的参数。例如, time 出现在第 1 段(time 指令的使 用),第 3 段(在 C 链接库里的 time 函数)和第 9 段( time 的系统变量)。要查阅 time 函数,键入:

# man 3 time
    

要看所有有效的手册:

# man -a time
    

4.5. 更改 root 密码

如果在开机时没有定义 root 的密码(在 1.5 以前的系统没有 这项功能)。现在可以执行,使用 passwd 指令。

# passwd
Changing local password for root.
New password:
Retype new password:
    

在你键入密码时,它不会显示在屏幕上。稍后我们接学习如何 在系统上增加其它的使用者。

4.6. 更改 shell

root 的 shell 预设为 csh;如果你不懂它 的意义,你可以开始使用(man csh)来学习 它:它是一个很好的交谈式 shell,虽然缺乏历史编辑的功能( 请看 tcsh,bash 之于 NetBSD /bin/sh 也是这个原因)。如果你想要更改 你的 shell,使用 chsh。在 NetBSD 安装完 之后,有效的 shell 有:

新的 shell 在你下次登入便会生效。同时,你可以键入以下指令:

# set filec
    

使文件名称在命令列被完成(利用 ESC 键,Ctrl+D 则列出可完成的 清单。)

如果你想要,你也可以安装其它的 shell 在你的系统上: tcsh, bash, zsh 和其它的 shell 都已经在 package 集合里( 我们稍后会解释)。

现在可以建立 shell 初始化档案 (.chsrc, .login, ...)。

4.7. 系统时间

和所有的 UNIX 操作系统一样,NetBSD 使用以格林威治时间为基础 的系统时钟 (UTC) 而这也就是为什么你要设定系统时间的原因。如 果你想将系统时间设为你区域性的时间(例如,你需要和 Windows 做多重开机),你必须告知 NetBSD,修改 rtc_offset 系统变量。你可以编辑核心设定档 重新编译或是你可以对现有的核心做修正(新的时间只在下次开机时 才会生效):这比你想象的还简单。例如:

# gdb --write /netbsd
GNU gdb 4.17
Copyright 1998 Free Software Foundation, Inc.
...
This GDB was configured as "i386--netbsd"...(no debugging symbols found)...
(gdb) set rtc_offset=-60
(gdb) quit
    

The value supplied (-60) is the number of minutes west of UTC. 设定值 (-60) 是 UTC 以西的分钟数。

要展示目前的 rtc_offset 设定值:

# sysctl kern.rtc_offset
kern.rtc_offset = -60
    

现在核心已经知道如何转换 PC 时钟的时间为 UTC 系统时间,但是 你仍必须将系统设定为你区域性的时间(你可以在 /usr/share/zoneinfo/ 发现他们。) 如果你已经在安装过程中完成这项步骤,你可以略过(虽然最好检查 设定是否正确。) 例如,对意大利而言:

# rm -f /etc/localtime
# ln -s /usr/share/zoneinfo/Europe/Rome /etc/localtime
    

在做了正确的设定之后,你可以使用以下的指令来更改时间:

# date [[[[[cc]yy]mm]dd]hh]mm
    

4.8. 基本的设定 /etc/rc.conf

NetBSD 使用 /etc/rc.conf 作为系统设定 的开始:这个档案决定了在系统开机时,要执行什么指令。了解 这个档案是非常重要的。

从 NetBSD 1.5 开始,rc.conf 的管理已经有所改变。在先前的 版本中,所有默认值都被储存在 /etc/rc.conf 而使用者需要直接修改这个档案;1.5 版引进了包含默认值的 /etc/defaults/rc.conf 檔。要修改预设 值,使用者必须将新的值写入 /etc/rc.conf: 这个定义覆盖了在 /etc/defaults/rc.conf 所出现的值(但却没有被改变)。

了解这个档案是非常重要的。在线手册包含了所有选项的 详细说明。

# man rc.conf
    

首先要修改的是:

4.9. 增加虚拟终端机

以下的设定描述在 1.5 以后是不需要的,因为虚拟终端机已经 是默认值。

编辑 /etc/ttys 档并检查 ttyE0-ttyE3 是否为 'on'。ttyE4 必须为 off(为了使用 X。)例如:

console "/usr/libexec/getty Pc"         pc3     off secure
ttyE0   "/usr/libexec/getty Pc"         vt220   on secure
ttyE1   "/usr/libexec/getty Pc"         vt220   on secure
ttyE2   "/usr/libexec/getty Pc"         vt220   on secure
ttyE3   "/usr/libexec/getty Pc"         vt220   on secure
ttyE4   "/usr/libexec/getty Pc"         vt220   off secure
    

如果你没有耐性: 在修改 /etc/ttys 之后,你可以立刻启动 虚拟终端机,而不需要重开机。你应该:

  1. sh /etc/rc.wscons

  2. kill -1 1

在启动之后,你可以使用组合键 Ctrl-Alt-Fn 来切换(Fn 是功能键: F1 是 console 1,F2 是 console 2,以此类推)。想要更进一步的 说明,请看 Chapter 12

Note: 使用 Left_Ctrl 和 Left_Alt 和 功能键组合。

4.10. 系统重开机

在第一阶段时,你已经

现在你可以重新开机,使用以下的指令:

# reboot