3.2.虚拟控制台和终端

如果没有把 FreeBSD 的图形环境配置为开机自启,那么系统将启动到一个命令行登录提示界面,如本例所示:

FreeBSD/amd64 (pc3.example.org) (ttyv0)

login:

第一行包含了一些有关系统的信息。amd64 表示本例中的系统运行的是 64 位版本的 FreeBSD。主机名是 pc3.example.orgttyv0 表示这是“系统控制台”。第二行是登录提示。

由于 FreeBSD 是一个多用户系统,它需要一些方法来区分不同的用户。因此每个用户在获得对系统中的程序的访问权之前必须登录系统。每个用户都有一个独特的名字 username 和一个个人的 password

要登录到系统控制台,输入在系统安装时配置的用户名,如添加用户open in new window中所述,然后按回车键。然后输入与该用户名相关的密码,按回车键。出于安全考虑,密码 不会被显示出来

输入正确的密码后,将显示当日信息(MOTD),然后是命令提示符。根据创建用户时选择的 shell,这个提示符会是 #$ 或是 % 字符之一。该提示符代表用户现在已经登录到 FreeBSD 系统控制台,并准备尝试执行可用命令。

3.2.1.虚拟终端

虽然可以用系统控制台来与系统进行交互,但通过键盘用命令行工作的 FreeBSD 系统用户通常会转而登录到一个虚拟控制台。这是因为系统信息被默认配置为显示在系统控制台。这些信息会在用户正在处理的命令或文件时不断出现,使用户难以集中精力处理手头的工作。

FreeBSD 预置了几个虚拟控制台用于输入命令。每个虚拟控制台都有自己的登录提示和 shell,且很容易在不同的虚拟控制台之间切换。这实际上提供了相当于在图形环境中同时打开了多个窗口的命令行。

FreeBSD 保留了从 Alt+F1Alt+F8 的组合键,用于在虚拟控制台之间切换。使用 Alt+F1 切换到系统控制台(ttyv0),Alt+F2 访问第一个虚拟控制台(ttyv1),Alt+F3 访问第二个虚拟控制台(ttyv2),以此类推。当使用 Xorg 作为图形控制台时,该组合变为 Ctrl+Alt+F1,以返回到基于文本的虚拟控制台。

当从一个控制台切换到下一个控制台时,FreeBSD 会切换屏幕输出。其结果是产生一种拥有多个虚拟屏幕和键盘的错觉,都可以用来输入命令让 FreeBSD 运行。当用户切换到另一个虚拟控制台时,在一个虚拟控制台中启动的程序不会停止运行。

请参考 kbdcontrol(1)open in new window, vidcontrol(1)open in new window, atkbd(4)open in new window, syscons(4)open in new window, 和 vt(4)open in new window 以了解关于 FreeBSD 控制台及其键盘驱动程序的更多技术描述。

在 FreeBSD 中,可用的虚拟控制台的数量是在 /etc/ttys 的这一部分进行配置的:

# name    getty                         type  status comments
#
ttyv0   "/usr/libexec/getty Pc"         xterm   on  secure
# Virtual terminals
ttyv1   "/usr/libexec/getty Pc"         xterm   on  secure
ttyv2   "/usr/libexec/getty Pc"         xterm   on  secure
ttyv3   "/usr/libexec/getty Pc"         xterm   on  secure
ttyv4   "/usr/libexec/getty Pc"         xterm   on  secure
ttyv5   "/usr/libexec/getty Pc"         xterm   on  secure
ttyv6   "/usr/libexec/getty Pc"         xterm   on  secure
ttyv7   "/usr/libexec/getty Pc"         xterm   on  secure
ttyv8   "/usr/X11R6/bin/xdm -nodaemon"  xterm   off secure

要禁用某个虚拟控制台,在代表该虚拟控制台的行的开头加一个注释符号(#)即可。例如,要把可用的虚拟控制台的数量从 8 个减少到 4 个,在代表虚拟控制台 ttyv5ttyv8 的最后四行前面加一个 # 即可。不要注释系统控制台 ttyv0 所在行。注意,如果已经根据 X Window 系统open in new window安装并配置了 Xorg,那么最后一个虚拟控制台(ttyv8)将用于访问图形环境。

关于这个文件中每一列的详细解释以及虚拟控制台的可用选项,请参考 ttys(5)open in new window

3.2.2.单用户模式的控制台

FreeBSD 的启动菜单提供了一个叫做“Boot Single User”的选项。如果选择了这个选项,系统将启动到一个被称为“单用户模式”的特殊模式。这种模式通常用于修复无法启动的系统,或者在不知道 root 密码的情况下重置 root 密码。在单用户模式下,网络和其他虚拟控制台不可用。然而,对系统的完全 root 访问是可用的,而且在默认情况下,无需 root 密码。由于这些原因,需要对键盘进行物理访问才能进入该模式,确定谁对键盘有物理访问权是保护 FreeBSD 系统安全时需要考虑的问题。

控制单用户模式的设置可以在 /etc/ttys 的这一部分找到:

# name  getty                           type  status  comments
#
# If console is marked "insecure", then init will ask for the root password
# when going to single-user mode.
console none                            unknown  off  secure

默认情况下,状态被设置为 secure。这假定谁有对键盘的物理访问权并不重要,或者它受到物理安全策略的控制。如果这个设置被改为 insecure,则假设环境本身是不安全的,因为任何人都可以访问键盘。当这一行被改为 insecure 时,FreeBSD 将在用户选择启动到单用户模式时提示输入 root 密码。

注意

当把这个设置改为 insecure 的时候,要小心了! 如果忘记了 root 密码,虽然仍可启动到单用户模式,但对于不熟悉 FreeBSD 启动过程的人来说可能会很困难。

3.2.3.改变控制台的分辨率

FreeBSD 控制台的默认分辨率可以调整为 1024x768、1280x1024, 或任何其他由显卡和显示器支持的尺寸。要使用不同的分辨率,请加载 VESA 模块:

# kldload vesa

要确定硬件支持哪些分辨率,使用 vidcontrol(1)open in new window。要获得支持的分辨率的列表,请执行以下命令:

# vidcontrol -i mode

该命令的输出列出了硬件所支持的分辨率。要选择一个新的分辨率,请以 root 用户身份使用 vidcontrol(1)open in new window 指定该分辨率:

# vidcontrol MODE_279

如果新的分辨率符合预期,可以在启动时通过将其添加到 /etc/rc.conf 中进行永久设置:

allscreens_flags="MODE_279"