5.3. 引导参数

引导参数是 Linux 内核的参数。一般用于确保外围设备能够正确地运行。对于其中的大多数部分来说,内核可以自动检查外围设备的相关信息。但是在某些情况下,您可能需要给内核一点小小的帮助。

如果这是您第一次引导系统,尝试缺省的引导参数(即:不要输入任何参数),并且检查是否工作正确。这可能正确,如果不行,可以重新启动,并且检查需要告诉系统什么样的硬件特定参数。

有关很多引导参数的信息可以查看 Linux BootPrompt HOWTO,其中包括一些老旧硬件的解决方法。这一节只描述一些最常用的基本参数。一些常见的问题描述见 第 5.4 节 “安装过程中的故障修复”

5.3.1. 启动控制台

假如您用串口控制台引导,通常内核可以自动检测到。如果在串口引导的计算机上有视频卡(framebuffer)和键盘,您必须传递 console=*`device`* 参数给内核,其中 device 是串口设备,通常是 ttyS0 形式。

您可能需要指定串行端口的参数,例如波特率和奇偶校验位,如 console = ttyS0,9600n8;其他的典型波特率可能是57600或115200。请确保在 “—-”之后指定此选项,以便已安装的系统能将其复制到启动加载程序的配置中(如果安装程序支持此启动加载程序)。

为了确保安装程序使用的终端类型与您的终端模拟程序匹配,可以添加一个 TERM=*`type`* 参数。注意,安装程序仅支持下列终端类型: linuxbtermansivt102dumbdebian-installer 中默认的串口控制台终端类型是 vt102。如果您使用的虚拟工具,比如 QEMU/KVM,不支持转换成这些终端类型,您可以从一个 screen 会话中启动。这会将其转换成 screen 终端类型,而它又非常接近于 vt102 类型。

5.3.2. Debian 安装程序的参数

The installation system recognizes a few additional boot parameters[6] which may be useful.

许多参数都有“简写”,可以避免内核命令行选项的限制,并且更容易输入。如果参数有简写,它会列在(正式)长形式后面的括号里。本手册中的示例一般都使用简写。

debconf/priority (priority)

这些参数设置将设置显示的信息为最低的级别。

缺省安装使用 priority=high。这意味着高优先级的和至关重要的信息将被显示,但是中级和低级信息将被跳过。如果其间出现了问题,安装程序将按照要求调整优先级别。

如果您加入 priority=medium 作为引导参数,将看到安装菜单以及安装过程中更多的控制。当使用 priority=low,将显示所有的消息(这相当于采用 expert 引导方法)。通过 priority=critical,安装系统只会显示至关重要的信息,并且尝试正确无误地执行各项事宜。

DEBIAN_FRONTEND

这个引导参数控制用于安装程序的用户界面的类型。当前可能参数设置有:

  • DEBIAN_FRONTEND=noninteractive

  • DEBIAN_FRONTEND=text

  • DEBIAN_FRONTEND=newt

  • DEBIAN_FRONTEND=gtk

缺省的前端是 DEBIAN_FRONTEND=newtDEBIAN_FRONTEND=text 可以用于串口控制台的安装。一些特殊类型的安装介质可能只含有限的几个前端,但是 newttext 在多少安装介质上都是默认采用。图形安装程序可以在所支持的平台上使用 gtk 前端。

BOOT_DEBUG

设置引导参数为 2 会使记录更冗长一些。设置为 3 会在引导过程的特定位置调出 debug shell。(退出 shell 以后会继续引导过程。)

  • BOOT_DEBUG=0

    此为默认。

    BOOT_DEBUG=1

    更多的信息。

    BOOT_DEBUG=2

    大量的调试信息。

    BOOT_DEBUG=3

    在引导过程中,安装程序将在多处不同地方运行 Shell,以进行细节上的调试。退出 Shell 将继续引导过程。

INSTALL_MEDIA_DEV

参数的值是装入 Debian 安装程序的设备路径,例如:INSTALL_MEDIA_DEV=/dev/floppy/0

引导软盘通常会扫描所有的软盘来找到根软盘,可以通过此参数设置只查找一个设备。

