5.4. 安装过程中的故障修复

5.4.1. CD-ROM 的可靠性

有时,特别是旧的 CD-ROM 驱动器,安装程序无法从 CD-ROM 引导。安装程序还可能 — 即使是从 CD-ROM 成功引导 — 无法识别 CD-ROM 或在安装时读取错误。

造成这些问题有各种原因。我们只列出了常见的,并提供解决这些问题的一般方法。余下的由您来处理。

您首先应试试两种最简单的方法。

  • 如果 CD-ROM 没有引导,检查一下它是否放好,并且没有弄脏。

  • 如果安装程序无法识别 CD-ROM,再次运行 Detect and mount CD-ROM 选项。有些旧 CD-ROM 驱动器 DMA 相关的问题可以用这种方法解决。

如果还无法工作,试试下一节建议的方法。多数情况下,但非全部,那里的建议适用于 CD-ROM 和 DVD,为了方便,只提到 CD-ROM。

如果您用 CD-ROM 无法安装,试试其他可用的安装方法。

5.4.1.1. 常见问题

  • 有些老 CD-ROM 驱动器不能读取新 CD 刻录机的高速模式下刻录的光盘。

  • 如果您的系统可以从 CD-ROM 引导,这并不是说 Linux 就能支持该 CD-ROM (或者,更准确一点,CD-ROM 驱动器所连接的控制器)。

  • 一些老式的 CD-ROM 驱动器在 direct memory access (DMA) 下无法正常工作。

5.4.1.2. 如何调查研究或许可以解决问题

如果从 CD-ROM 引导失败,试试下面所列的建议。

  • 检查您的 BIOS 的确支持从 CD-ROM 启动(旧的系统可能不行),并且 CD-ROM 驱动器支持您所使用的介质。

  • 如果您下载的是 iso 映像,检查映像的 md5sum 是否与 MD5SUMS 文件所列相同,该文件和您下载的映像在同一个地方。

    $ md5sum debian-testing-i386-netinst.iso
    a20391b12f7ff22ef705cee4059c6b92  debian-testing-i386-netinst.iso
    

    然后,检验所刻录 CD-ROM 的 md5sum 也匹配。可以使用下面的命令。它使用映像的尺寸从 CD-ROM 读取正确的字节数。

    $ dd if=/dev/cdrom | \
    
    > head -c `stat --format=%s debian-testing-i386-netinst.iso` | \
    
    > md5sum
    a20391b12f7ff22ef705cee4059c6b92  -
    262668+0 records in
    262668+0 records out
    134486016 bytes (134 MB) copied, 97.474 seconds, 1.4 MB/s
    

假如在安装程序正常的引导之后,无法识别 CD-ROM,有时只需再试一次就能解决问题。如果您有多个 CD-ROM 驱动器,将 CD-ROM 放到其他的驱动器。如果无法工作,或者可以识别 CD-ROM 但读取的时候有错误,试试下面所列的建议。这里需要一些基本的 Linux 知识。要执行命令,您应该首先切换到第二虚拟控制台(VT2),并激活 shell。

  • 切换到 VT4 或查看 /var/log/syslog 的内容(使用 nano 作为编辑器)来检查任何特定的错误信息。之后,再检查 dmesg 的输出。

  • 如果您的 CD-ROM 驱动器可以识别,检查 dmesg 的输出。可以看到类似的信息(这些行不必是连续出现的):

    Probing IDE interface ide1...
    hdc: TOSHIBA DVD-ROM SD-R6112, ATAPI CD/DVD-ROM drive
    ide1 at 0x170-0x177,0x376 on irq 15
    hdc: ATAPI 24X DVD-ROM DVD-R CD-R/RW drive, 2048kB Cache, UDMA(33)
    Uniform CD-ROM driver Revision: 3.20
    

    如果您看不到这些,估计是 CD-ROM 驱动器所连接的控制器无法被识别,或者完全不被支持。如果您知道控制器所需的驱动程序,可以使用 modprobe 手动加载。

  • 检查 /dev/ 下面您 CD-ROM 驱动器对应的设备节点。上面的例子中,它是 /dev/hdc。也会是 /dev/cdroms/cdrom0

  • mount 命令检查 the CD-ROM 是否已经挂载;如果没有,使用手动挂载:

    $ mount /dev/hdc /cdrom
    

    检查命令后面是否有什么错误信息。

  • 确认当前 DMA 已经打开:

    $ cd /proc/ide/hdc
    $ grep dma settings
    using_dma      1       0       1       rw
    

    using_dma 之后的第一列 1 意味着打开。如果是这样,将其关闭:

    $ echo -n "using_dma:0" 
    >settings
    

    确保您所处的目录对应 CD-ROM 驱动器。

  • 如果安装过程中有什么问题,用接近安装程序主菜单底部的选项检查 CD-ROM 的完整性。如果 CD-ROM 可以读,该选项可以对其进行测试。

