6.3. 使用单独的组件

本节将会描述各个安装组件的详细信息。各组件按用户可以识别的阶段分组。它们在安装过程中按次序显示出来。注意,每次安装并不会使用所有的模块;至于哪些模块被用到,取决于您使用的安装方法以及硬件。

6.3.1. 启动 Debian 安装程序与配置硬件

假设 Debian 安装程序已经启动,然后您看到了初始画面。此时,debian-installer 的能力还很有限。它还不了解您的硬件,首选的语言,甚至不知道要执行什么任务。不用担心,因为 debian-installer 相当聪明,它能自动探测您的硬件,定位其余的组件,并更新自己以具备安装系统的能力。但您仍然要协助 debian-installer,提供给它不能自动决定的内容(比如选择您首选的语言,键盘布局或网络镜像)。

您会留意到 debian-installer 在本阶段执行 硬件侦测 多次。第一次目的是指定哪些硬件需要安装(比如,您的 CD-ROM 或者网卡)。在第一次运行的时候并不是所有的驱动程序都就绪,硬件侦测会在后续过程里面多次重复。

6.3.1.1. 检测可用内存/小内存模式

debian-installer 首先要做的一件事是检测有效的内存。如果内存有限,该组件将修改后续的安装进程,使您可以将 Debian GNU/Linux 安装到您的系统上。

安装程序用于减少内存消耗的第一项措施是关闭翻译,也就是说,安装将只在英文下进行。当然,您在安装完成之后还是可以进行本地化设置。

如果还不行,安装程序只加载那些完成基本安装的模块,进一步来减少内存消耗。这将减少安装系统的功能。您有机会手动加载额外的组件,但要留意您选择的组件会使用更多的内存,可能会使安装失败。

如果安装程序运行在小内存模式下,建议创建一个相对较大的交换分区(64–128MB)。交换分区会被当作虚拟内存,使系统可用的内存总量增加。安装程序会在安装过程的尽早阶段激活交换分区。注意,过多地使用交换分区会降低系统性能,增加磁盘活动。

尽管如此,您的系统还可能冻结,因为系统内存溢出(VT4 和 syslog 上产生 “Out of memory” 信息),出现没有预期的错误,或者进程被内核杀死。

例如,有报告称,小内存模式下,当交换分区不够大,创建一个大的 ext3 文件系统会失败。如果大的交换分区也不能解决问题,请建立 ext2 文件系统(它是安装程序的基本组件)。安装之后可以将 ext2 分区改成 ext3。

可以通过引导参数 “lowmem” 强制安装程序使用比实际内存更高的 lowmem 等级,说明见 第 5.2.1 节 “Debian 安装程序的参数”

6.3.1.2. 选择地区选项

大多时候,您遇到的第一个问题是关于地区的选项,它用于安装过程和安装后的系统。地区选项由语言,国家和地点组成。

您选择的语言将用于紧接着的安装过程,对话框已经有各种语言翻译的版本。如果选择的语言没有对应翻译的版本,安装将默认使用英文。

在安装过程的后面,选择的国家还会被用于设置默认的时区和您所处地理位置的 Debian 镜像。语言和国家可以一起用来设置您系统默认的 locale,并帮助您选择键盘。

您将被首先问到倾向的语言。语言名称同时以英文(左侧)和该语言(右侧)列出;右侧名称是使用该语言来书写。列表以英文名称排列。在列表的顶端是一个额外的选项,允许您使用 “C” locale 替代语言。选择 “C” locale 使得安装过程使用英文;安装的系统不再有本地化支持,locales 软件包也不会安装。

如果您选择的语言被多个国家作为官方语言[3],列表中只列出这些国家。如果想要选择列表之外的国家,选择 Other(最后一项)。您将看到大洲列表;选择洲之后会看到该大洲上的国家。

如果此语言只对应一个国家,该国将会被自动选中。这种情况下如果要选择其他的国家,首先要降低 debconf 优先级为 medium,然后在安装程序的主菜单中重新选择语言。

默认 locale 的选择是基于先前所选的语言和国家。如果您以 medium 或 low 优先级安装,可以选择不同的默认 locale 以及为安装好的系统生成额外的 locale。

6.3.1.3. 选择键盘

键盘经常按照不同语言使用的字符裁剪。选择一个您的键盘使用的合适布局,或者为没有的布局选择一个接近的。一旦系统安装完毕,您可以从更大范围内您选择键盘的布局 (在安装完之后用 root 执行 kbdconfig)。

将高亮显示部分移到选择的键盘,然后按下 Enter。用箭头健移到高亮显示 — 它们位于所以国家键盘布局相同的地方,因此独立于键盘配置。'扩展的'键盘是具有 F1F10 健,与顶端平行。

6.3.1.4. 寻找 Debian 安装程序 ISO 映像

当安装是使用 hd-media 方式,将会有一个动作,是寻找和挂载 Debian 安装程序 iso 映像,用于获取其它的安装文件。组件 iso-scan 正是用来完成此任务。

首先,iso-scan 自动挂载具有已知文件系统的块设备(比如,分区),然后顺次搜索文件名结尾是 .iso (或 .ISO 之类)。注意,首次只扫描位于根目录的文件,和第一层子目录 (例如,它找到 /whatever.iso/data/whatever.iso,而不是 /data/tmp/whatever.iso)。在 iso 映象文件找到后,iso-scan检查它包含的内容,确定该映象文件是不是有效的 Debian iso 映象。如为前者,任务结束;如果是后者,iso-scan 搜索其它的映象。

万一前面尝试寻找 iso 映象失败,iso-scan 会询问您是否原意进行完整的搜索。这次不只查看最上级目录,而是真正地贯穿整个文件系统。

如果 iso-scan 找不到安装 iso 映象,请重新启动返回到您以前的操作系统,检查映象文件名是否正确(以 .iso结尾),是否放在一个能被 debian-installer 识别的文件系统上,是否损坏(用 checksum 校验)。有经验的 Unix 用户可以在第二个控制台上完成这些动作,而毋须重新启动。

6.3.1.5. 配置网络

进入到这一步,如果系统检测到有多于一个的网络接口,您将被要求选择哪个设备是您的网络接口,比如,您在安装中要用的那个。其他的网络接口这时不会配置。您可以在安装完毕之后去配置额外的接口;参考 interfaces(5) man 手册。

