3.2.虚拟控制台和终端

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

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

login:

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

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

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

输入正确的密码后,将显示当日信息(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), vidcontrol(1), atkbd(4), syscons(4), 和 vt(4) 以了解关于 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 系统安装并配置了 Xorg,那么最后一个虚拟控制台(ttyv8)将用于访问图形界面。

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

3.2.2.单用户模式的控制台

FreeBSD 的启动菜单提供了一个叫做“Boot Single User”的选项。如果选择了这个选项,系统将启动到一个被称为“单用户模式”的特殊模式。这种模式通常用于修复无法启动的系统,或者在不知道 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)。要获得支持的分辨率的列表,请执行以下命令:

# vidcontrol -i mode

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

# vidcontrol MODE_279

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

allscreens_flags="MODE_279"