5.4.2. 引导配置

如果在引导过程中您遇到了问题或者内核挂起,不识别实际拥有的外围设备,或者驱动不能被正确识别,首先要做的事情是检查引导参数,见 第 5.3 节 “引导参数” 讨论。

通常,可以通过移除外挂硬件或者外围设备来解决问题,然后再次重新引导。内置调制解调器、声卡以及即插即用设备特别容易引起问题。

如果您的机器上装有多于 512M 的大容量的内存,并且安装程序在引导内核时停止,您可能需要加入一个引导参数,来限制内核能够看到的内存数量,比如 mem=512m

5.4.3. Intel x86 常见安装问题

有一些常见的安装问题,可以通过给安装程序特定的引导参数解决或避免。

一些系统的软盘会有 inverted DCLs。如果您在读软盘时遇到错误信息,并且知道软盘是好的,请尝试 floppy=thinkpad 参数。

在一些系统上,比如 IBM PS/1 或者 ValuePoint (具有 ST-506 驱动器),IDE 驱动器可能不被识别。请首先尝试没有参数的引导是否能够被识别。如果不行,请确定驱动器几何参数(柱面、磁头还有扇区)。然后使用参数 hd=cylinders,heads,sectors

如果您有一台非常老的机器,并且内核在显示 Checking 'hlt' instruction... 时中断,需要尝试 no-hlt 参数来取消这个测试。

一些系统(特别是便携机)具有非 4:3 的原始比例(也就是那些非 800x600 或 1024x768),在安装程序启动之后出现屏幕空白。这种情况下,在 boot 参数后加上 vga=788[11] 可能解决问题。如果还不行,试试 boot 参数 fb=false

如果您的显示屏在内核引导的时候显示一个奇怪的图片(比如,纯白、纯黑或者彩色的像素块),系统可能含有一块有问题的显示卡。它不能切换至 framebuffer 模式。您可以使用引导参数 fb=false 来禁止使用 framebuffer 控制台。由于控制台的限制,在安装过程中只能使用少数的几种语言,参阅 第 5.3 节 “引导参数” 来获得细节信息。

5.4.3.1. 在 PCMCIA 配置阶段系统停止

Dell 笔记本的一些型号,会在 PCMCIA 设备检测程序尝试访问一些硬件地址的时候死机。其他笔记本可能显示类似的问题。如果您遇到那样的问题,并且在安装的时候不需要 PCMCIA 的支持,可以用 hw-detect/start_pcmcia=false 启动参数来取消 PCMCIA 功能。您可以在安装后配置 PCMCIA,去掉造成问题的资源区段。

或者,可以启动安装程序时进入 expert 模式。您需要按照要求输入硬件资源范围选项。比如,如果有如上所说的 Dell 笔记本问题,应该在这里输入 exclude port 0x800-0x8ff。在 System resource settings section of the PCMCIA HOWTO 处列出了一些资源范围选项。注意您在安装程序中,输入这些值的时候必须忽略逗号。