默认情况下,debian-installer 会试着用 DHCP 自动配置您的计算机网络。如果侦测 DHCP 成功,这一步就完成。如果失败,造成的原因会有多种因素,从没有接网线到错误设置的 DHCP,或者您的局域网里面根本就没有 DHCP 服务器。检查第四个控制台上的错误信息,了解更多的说明。不管怎样,您都会被要求选择是再试一次,还是手动配置。DHCP 服务器有时候响应很慢,如果您确定都正常,请再试一次。

手动配置网络会依次询问一些您网络的问题,值得注意的是 IP 地址网络掩码网关域名服务器地址主机名。此外,如果您有无线网络接口,会被要求提供您的 无线 ESSID 和一个 WEP 密钥。填写答案 第 3.3 节 “一些有用的信息”

注意

您也许需要将一些或许用的着和用不着的技术细节放在手边:程序假定网络 IP 地址是您系统的 IP 地址和网络掩码按位与。默认的广播地址是通过您系统的 IP 地址和按位反网络掩码按位或计算得来。它也会猜测您的网关。如果您不能回答这些问题,让系统猜测 — 可以在系统安装完毕之后来修改它们。如果需要,编辑 /etc/network/interfaces

6.3.1.6. 配置时钟

安装程序首先尝试连接互联网上的时间服务器 (使用 NTP 协议) 来校准系统时间。如果没有成功,安装程序假设启动时获得的时间和日期是正确的。在安装过程中没法手动对系统时间进行设置。

基于安装过程前面所选择的地理位置,您将看到系统只列出与其地点相关的时区列表。如果该地只对应一个时区,那么系统就不会询问而直接使用该时区。

如果出于某些因素您不想设置时区为所选择的地点,这里有两个选项。

  1. 简易的方法是,在安装完成后重新启动进入新系统,选择一个不同的时区。该命令为:

    # dpkg-reconfigure tzdata
    

  2. 另外一种方法是,时区可以在安装启动后的安装程序最初阶段通过传入参数 time/zone=value 进行设置。其中的 value 当然要求是一个有效的时区,例如 Europe/LondonUTC

自动安装可以通过预置设置时区。

6.3.2. 分区与选择挂载点

现在,经过最后的硬件检测,debian-installer 已经充满活力,按照用户定制,准备就绪。正如本节标题指明,接下来组件的主要任务是为您的硬盘分区,创建文件系统,安排挂载点,并为近似选项进行配置,比如 RAID、LVM 或加密设备。

要是您对分区还有心存疑虑,或者只是想多了解一些细节,请参阅 附录 C, 为 Debian 准备分区

首先您可以选择对整块硬盘或是其上的空闲空间进行自动分区。这也被称为 “向导式” 分区。倘若您不想用自动分区,那么也可以选择菜单中的 Manual

6.3.2.1. 导引式分区

如果您选择导引式分区,可以有三种选择:直接在硬盘上创建分区(经典方式),或使用逻辑卷管理(LVM),或使用加密 LVM。[4]

注意

(加密) LVM 的选项并不是在所有体系下都可用。

使用 LVM 或加密 LVM,安装程序将在一个大分区上创建很多分区;这种方式的优点在于该大分区内的分区以后改变尺寸相对比较容易。如果没有一个特殊的密码,加密 LVM 的大分区将无法读取,对您的(私有)数据提供了额外的安全性。

使用加密 LVM 时,安装程序将随机写入数据自动清除磁盘。这提升了安全性(使得无法获知磁盘的哪一部分被使用,并使此前的安装轨迹被清除),根据磁盘的大小会耗费一些时间。

注意

假如您用导引式分区选择 LVM 或加密 LVM,在 LVM 建立的时候,分区表中的一些变更需要写入到所选的磁盘。这些变更会删除当前硬盘上的数据,以后将无法撤销。当然,安装程序会在写入磁盘之前让您确认。

假如用导引式分区(经典方式或(加密)LVM)选择整个磁盘,您会首先被要求选择将要使用的磁盘。检查一下您所有的磁盘都被列出,如果有多个磁盘,确认所选是您真正要使用的那块。排列的次序可能与以前的不同。磁盘的尺寸将会帮助您识别它们。

所选磁盘上的所有数据将会丢失,但您总会在写入磁盘前得到提示进行确认。如果选择了经典分区方式,您将可以在整个过程中撤销任何修改;而使用(加密) LVM 将无法撤销。

下来,您将从下表所列的几个方式中进行选择。每个方式都各有利弊,其中的一些讨论见 附录 C, 为 Debian 准备分区。如果没有把握,就选择第一个选项。有一点要记住,就是使用导引式分区至少需要一定大小的空闲空间才能正常运作。如果没有给它 1GB 以上的空间(具体大小视所选的方式而不同),那么导引式分区将以失败告终。

分区方式 所需最小空间 所新建的分区
所有文件在同一分区 600MB /, swap
建立 /home 分区 500MB /, /home, swap
分别建立 /home、/usr、/var 和 /tmp 分区 1GB /, /home, /usr, /var, /tmp, swap

如果您选择使用(加密) LVM 导引式分区,安装程序还会创建一个单独的 /boot 分区。其他的分区,除了交换分区,都会建在 LVM 分区之内。

在选定了分区方式后的下一个界面,您会看到关于自己分区的一张表格,上面标明了分区是否将被格式化,将以何种方式格式化,以及它们将被挂载到哪里的相关信息。

分区表格的格式如下:

  IDE1 master (hda) - 6.4 GB WDC AC36400L
        #1 primary   16.4 MB  B f ext2       /boot
        #2 primary  551.0 MB      swap       swap
        #3 primary    5.8 GB      ntfs
           pri/log    8.2 MB      FREE SPACE

  IDE1 slave (hdb) - 80.0 GB ST380021A
        #1 primary   15.9 MB      ext3
        #2 primary  996.0 MB      fat16
        #3 primary    3.9 GB      xfs        /home
        #5 logical    6.0 GB    f ext3       /
        #6 logical    1.0 GB    f ext3       /var
        #7 logical  498.8 MB      ext3
        #8 logical  551.5 MB      swap       swap
        #9 logical   65.8 GB      ext2

