5.2. 引导参数

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

如果这是第一次引导系统,尝试缺省的引导参数(即:不要尝试甚至任何参数),并且检查是否工作正确。这可能成功,如果不成功可以重新引导,并且查找向系统通知硬件的任何特定参数。

很多引导参数的信息可以查看 Linux BootPrompt HOWTO,其中包括一些老旧硬件的提示。这一节只包含一些最突出的基本参数。一些常见的问题描述见下面的 第 5.3 节 “安装过程中的故障修复”

5.2.1. Debian 安装程序的参数

安装系统能识别一些会有用的额外的引导参数 [2]

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

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

在引导过程的各个点上运行 Shells,以进行细节上的调试。退出 Shell 会将引导过程继续。

log_host, log_port

使安装程序将日志消息发送到本地文件的同时,也发送给指定主机和端口上的远端 syslog 中。如果不指定,端口默认是标准 syslog 端口 514。

lowmem

可以根据可用的内存,将安装程序强制在高于安装程序默认设置的 lowmem 等级上。该值可设为 1 和 2。还请参见 第 6.3.1.1 节 “检测可用内存/小内存模式”

noshell

放置安装程序在 tty2 和 tty3 上提供交互式 shells。这对于物理安全有限时的无人职守安装很有用。

debian-installer/framebuffer (fb)

一些架构使用内核帧缓存来以多种语言提供安装。如果帧缓存使您的系统出现问题,可以通过使用参数 fb=false 来关闭这个特性。这类问题的症状是关于 bterm 或者 bogl 的错误消息、空白的屏幕,或者在开始安装后几分钟内死机。

netcfg/disable_autoconfig

debian-installer 默认自动检测 IPv6的网络配置和 DHCP。如果检测成功的话,将没有机会回顾并且更改已经获得的设定。只能在自动检测失败的情况下手工配置网络。

如果本地网络上有IPv6路由器或 DHCP 服务器,但是因为例如它们给出错误的答案而不想使用它,那么可以使用参数 netcfg/disable_autoconfig=true 来防止网络进行任何自动配置,并手动输入信息。

hw-detect/start_pcmcia

如果遇到问题的话则设置为 false,来阻止启动 PCMCIA 服务。有些笔记本机总所周知会有这种故障现象。

preseed/url (url)

将 url 指定为要下载并使用云设置文件,来使安装自动化。请参见 第 4.3 节 “自动化安装”

preseed/file (file)

将路径指定到要加载的预设置文件,用于使安装自动化。请参见 第 4.3 节 “自动化安装”

preseed/interactive

设为 true在即使已经预置时也显示问题。用于测试或调试预配置的文件。注意,这对于作为引导参数传递的那些参数无效,但对那些可以使用特殊语法。具体信息请参见 第 B.5.2 节 “使用预置修改默认值”

auto-install/enable (auto)

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

finish-install/keep-consoles

从串口或者管理控制台安装的过程中,通常在 /etc/inittab 中禁止了常规的虚拟控制台(VT1 到 VT6)。将其设置 true 来将它们启用。

cdrom-detect/eject

在重新引导前,debian-installer 默认自动弹出安装时使用的光学介质。如果系统不是自动从这样的介质来引导,那么这是不必要的操作。在某些情况下甚至更为不便,例如,在光盘驱动器自己不能重新插入介质,而用户又不在旁边的情况。许多通过插口装入光盘的超薄型 caddy 风格的驱动器不能自动重新加载介质。

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

base-installer/install-recommends (recommends)

通过将这个选项设置为 false,无论在安装过程中还是对于安装好的系统中,包管理系统都配置设为不自动安装这些推荐的软件包(Recommends)。还请参见 第 6.3.5 节 “安装基本系统”

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

debian-installer/allow_unauthenticated

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

rescue/enable

设置为 true 来进入救援模式,而不是执行普通安装。请参见 第 8.6 节 “修复损坏的系统”

5.2.2. 使用引导参数来回答问题

除了一些例外,对于安装过程中询问的问题,值可以在引导提示符后设置,尽管这只在某些特定情况下真正有用。有关如何操作的一般指示可以在 第 B.2.2 节 “使用引导参数预置问题的答案” 中找到。下面是一些特定的例子。

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

有两种方法为安装过程和安装好的系统来指定所使用的语言、国家和区域设置。

第一种且最简单的方法是只传递 locale(区域设置) 参数。语言和国家将从该值中得到。例如,您可以使用 locale=de_CH.UTF-8 选择语言为德语,瑞士为国家(安装好的系统中默认将 de_CH.UTF-8 设置为默认的区域设置)。该方法的限制是,并非所有的语言、国家和区域设置的组合可以以这种方式实现。

第二种是更具灵活的选项,分开指定 language(语言) 和 country(国家)。在这种情况下 locale(区域设置)可以可选地添加,为安装好的系统指定默认的区域设置。示例:language=en country=DE locale=en_GB.UTF-8

anna/choose_modules (modules)

可用来自动加载那些默认不加载的安装程序组件。一些可能有用的可选组件的例子是 openssh-client-udeb (使您可以在安装过程中使用 scp)。

netcfg/disable_autoconfig

如果您想禁止IPv6自动配置和 DHCP,并强制使用静态网络设置来代替,那么将它设为 true

mirror/protocol (protocol)

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

tasksel:tasksel/first (tasks)

可以用来选择不在交互式任务列表中出现的任务,如 kde-desktop 任务。另外的信息请参见 第 6.3.6.2 节 “选择和安装软件”

5.2.3. 将参数传递给内核模块

如果驱动程序编译进内核中,那么可以像内核文档中描述的那样将参数传递给内核。然而,如果驱动程序编译为模块,并且由于在安装过程中内核模块的加载与引导安装好的系统有些不同,像平时那样将参数传递给模块是不可能的。需要使用安装程序所识别的特定语法来替代,它们将确保参数能保存到合适的配置文件中,并当模块真正加载的时候去使用参数。这些参数还会自动传递到安装好的系统的配置中。

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

用于为模块设置参数的语法是:

module_name.parameter_name=value

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

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

5.2.4. 内核模块黑名单

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

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

注意,安装系统自己仍然会加载模块。要阻止这种情况,可以以专家模式来运行安装程序,并且在硬件检测阶段中从显示的模块列表中取消该模块。



[2] 在当前的内核(2.6.9 或更新),您可以使用 32 个命令行参数和 32 个环境变量选项。如果超出内核将会崩溃。同样,整个内核命令行有 255 个字符的限制,超出这个限制的任何内容将被截掉而不会有提示。