3.2.虚拟控制台和终端

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

  1. FreeBSD/amd64 (pc3.example.org) (ttyv0)
  2. 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的这一部分配置的:

  1. # name getty type status comments
  2. #
  3. ttyv0 "/usr/libexec/getty Pc" xterm on secure
  4. # Virtual terminals
  5. ttyv1 "/usr/libexec/getty Pc" xterm on secure
  6. ttyv2 "/usr/libexec/getty Pc" xterm on secure
  7. ttyv3 "/usr/libexec/getty Pc" xterm on secure
  8. ttyv4 "/usr/libexec/getty Pc" xterm on secure
  9. ttyv5 "/usr/libexec/getty Pc" xterm on secure
  10. ttyv6 "/usr/libexec/getty Pc" xterm on secure
  11. ttyv7 "/usr/libexec/getty Pc" xterm on secure
  12. ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure

要禁用一个虚拟控制台,在代表该虚拟控制台的行的开头加一个注释符号(#)即可。例如,要把可用的虚拟控制台的数量从 8 个减少到 4 个,在代表虚拟控制台 ttyv5 到 ttyv8 的最后四行前面加一个#即可。注意,如果 Xorg 已经被安装并配置为 X 窗口系统,那么最后一个虚拟控制台(ttyv8)将用于访问图形环境。

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

3.2.2.单用户模式的控制台

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

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

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

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

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

3.2.3.改变控制台的显示模式

FreeBSD 控制台的默认显示模式可以调整为1024x768, 1280x1024, 或任何其他由图形芯片和显示器支持的尺寸。要使用不同的视频模式,请加载VESA模块:

  1. # kldload vesa

要确定硬件支持哪些视频模式,使用 vidcontrol(1)。要获得支持的视频模式的列表,请执行以下命令:

  1. # vidcontrol -i mode

该命令的输出列出了硬件所支持的视频模式。要选择一个新的视频模式,请以根用户身份使用 vidcontrol(1)指定该模式:

  1. # vidcontrol MODE_279

如果新的视频模式可以接受,可以在启动时通过将其添加到/etc/rc.conf中永久设置:

  1. allscreens_flags="MODE_279"