5.4.3.2. 在装入 USB 模块时系统停止

内核正常情况下会尝试安装 USB 模块以及 USB 键盘驱动来支持一些非标准的 USB 键盘。但是,有些不完整的 USB 系统会在驱动程序装入时死机。一个可能的解决方法是设置主板的 BIOS 禁止 USB 控制器。另一种选择是在引导提示符处传入 nousb 参数。

5.4.4. 内核起始信息注解

在引导期间,您可以看到很多信息类似 can't find something,或者 something not presentcan't initialize something,或者甚至 this driver release depends on something。大多数这些信息都是无害的。之所以看到它们,是因为安装系统内核被设计成为可以运行在具有不同外围设备的计算机。显然,没有一个计算机可能拥有所有的外围设备,因此操作系统可能在查找一些您没有的设备上有一些报怨。您有时可以看到系统暂停了一段时间。这是由于它在等待一台设备的回应,但是这台设备并没有安装在系统上。如果您发现这个时间非常长,以后可以创建一个定制的内核(参见 第 8.6 节 “编译新内核”)。

5.4.5. 报告安装问题

如果您过了初始化引导阶段,但还是不能安装,可以借助于 Save debug logs 菜单选项。它让您保存安装程序的系统错误记录和配置信息到软盘,或者用网络浏览器下载。该信息或许提供了一些关于错误的起因和如何解决它的线索。如果您正在提交一个 bug 报告,可以报告里附上该信息。

其他安装期间相关的信息可以在 /var/log/ 内找到,计算机用新安装的系统启动后,放在 /var/log/debian-installer/ 里。

5.4.6. 提交缺陷报告

如果仍有问题,请提交安装报告。即使已经安装成功,我们也鼓励您发一份安装报告,这让我们可以尽可能多地了解硬件的配置数量。

注意,您的安装包括将公布在 Debian Bug Tracking System (BTS) 并转发到公共的邮件列表。确保您使用的邮件地址可以被公开。

如果您有一个可以运转的 Debian 系统,发送安装报告最简单的方法是安装 installation-reportreportbug 软件包(aptitude install installation-report reportbug),配置 reportbug 的说明参阅 第 8.5.2 节 “发送邮件到系统之外”,然后执行 reportbug installation-reports 命令。

另外,您可以采用下列模板填写安装报告,并将它当作 installation-reports 虚拟软件包的 bug 报告,发送到

Package: installation-reports

Boot method: <How did you boot the installer? CD? floppy? network?>
Image version: <Full URL to image you downloaded is best>
Date: <Date and time of the install>

Machine: <Description of machine (eg, IBM Thinkpad R32)>
Processor:
Memory:
Partitions: <df -Tl will do; the raw partition table is preferred>

Output of lspci -knn (or lspci -nn):

Base System Installation Checklist:
[O] = OK, [E] = Error (please elaborate below), [ ] = didn't try it

Initial boot:           [ ]
Detect network card:    [ ]
Configure network:      [ ]
Detect CD:              [ ]
Load installer modules: [ ]
Detect hard drives:     [ ]
Partition hard drives:  [ ]
Install base system:    [ ]
Clock/timezone setup:   [ ]
User/password setup:    [ ]
Install tasks:          [ ]
Install boot loader:    [ ]
Overall install:        [ ]

Comments/Problems:

<Description of the install, in prose, and any thoughts, comments
      and ideas you had during the initial install.>

在 bug 报告中,请说明问题所在,包括内核挂起时最后见到的内核消息。描述进入问题状态所进行的步骤。



[11] 该参数 vga=788 激活 VESA framebuffer 的 800x600 分辨率。它可能有效,但也可能不适用于您的系统。使用 vga=ask 可以列出所支持的分辨率,但要注意该列表可能不全。