log_host, log_port

使得安装程序可以在本地记录同时发送日志到指定主机和端口的远端 syslog。如果不指定,默认端口是 syslog 标准端口 514。

lowmem

可以强制安装程序设置高于安装程序根据实际内存默认的 lomem 等级。该值可设为 1 和 2。参阅 第 6.3.1.1 节 “检测可用内存/小内存模式”

noshell

禁止 tty2 和 tty3 上的交互式安装。这对于物理安全限制下的无人职守安装很有用处。

debian-installer/framebuffer (fb)

一些体系利用内核 framebuffer 来提供多种语言的安装。如果 framebuffer 使您的系统出现问题,可以通过参数 vga=normal fb=false 关闭这个特性。这类问题的特征是 bterm 或者 bogl 的相关错误信息、一个空白的屏幕,或者在开始安装几分钟后停止。

debian-installer/theme (theme)

界面方案(theme)决定安装程序用户界面的外观(颜色、图标等)。不同的前端(frontend)有不同的界面方案。当前 newt 和 gtk 前端只有一个 “dark” 界面方案提供给视觉受损的用户。界面方案可以在引导的时候通过 theme=*`dark`* 设置。

netcfg/disable_autoconfig

缺省情况下,debian-installer 会通过 DHCP 来自动检测网络。如果检测成功的话,您将不需要审视并且改变其获得的设定。您可以在 DHCP 检测失败的情况下手工配置网络。

如果您的网络上面具备一台 DHCP 服务器,但是不想使用它,比如,因为它给出错误的答案。您可以使用参数 netcfg/disable_autoconfig=true 来阻止通过 DHCP 配置网络,并手工输入信息。

hw-detect/start_pcmcia

设置成 false 来阻止启动 PCMCIA 服务造成的麻烦。有些便携机会有这种现象。

disk-detect/dmraid/enable (dmraid)

设为 true 可以打开安装程序中对 Serial ATA RAID (也称为 ATA RAID、BIOS RAID 或 fake RAID)磁盘的支持。注意,这种支持当前是实验性的。更多的信息可以在 Debian Installer Wiki 找到。

preseed/url (url)

指定 url 到预设文件,在安装中自动下载和使用。参阅 第 4.6 节 “自动化安装”

preseed/file (file)

指定路径至预设文件,加载自动化安装。参阅 第 4.6 节 “自动化安装”

preseed/interactive

设为 true,让已经预置的也可以显示提问。用于测试和调试预置的文件。注意,使用引导参数进行预置时无效,但可以使用一种特殊的语法。参阅 第 B.5.2 节 “使用预置修改默认值” 了解详细信息。

auto-install/enable (auto)

延迟那些通常在预置之前的提问,直到网络设置完毕。参阅 第 B.2.3 节 “auto 模式” 了解自动安装的详细信息。

finish-install/keep-consoles

从串口或者管理控制台安装时,虚拟控制台(VT1 到 VT6)一般在 /etc/inittab 里已经关掉。将其改为 true 打开。

cdrom-detect/eject

在重启前,debian-installer 默认自动弹出安装时的光学媒介。如果系统不是自动从 CD 引导,这是不必要的操作。在某些情况下,反而不便。例如,如果光驱不能自动插入盘片,用户又不在旁边操作。许多 slot loading、slim-line 和 caddy 类型的驱动器不能自动重新加载介质。

设为 false 可以禁止自动弹出,但要小心确保系统在安装完后,不会自动从光盘引导。

base-installer/install-recommends (recommends)

通过设置 false 选项,在安装过程和以后的系统中,包管理系统将配置设为不自动安装这些“推荐的软件包(Recommends)”。参阅 第 6.3.5 节 “安装基本系统”

注意,虽然使用该选项可以得到一个瘦小的系统,但将会失去一些通常认为应有的特性。您不得不使用手动方式安装这些推荐软件包以获得完整的功能。因此,该选项应由非常有经验的用户来使用。

debian-installer/allow_unauthenticated

安装程序默认需要使用一个已知的 gpg 密钥认证仓库。设为 true 可以禁止认证。警告:不安全,不推荐使用。