本例中有两块 IDE 硬盘,它们分别被分割成了几个分区。第一块硬盘上还有些空闲空间。表中每行列出了分区编号、类型、大小、选项标志、文件系统和挂载点(如果有的话)。注意:导引式分区方式不能创建这些特殊的设置,但使用手动方式分区的结果会有所不同。

接下来,导引式分区就要完成了。如果您对上面生成的分区信息表感到满意,那么请在菜单中选择 Finish partitioning and write changes to disk 一项来创建新分区表(本节末将会对此进行解释)。如果您认为分区设置不如愿,那么可以选择 Undo changes to partitions,然后再次运行导引式分区,或者按照下面的介绍进行手动分区。

6.3.2.2. 手动分区

如果您选择手动分区的话,它的界面和上面介绍的导引式分区大体上相同。不同之处在于,界面上显示的是您当前的分区列表,而且其中并没有挂载点的信息。关于如何手动设置您的分区表,以及新安装的 Debian 系统将如何使用这些分区,将会在本节的后面谈到。

倘若您选用的是一块全新的硬盘,它还没有被分过区,上面也没有空闲空间。那么系统会要求新建一个分区表(只有这样,您才能创建新的分区)。分区表建好之后,在被选中的磁盘条目下出现一个新行,上面写着 “FREE SPACE”。

如果您选中了某块空闲空间,那么就可以在上面新建分区了。接着需要回答一系列简短的问题,它们会就分区大小、类型(主分区还是逻辑分区)、以及分区的位置(在空闲空间的开始部分还是在结束部分)向您询问。回答完毕后,您会看到一个新分区的小结。主要设置是 Use as:,它决定一个分区上是否会有文件系统,或被用作交换分区、软 RAID、LVM 和加密文件系统,或者根本就放着不用。其他的设置包括挂载点、挂载选项和启动标识;这些是否显示由分区的使用方式决定。如果您不喜欢预设的缺省设置的话,尽可以按照自己的喜好更改它们。比如说,选中 Use as: 选项,然后您可以让这个分区改用其他的文件系统,把它用作交换分区、软 RAID、LVM,或者根本就放着不用。另外还有个不错的功能,就是可以把现有分区的数据拷贝到新分区上。一旦您对新分区的设置感到满意了,就可以选择 Done setting up the partition,然后会自动退回到 partman 的主界面。

若是您希望修改分区的设置,只要选中该分区,分区的配置菜单就会出现在您的面前。由于这个界面和新建分区时使用的界面是相同的,所以您可以像以前那样修改那些设置项。有一件事,可能第一眼看不大出来,就是您还可以通过选中显示分区大小的项目来调整分区的大小。已知适用的文件系统至少有 fat16、fat32、ext2、ext3 和 swap。在这个菜单中,您还可以删除分区。

请确保至少分出两个分区:其中一个作为 root 文件系统(它必须挂载到 /),另一个用于 swap。若是您忘记了挂载根(root)文件系统的话,partman 会拒绝让您继续下面的步骤,直到您纠正了这个错误。

由于 partman 的功能是通过安装本套件的各模块功能得以延伸和扩展的,但是具体又因您系统的体系架构而有所区别。因此,如果您发现安装的实际情况与我们所言不符,缺少了某些功能特性,那么请检查一下,确保已加载了所有必须的模块(比如,partman-ext3partman-xfs 或者 partman-lvm)。

在您对分区设置感到满意后,就可以选择分区菜单中的 Finish partitioning and write changes to disk 一项。在这之后,会出现一个清单,它列出了即将在硬盘上进行的所有操作。此时,安装程序会让您确认是否就照此分区。

6.3.2.3. 配置多磁盘设备(软 RAID)

如果您的计算机上有多个硬盘[5],可以用 mdcfg 配置硬盘以提升效能和/或更好的数据可靠性。这种结果称为多磁盘设备(Multidisk Device)(或者更流行的 软 RAID)。

MD 本质上是一束位于部分磁盘上的分区,组合在一起形成一个逻辑设备。该设备可以像正常的分区一样使用(比如可以用 partman 格式化,分配挂载点,等等)。

得到什么样的好处取决于您创建的 MD 类型。当前支持的类型有:

RAID0

它的主要目标是效能。RAID0 将进来的数据分割成 stripes 然后平均分配到组里面的每个硬盘上。这样可以提升读/写操作速度,但是一旦其中的一个硬盘损坏,您将丢失一切(部分信息在好盘上,其他的曾经在坏盘上)。

典型的 RAID0 案例是应用在视频编辑的分区。

RAID1

适用于可靠性作为优先考虑的场合。它由多个(通常两个)相同尺寸的分区组成,每个分区容纳相同的数据。这意味着三件事。第一,如果其中的一个损坏,您仍然有数据镜像在其余的磁盘上。第二,您只能使用现有容量中的碎片(更准确的说,它是 RAID 中尺寸最小的磁盘分区)。第三,文件读取在磁盘间负载平衡,这可以提升服务器的性能,如文件服务器,它倾向于读的负载大于写。

可选择的是,您可以用备用的磁盘放在组中,用于顶替事故中损坏的磁盘。

RAID5

这是一个速度、可靠性和数据冗余都不错的折衷方案。RAID5 将进来的数据分割成 strips (类似于RAID0),但只平均分配到一个磁盘上。与 RAID0 不同,RAID5 还会计算奇偶校验信息,这将会写入其他磁盘。奇偶检验磁盘不是静态的(那被称为 RAID4),会周期性的修改,所以奇偶校验信息平均分配到所有磁盘。当其中的一个磁盘损坏,丢失信息的部分可以从其他数据以及奇偶校验计算出来。RAID5 最少需要三个活动的分区。作为选项,您可以用备用的磁盘放在组中,用于顶替事故中损坏的磁盘。

如您所见,RAID5 近于 RAID1 的可靠性并具有较少冗余。另一方面,它只比 RAID0 在写入的时候慢,这是因为要计算校验信息。

RAID6

它与 RAID5 近似,但使用两个校验设备而不是一个。

RAID6 阵列可以容忍两个磁盘损坏。

RAID10

RAID10 组合了 striping (如 RAID0) 和 mirroring (如 RAID1)。它创建输入数据的 n 个拷贝,并将它们分配到不同的分区,使得相同数据的拷贝不会放在相同的的设备上。默认的 n 值为 2,但可以在专家模式(export mode)下进行设置。分区数至少是 n。RAID10 有不同的分配拷贝布局(layout)。默认为 near copies。near copies 有所有磁盘上相同 offset 的所有拷贝。far copies 有磁盘上不同 offset 的拷贝。offset copies 复制 stripe,而不是整个拷贝。

RAID10 能可靠且冗余地存储,而没有计算校验的缺点。

总结:

类型 最少设备 备用设备 幸免于磁盘损坏? 可用空间
RAID0 2 容量为最小分区乘以 RAID 设备数
RAID1 2 可选 容量为 RAID 最小分区
RAID5 3 可选 容量为最小分区乘以(RAID 设备数量减一)
RAID6 4 可选 容量为最小分区乘以(RAID 设备数量减二)
RAID10 2 可选 所有的分区数除以 chunk 拷贝数(默认为二)

如果您想真正全面了解软 RAID,看一下 Software RAID HOWTO

为了创建 MD 设备,您需要将期望的分区标记为供 RAID 使用。(通过 Partition settings 菜单的 partman 完成,您应该选择 Use as:physical volume for RAID。)

注意

请确保系统可以从您规划的分区引导。当使用 RAID 作为根 (/) 文件系统时,通常需要创建一个单独的文件系统给 /boot。多数的 boot loaders 支持 mirrored (而非 striped!) RAID1,所以例如使用 RAID5 给 / 同时 RAID1 给 /boot 是一种方式。

警告

在安装程序中支持 MD 是相对新的功能。如果您尝试结合一些 RAID 类型与启动引导器并将 MD 用于根(/)文件系统,您也许会经历一些挫折。对有经验的用户,从 shell 手动地处理一些配置和安装步骤,也许会绕开这些问题。

下一步,您应该从 partman 主菜单选择 Configure software RAID。(菜单只会在您用 physical volume for RAID 标记了至少一个分区时出现。)在 mdcfg 第一个画面选择 Create MD device。您将看到被支持的 MD 设备列表,您应从其中选择一项(如 RAID1)。后续操作会根据您选择的 MD 类型而定。

  • RAID0 是简单的 — 您会看到可用的 RAID 分区,然后您的任务仅是选择那些想要组成 MD 的分区。

  • RAID1 需要一些技巧。首先,您将要求输入组成 MD 的活动设备和备用设备数量。其次,您需要从 RAID 可用分区列表中选择哪些是活动分区,哪些是备用的。选择的分区总数必须与之前提供的数目相同。别担心,如果您出错选择了不一样的分区数,debian-installer 将不会允许您继续下去,直到纠正错误。

  • RAID5 的配置过程类似于 RAID1,只是您至少需要三个活动分区。

  • RAID6 的配置过程类似于 RAID1,只是您至少需要四个活动分区。

  • RAID10 除了专家(export mode)模式之外也和 RAID1 的设置过程相似。在专家模式下,debian-installer 将询问您布局(layout)。布局由两部分组成。第一个部分是布局类型。可以是 n (对应 near copies)、f (对应 far copies) 或 o (对应 offset copies)。第二部分是组成数据的拷贝数。这些活动设备必须是让所有的拷贝可以分布到不同磁盘。

完美的解决方案或许是同时使用不同的 MD 类型。例如,您有三块 200 GB 的硬盘打算用于 MD,每块包含两个 100 GB 的分区,您可以将三块硬盘上的第一组分区组成 RAID0 (高速的 300 GB 视频编辑分区),其余的三个分区(2 个活动 1 个备用)用于 RAID1 (相当可靠的 100 GB 分区用于 /home)。

按您需要配置 MD 设备之后,您可以 Finish mdcfg 返回到 partman,去创建文件系统到您的新 MD 设备,并分配挂载点这样的属性。

6.3.2.4. 配置逻辑卷管理(LVM)

如果您做计算机系统管理员工作或者“高级”用户,一定遇到过磁盘分区(经常是最重要的那个)空间不足,同时其他的分区却不能平衡使用,然后不得不靠移到或符号链接等方法来折腾。

为了避免上面描述的情况,您可以采用逻辑卷管理(LVM)。简而言之,使用 LVM 可以组合您的分区(物理卷(physical volumes),LVM 术语)形成一个虚拟盘(称为卷组(volume group)),它可以被分割成虚拟分区(逻辑卷(logical volumes))。逻辑卷(当然底层是卷组)的亮点在于它可以跨越多个物理磁盘。

当您认觉得需要更多的空间给已有的 160 GB 的 /home 分区时,只需加一个新的 300GB 磁盘到计算机,添加进已经存在的卷组,然后为 /home 分区的逻辑卷重新设置尺寸,瞧 — 您的用户在更新的 460GB 分区上又有了空间。这个例子当然过于简单。如果您还还没有读过,应该查阅 LVM HOWTO

debian-installer 里面设置 LVM 很简单,partman 完全支持。首先,必须为 LVM 标记您的分区为物理卷。这在 Partition settings 菜单里完成,那里您应该选择 Use as:physical volume for LVM

当您返回 partman 主界面,将看到一个新选项 Configure the Logical Volume Manager。选择它,首先会被要求确认修改分区表(如果有的话),然后 LVM 配置菜单才显示出来。菜单上部显示了 LVM 配置的小结。菜单项本身是与内容相关,只显示可用的操作。可能的操作有:

  • Display configuration details: 显示 LVM 设备结构,名称和逻辑卷尺寸等

  • Create volume group

  • Create logical volume

  • Delete volume group

  • Delete logical volume

  • Extend volume group

  • Reduce volume group

  • Finish: 返回 partman 主界面

使用该菜单内的选项首先创建卷组,然后在里面创建逻辑卷。

返回到 partman 的主界面之后,可以看到新建的逻辑卷与其他普通的分区一样(您也应该这样对待它们)。

6.3.2.5. 配置加密卷

debian-installer 允许您建立加密分区。写入该分区的每个文件都立即存为加密形式。只有在输入 passphrase 通过认证之后才能访问加密后的数据,口令是在加密分区创建时设置的。该特性用于保护您被盗的便携机或硬盘上的敏感数据。盗贼或许可以访问硬盘,但是没有正确的口令,硬盘上的数据看起来就像是随机的字符。