rescue/enable

设为 true 进入 rescue 模式,而不是执行普通安装。参阅 第 8.6 节 “修复损坏的系统”

5.3.3. 使用内核模块参数回答提问

对于一些例外,可以在引导提示符后设置值来回答安装过程中的提问,在某些情况下,它是惟一真正有效的。有关如何操作的说明可以在 第 B.2.2 节 “使用引导参数预置问题的答案” 找到。下面是一些具体的例子。

debian-installer/language (language), debian-installer/country (country), debian-installer/locale (locale)

有两种方法可以指定安装过程和安装后系统中所使用的语言(language)、国家(country)和地方(locale)。

第一种和最简单的方法为只设置 locale 参数。语言和国家将依据该值产生。例如,您可以使用 locale=de_CH 选择语言为德语,瑞士为国家(安装后的系统中默认的 locale 将设置为 de_CH.UTF-8 )。该方法有一个缺陷,因为并不是所有的语言、国家和地方可以采用这种方式组合。

第二种更具弹性的方法,是分开指定 languagecountry。这种方式下 locale 可以作为选项来指定安装后系统中默认的 locale 值。例如:language=en country=DE locale=en_GB.UTF-8

anna/choose_modules (modules)

可用来自动加载那些默认不加载的安装程序模块。比如一些有用的可选模块 openssh-client-udeb (使您可以在安装过程中使用 scp) 和 ppp-udeb (参阅 第 D.5 节 “通过 PPP over Ethernet(PPPPoE)安装 Debian GNU/Linux”)。

netcfg/disable_autoconfig

如果您想禁止 DHCP 使用静态网络设置,将它设为 true

mirror/protocol (protocol)

默认情况下,安装程序会使用 http 协议从 Debian 镜像下载文件,在普通优先级下不能修改协议为 ftp。设置该参数为 ftp,您可以强制安装程序使用该协议。注意,必须手动输入主机名,而不是从列表中选择 ftp 镜像。

tasksel:tasksel/first (tasks)

可以用来选择不在交互式任务列表中出现的任务,例如 kde-desktop 任务。参阅 第 6.3.6.2 节 “选择和安装软件” 了解详细信息。

5.3.4. 给内核模块传递参数

假如驱动程序编译进内核,您可以像内核文档所说的那样向内核传递参数。然而,如果驱动编译为模块,而且由于安装过程与运行系统加载模块方式不同,无法像平时那样传递参数到模块。因此,您需要使用安装程序所识别的特殊语法,它们将确保参数能保存到合适的配置文件,并在模块加载的时候使用。这些参数并能自动应用到安装后系统的配置中。

注意,现在很少需要将参数传递到模块。多数情况下,内核将侦测当前系统中的硬件,并很好地设置默认参数。然而,某些情况下还是需要手动设置参数。

设置模块参数的语法为:

  1. module_name.parameter_name=value

如果您需要传递多个参数给相同或不同的模块,重复上面内容即可。例如,设置老式的 3Com 网卡要使用 BNC (coax) 端子和 IRQ 10,要使用:

  1. 3c509.xcvr=3 3c509.irq=10

5.3.5. 内核模块黑名单

有时需要将一个模块加入黑名单阻止内核和 udev 自动加载。其中一个原因是有的模块会与您的硬件产生问题。内核有时会给同一硬件列出两个不同的驱动程序。如果驱动之间冲突或者错误的驱动先加载,将造成设备无法正常工作。

您可以使用下面的语法将模块加入黑名单:*`module_name`*.blacklist=yes。这会让该模块在安装和安装后的系统都加入 /etc/modprobe.d/blacklist.local 文件的黑名单中。

注意,安装系统自己仍然会加载模块。要阻止这种情况,您可以在 expert 模式下,硬件检查过程中从显示的模块列表中取消该模块。


[6] With current kernels (2.6.9 or newer) you can use 32 command line options and 32 environment options. If these numbers are exceeded, the kernel will panic. Also there is a limit of 255 characters for the whole kernel command line, everything above this limit may be silently truncated.