有两个需要加密的重要分区:home 分区,驻留您的私人数据,以及交换分区,敏感的数据在操作时会临时保存在这里。当然,这不影响您加密任何其他的分区。例如,数据库服务器、邮件服务器或打印服务器上用来保存数据的 /var。或者 /tmp,很多程序用来保存临时文件。有些人或许需要加密整个系统。惟一的例外是,/boot 分区必须保持未加密,这是因为当前没有办法从加密分区加载内核。

注意

请注意,加密分区的性能将低于未加密的状态,这是由于数据在每次读写时都要进行加密和解密。性能将与您的 CPU 速度、选择的加密算法和密钥长度紧密相关。

为了使用加密,您必须在主分区菜单选择空闲的空间创建一个新分区。另一种是使用现有的分区(例如,普通的分区、一个 LVM 逻辑卷或者 RAID 卷)。在 Partition setting 菜单,您需要选择 physical volume for encryption,其位于 Use as: 选项。菜单将包含分区的加密选项。

debian-installer 支持多种加密方法。默认的方法为 dm-crypt (已经包含在新的 Linux 内核中,用于 LVM 物理卷),另外一种是 loop-AES (旧方法,在 Linux 内核树之外单独维护)。除非您另有特别的原因,推荐使用默认的方法。

首先,让我们来看看选择 Device-mapper (dm-crypt) 作为加密方法后可用的选项。一般规律:如果不能确定,就使用默认项,因为它们是经过审慎的安全考虑的选择。

Encryption: aes

该选项让您选择加密算法(cipher),它用来加密分区上的数据。debian-installer 当前支持以下 block ciphers:aesblowfishserpenttwofish。讨论这些算法的质量超出了本文的范畴,但是,您应该知道,在 2000 年,AES 被 American National Institute of Standards and Technology 选择作为标准的加密算法,用于保护 21 世纪的敏感信息。

Key size: 256

这里您可以指定密钥长度。使用较长的密钥,加密的能力自然得到提升。另一方面,增加长度自然会降低性能。cipher 决定可用的密钥长度。

IV algorithm: cbc-essiv:sha256

Initialization VectorIV 算法是确保加密过程中用同一个密钥对于同一 clear text 将产生惟一的 cipher text。用于防止攻击者根据加密数据中的重复模板推断信息。

与其替代者比较,默认的 cbc-essiv:sha256 是当前已知的具有最少的攻击漏洞。您只有在需要保持与以前安装的系统兼容,而它们无法使用新的算法时,才使用其他的算法。

Encryption key: Passphrase

这里您可以为分区选择所使用的加密密钥类型。

Passphrase

加密密钥将基于 passphrase 计算[6],使用时要求输入。

Random key

当您每次使用加密分区的时候,会从随机数据中生成一个新的加密密钥。换句话说:每次关机驻留在内存里面的密钥删除以后分区上的内容将丢失。(当然,您会猜想该密钥将面临暴力破解,但是除非加密算法中有未知的弱点,这辈子也不会被攻破。)

随机密钥用于交换分区,这样您就不必为记住 passphrase 或关机前清除交换分区上的敏感信息而费神。然而,这也意味着您将无法使用新 Linux 内核提供的 “suspend-to-disk” 功能,因为它将无法(在下次启动时)恢复写入到交换分区的数据。

Erase data: yes

决定在建立加密前是否使用随机数据覆盖分区内容。推荐这种方式,否则攻击者将会发现分区的哪些部分使用而哪些没有使用。另外,这将使安装前的内容很难恢复[7]

如果您选择了 Encryption method:Loopback (loop-AES),菜单选项将变成下面内容:

Encryption: AES256

不像 dm-crypt,loop-AES 选项的 cipher 和密钥长度是组合在一起的,这样您可以同时选取。请查阅前面关于 cipher 和密钥长度的章节了解更多信息。

Encryption key: Keyfile (GnuPG)

这里您可以为分区选择加密密钥的类型。

Keyfile (GnuPG)

加密密钥会在安装过程中使用随机数据生成。并且该密钥使用 GnuPG 加密。要使用它,您需要输入正确的 passphrase (在以后会要求提供)。

Random key

请查阅前面有关随机密钥的章节。

Erase data: yes

请查阅前面有关删除数据的章节。

当您选择好加密分区参数之后,返回分区主菜单。现在会有一个新的菜单项 Configure encrypted volumes。选择它,您会被要求确认删除所标记分区上的数据,以及写新分区表等动作。对于大的分区,这会花一些时间。

接下来,您会被要求输入 passphrase 用于配置的分区。好的口令应该长于 8 个字符,并混合字母、数字和其他字符,而不应该是普通词典中的单词或者容易与您相关的信息(比如生日、爱好、宠物的名字、以及家里其他成员的名字,等等)。

警告

在输入任何 passphrase 之前,您应该确定键盘配置正确可以输入所需要的字符。如果您不能肯定,可以切换到第二虚拟控制台,在提示符下敲一些文字。这能保证您以后不必惊慌失措,例如,想要使用 qwerty 键盘输入的 passphrase,而在安装时却使用的是 azerty 布局。造成的原因有多种。也许是您在安装过程中改变了键盘布局,或者是所选择的键盘布局未能正确建立,而且是在为根文件系统输入 passphrase 的时候。

如果您选择 passphrase 之外的方法创建加密密钥,它们现在就会生成。因为内核在安装的早期阶段还没有足够的熵,过程会长一些。您可以产生一些熵以加快速度:例如,随机的按下一些键,或者切换到第二虚拟控制台的 shell 产生一些网络或磁盘的动作(下载一些文件,将一些大文件送到 /dev/null 等等)。这个过程在每个要加密的分区重复进行。

返回主分区菜单后,您将看到所有的加密卷作为额外的分区,它们可以像其他的普通分区一样配置。下面例子中显示了两种不同的卷。第一个是使用 dm-crypt 加密的,第二个采用 loop-AES。

Encrypted volume (sda2_crypt) - 115.1 GB Linux device-mapper
     #1 115.1 GB  F ext3

Loopback (loop0) - 515.2 MB AES256 keyfile
     #1 515.2 MB  F ext3

现在可以给卷设置挂载点,如果默认的文件系统类型对您不合适,可以进行修改。

要留意括号里的标识(本例中 sda2_cryptloop0) 和您为每个加密卷所设置的加载点。启动新系统的时候您会需要该信息。关于普通引导过程和使用加密后引导过程之间的差异,将在后面的 第 7.2 节 “挂载加密卷” 说明。

当您满意分区之后,可以继续安装过程。

6.3.3. 安装基本系统

尽管这一阶段少有问题,但却需要大量时间用于整个基本系统的下载、校验和解包。如果您用较慢的计算机或网络,这要花费好一会儿时间。

在基本系统安装期间,软件包解包和配置信息重定向到 tty4。您可以通过按下 左 Alt+F4 访问该终端;返回主安装进程使用 左 Alt+F1

在安装程序通过串口控制台执行的情况下,基本系统安装时解包/配置信息保存在 /var/log/syslog

作为安装的一部分,Linux 内核也要安装。在默认的优先级下,安装程序会选择一个与您硬件最匹配的内核。在较低的优先级下,您可以从列表中选择一个有效的内核。

6.3.4. 设置用户和密码

系统安装之后,安装程序要求您创建 “root” 帐号和/或第一个用户帐号。其他的用户帐号可以在安装完成之后创建。

6.3.4.1. 设置 root 密码

root 帐户也被称为超级用户;系统中的所有的安全防护措施对以该身份登录的都是无效的。root 帐户应该仅用来进行系统管理,而且使用时间应该尽可能短。

您所创建的任何密码都应该包含至少 6 个字符,同时包含大小写字母,并且最好带有标点符号等特殊字符。因为超级用户具有最高权限,因此在您设置 root 密码时尤其需要小心。请避免采用能够在字典中查到的单词或者很容易猜测的个人信息。

如果他人向您索取您的 root 密码,也需要特别谨慎。除非您所管理的系统有多位管理员,否则通常不应该将超级用户密码交给别人。

6.3.4.2. 创建一个普通用户

系统会询问您现在是否希望创建一个普通帐户。您将使用该帐户进行日常登录操作。切记,平时不要使用 root 帐户登录或者将其作为个人帐号使用。

为什么呢?避免使用 root 特权帐户的一个原因是,它很容易对系统造成无法挽回的破坏。另一个原因是,您有可能被恶意诱使运行特洛伊木马程序 — 这是一种利用超级用户权限在您未知的情况下损害系统安全的程序。任何合格的 Unix 系统管理书籍中都会涉及到这一主题 — 如果您不是很了解这方面的内容,建议找一本进行学习。

您首先会被要求输入用户的全名。然后要求输入用户帐号名;通常您的名字或者类似的便满足要求,并为缺省值。最后,您将要求输入该帐号的密码。

如果在安装完毕后还希望建立其它新帐户,请使用 adduser 命令。

6.3.5. 安装额外的软件

现在,您拥有了一个可用但有限的系统。大多数用户会安装额外的软件,并根据他们的需求进行调整,安装程序允许您这么做。如果您的电脑或网络比较慢,这一步或许比安装基本系统还要花时间。

6.3.5.1. 配置 apt

在 Debian GNU/Linux 系统上,apt-get 是一个人们用来安装软件包的程序,它被包含在 apt 软件包中[8]。其他的包管理前端程序,像 aptitudesynaptic 也在使用。这些前端软件推荐给新用户使用,因为它们在良好的用户界面下集成了一些其他特性(搜索包与状态检验)。事实上,aptitude 现在已经建议作为软件包管理工具使用。

您必须设置 apt,使它明白该从哪里获取软件包。设置的结果写入到 /etc/apt/sources.list 文件里面,安装完成后您可以检查并编辑成自己喜欢的地方。

如果您在默认优先级下进行安装,安装程序会自动处理大部分配置,它是根据您使用的安装方法以及在安装开始时所做的选择。如果您安装的是稳定版,大多数情况下安装程序程序会自动加上安全镜像,它是 “volatile” 更新服务的镜像。

如果您采用较低的优先级安装 (比如,expert 模式),就要自己做更多的判定。您可以选择是否使用安全、或者 volatile 更新服务,并能选择从 “contrib” 和 “non-free” 软件仓库里面添加软件包。

6.3.5.1.1. 从多个 CD 或 DVD 安装

假如从一张 CD 或 DVD 安装,而它只属于所要安装程序的一部分,安装程序会询问您是否需要检测其他的 CD 或 DVD。如果您手头有这些光盘,检测后安装程序就可以使用它们里面的软件包了。

假如您没有这些 CD 或 DVD,也没关系:它们不是必须的。如果您也不使用网络镜像(下节说明),意味着下一步中选择的任务里面并非所有的软件包都会安装。

注意

CD(和 DVD) 里面包含的软件包按照流行程度排列次序。也就是说,第一张光盘里面是最常用的软件,而最后一张光盘里面包含的是很少有人用到的软件。

这也意味着购买或者下载刻录所有 CD 是一种浪费,因为大部分光盘您根本不会用到。多数情况下,只需要使用前 3 到 8 张 CD,然后从网络镜像安装其他要用的软件包。DVD 的情况类似:只要一张,或者前两张 DVD 就能满足您大部分要求。

根据经验,常见的桌面安装(使用 GNOME 桌面环境)只需要前三张 CD。其他的桌面环境(KDE 或 Xfce),就需要额外的 CD。而第一张 DVD 就可以轻松地满足所有的三种桌面环境。

如果您检测了多张 CD 或 DVD,安装程序会在需要其他盘上的软件包时,提示您换盘。注意,只有同属于一个套件的 CD 或 DVD 需要检测。检测的次序并不是非常重要,但按照次序来可以降低出错的几率。

6.3.5.1.2. 使用网络镜像

多数安装下会有一个问题被问到,是否需要使用网络镜像作为软件包的源。多数情况下默认答案会很好,但还是有一些例外。

如果没有使用完整版的 CD 或 DVD,或者完整版的 CD/DVD 映像,您就应该使用网络镜像,否则只能得到一个有限的系统。然而,假如您有互联网连接限制,在安装过程的下一步最好不要选择 desktop 任务。

如果您是从完整的 CD 或 CD 映像安装,虽然添加网络镜像并不是必须的,但仍建议您采用,这是因为单张 CD 所能容纳的软件包数量是有限的。假如您有互联网连接限制,这里最好不要选择网络镜像,只使用当前 CD 上的软件包完成安装,以后(比如,重新启动到新系统)再安装额外的软件包。

如果您从 DVD 或使用 DVD 映象安装,安装过程中需要的软件包都应该在第一张 DVD 里面。如果您如前面章节所述检测了多张 CD,情况也是一样的。网络镜像的使用是一个选项。

添加网络镜像的优势在于有些内容已经更新,而 CD/DVD 只是在版本发布时创建,所以可以安装已经更新的内容,确保了系统的安全性和稳定性。。

总结:除非您不具备良好的互联网连接,选择网络镜像通常是一个好主意。如果 CD/DVD 上有软件包当前的版本,安装程序总会从这里安装。如果您选择了镜像,需要下载的数据量取决于

  1. 安装下一步选择的任务,

  2. 这些任务所需的软件包,

  3. 已检测的 CD 或 DVD 上的软件包,并且

  4. CD 或 DVD 上面的软件包在网络镜像里面是否有更新版本(普通软件包的网络镜像,或者安全更新的镜像)。

注意,最后一点意味着,即使您没有选择使用网络镜像,如果配置了安全检测服务,并且软件包有安全更新,仍然会从互联网下载更新后的软件包。

6.3.5.2. 选择和安装软件

安装过程中,您有机会选择安装额外的软件包。不像从 21750 个软件包里面里面选择单独的软件包,这一阶段安装过程着眼于安装一组预先定义的软件包,来快速建立您的计算机应对各种任务。

于是,您可以先选择任务,然后再单独添加软件包。任务松散地代表了您要在计算机上从事的一系列工作,比如“桌面环境”、“Web 服务器”或者“打印服务器[9]第 D.2 节 “各软件集所需的磁盘空间” 列出了各种任务所需的空间。

注意,根据所安装电脑的特征,有些任务被预先选择。如果您不需要它们,可以取消这些任务。此时甚至可以不选中任何任务。

注意

除非选择 KDE 或 Xfce/LXDE CD,“Desktop environment” 任务将安装 GNOME 桌面环境。

在安装过程中无法交互式地选择另外一种桌面。但是,可以通过预置(见 第 B.4.11 节 “选择软件包”),或者启动安装程序的时候添加 desktop=kde 引导参数,让 debian-installer 安装 KDE 桌面环境而不是 GNOME。另外,轻量级的 Xfce 和 LXDE 桌面环境可以用 desktop=xfcedesktop=lxde 进行选择。

注意,这只在该桌面环境对应的软件包可以获得的情况下有效。假如您安装时使用单个 CD 映象,它们就像其他光盘上的软件包一样需要从网络镜像下载;这种方式安装 KDE、Xfce 或 LXDE 同样适用于 DVD 映象或其他的安装方法。

各种服务器任务大概会安装这些软件。DNS 服务器:bind9;文件服务器:sambanfs;邮件服务器:exim4spamassassinuw-imap;打印服务器:cups;SQL 数据库:postgresql;Web 服务器:apache2

Standard system” 任务会安装具有 “standard” 优先级的软件包。这包括很多在任何 Linux 和 Unix 系统上常用的工具。除非清楚自己的目的并需要一个最小化的系统,您应该让该任务选中。

一旦您确定了任务,请选择 Continue。此时,aptitude 将安装选中任务的软件包。假如某个程序需要用户输入信息,它将提示您指定。

注意

在安装程序的标准用户界面下,您可以使用空格键切换任务的选择。

您应当清楚桌面任务非常巨大。特别是当使用 CD-ROM 而安装 CD-ROM 上没有的软件包,安装程序将从网上下载大量的软件包。如果您的互联网接入较慢,这将花很长时间。一旦启动,安装软件包过程将无法取消。

即使软件包在 CD-ROM 上,如果镜像服务器上的版本更新,安装程序还是会从镜像上获取这些软件包。如果您安装的是稳定版,这会出现在次版本发布之后(主稳定版本的更新);如果您安装的是测试版本,这会出现在使用旧映像安装时。

6.3.6. 创建启动系统

6.3.6.1. 检测其他的操作系统

在 boot loader 安装之前,安装程序会试着侦测已经安装到计算机上的其他操作系统。如果它找到支持的操作系统,您将在启动 boot loader 安装步骤里得到提示。与 Debian 一起,计算机也将配置为可以启动其他操作系统。

注意,从单机上启动多个操作系统仍然是黑色艺术。自动支持检测和设置 boot loader 启动其他操作系统,会依系统甚至是子系统而变化。如果它不能工作,您应该参考启动管理器的文档了解更多信息。

6.3.6.2. zipl-installer

S/390 上的 boot loader 是 “zipl”。ZIPL 的配置和用法类似于 LILO,只有少许不同。如果您想了解更多,请参考 “LINUX for S/390 Device Drivers and Installation Commands”,它位于 IBM 的 developerWorks 网站ZIPL

6.3.6.3. 不使用 boot loader 继续进行

该选项用于完成安装而不安装 boot loader,这种情况要么是体系/子体系不支持,要么是因为不想要(比如,您想使用已经存在的 boot loader)

如果您打算手动设置 bootloader,需要检测安装的内核,它位于 /target/boot。您还需要检测 initrd 存在的目录;如果有,也许需要指导 bootloader 使用它。其他需要的信息,包括您为 / 文件系统选择的磁盘和分区,并且,如果您打算安装 /boot 到一个独立的分区,还需要 /boot 文件系统。

6.3.7. 完成安装

这是在您 Debian 安装过程的最后一步。在这最后的几分钟工作里,主要进行一些 debian-installer 之后的清理。

6.3.7.1. 设置系统时钟

安装程序可能会询问是否计算机的时钟设置为 UTC。通常会尽量避免这个问题,而且安装程序依据是否有其他系统已经安装这类事情,来决定时钟要不要设为 UTC。

在 expert 模式下,您总是可以选择时钟是否设为 UTC。

此时,debian-installer 将保存当前的时间到系统的硬件时钟。它可以是 UTC 或者本地时间,这取决于刚才的选择。

6.3.7.2. 重新启动系统

最后一个提示信息后,由于重启不被 S/390 支持,系统将关机。您需要 DASD 上的 IPL Debian GNU/Linux,它在安装步骤第一步里被选做根文件系统。

6.3.8. 杂项

这里的组件通常不在安装进程之内,但会在后台待命,以帮助用户遇到麻烦时处理问题。

6.3.8.1. 保存安装记录

如果安装成功,安装过程中创建的记录文件,会被自动保存在您的新 Debian 系统上的 /var/log/installer/

从主菜单上选择 Save debug logs,允许您将记录文件保存到软盘上、网络、硬盘或其他介质。这可用于安装过程中遭遇严重错误的时,您想在其它系统上研究记录,或者用于报告的附件。

6.3.8.2. 使用 Shell 查看记录

安装过程中您可以使用多种方法获得一个 shell。多数系统上,如果您不试通过串口控制台安装,最简单的方法是按下 Left Alt+F2 [10] 切换到第二个虚拟控制台(在 Mac 键盘上,是 Option+F2)。用 Left Alt+F1 可以切换回安装程序。

如果您无法切换控制台,还可以在主菜单上执行 Execute a Shell 选项,它可以启动一个 shell。您可以使用一次或多次 Go Back 按钮从大多数对话框返回主菜单。键入 exit 关闭 shell 并回到安装程序。

因为这时您是从 RAM 盘启动,只有有限的 Unix 工具可以使用。您可以通过命令 ls /bin /sbin /usr/bin /usr/sbin 和键入 help 查看哪些程序可以使用。其 shell 称为 ash,是 Bourne shell 的克隆,有一些如自动完成与历史纪录这样的好特性。

要编辑和查看文件,请使用文本编辑器 nano。安装系统的日志可以在 /var/log 目录找到。

注意

虽然在 shell 里面您可以用存在的命令做任何事情,但 shell 真正的用途只是遇到问题时进行调试。

在 shell 里面手动操作可能会影响安装过程,造成错误或无法完成安装。特别是,您应该让安装程序激活交换分区,而不是在 shell 里面自己动手。

6.3.8.3. 通过网络安装

S/390 上安装,建立网络之后这是默认的方法。

会被问到新密码用于连接到安装系统,以及确认。只需要这些。现在您应该看到一个画面,提示使用 installer 用户远程登录,密码就是刚才您提供的。另外一个需要留意的重要细节,是屏幕上显示的该系统的 fingerprint。您需要安全地传输该 fingerprint 给“那些要继续远程安装的人”。

当您决定继续本地安装时,不断地按 Enter,就可以返回主菜单,之后可以选择其他的组件。

现在转到网线的另一端。有一个先决条件,您需要配置您的终端使用 UTF-8 编码,因为安装系统使用这种编码。如果不这样做,远程安装也可以进行,但是您可能看到奇怪的显示,比如破碎的对话框边界,或者不可读的非 ASCII 字符。与安装系统建立连接只需键入:

$ ssh -l installer install_host

其中 install_host 是安装计算机的名字或 IP 地址。正式登录之前,会显示远程系统的 fingerprint,您需要确认是否正确。

注意

安装程序中的 ssh 服务器使用的是默认的配置,并不发送 keep-alive 包。原则上,已安装系统的连接应该无限期的保持打开。但是,某些情况下 — 由您的局域网设置决定 — 一段时间的不活动,连接将会断开。这种情况常发生在客户端和系统上安装有 Network Address Translation (NAT) 的地方。基于连接在安装过程中的哪一点断开,您在连接之后可能继续,也可能无法继续安装过程。

您可以通过在启动 ssh 连接时添加 -o ServerAliveInterval=value 选项来避免断开,或者把它加到 ssh 的配置文件里面。注意,某些情况下添加该选项反而会造成断开(例如,如果 keep-alive 包在网络故障(brief network outage)期间送出,ssh 将会恢复),因此它只在需要的时候采用。

注意

如果您依次安装多台电脑,他们碰巧使用相同的 IP 地址或主机名,那么 ssh 将拒绝连接。造成的原因是它具有不同的 fingerprint,这通常是欺骗攻击的标志。如果您确信不是那种情况,需要删除 ~/.ssh/known_hosts 里面相关的行[11],再重新来过。

登录之后您将看到一个初始画面,显示有两个可能,Start menuStart shell。前一个将带您到安装主菜单,那么您可以像普通方式一样安装。后一个打开一个 shell,您可以检查修复远程的系统。在安装菜单只能打开一个 SSH 会话,但 shell 可以打开多个。

警告

使用 SSH 开始远程安装之后,您不该返回本地控制台运行的安装会话。这将破坏新系统配置的数据库。结果可能导致安装失败或者安装完成的系统出现问题。



[3] 技术范畴:一种语言针对不同国家代码有多个不同 locale 存在。

[4] 安装程序将使用 256 位的 AES 密钥加密 LVM 卷组,并使用内核的 “dm-crypt” 支持。

[5] 其实,您可以从单个物理硬盘上不同分区创建 MD 设备,但这样做不会给您带来任何好处。

[6] 使用 passphrase 作为密钥意味着建立分区是使用 LUKS

[7] 据信那些三个缩写字母部门的家伙可以恢复经过多次覆盖的磁记录设备上的数据。

[8] 其实,真正用来安装软件包的程序是 dpkg。但这是一个比较底层的工具。apt-get 是一个高级工具,它可以在适当的时候调用 dpkg。它知道从您的光盘、网络或其它地方获取软件包。它还可以在安装某个软件包时自动安装所需的其它软件包。

[9] 您应该知道,呈现这个列表,安装程序仅仅是执行 tasksel 程序。它可以在安装之后的任何时间安装(或删除)其他软件包,或者使用更精致的工具,例如 aptitude。如果您需要一个特定的软件包,在安装之后,只须执行 aptitude install package,其中 package 是您需要的软件包名。

[10] 就是:按下位于 空格键 左手边的 Alt 键,同时按下 F2 功能键。

[11] 下面的命令将删除一个主机的已有记录: ssh-keygen -R <hostname|IP address>.