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. 内核起始信息注解

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

5.4.4. 报告安装问题

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

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

5.4.5. 提交缺陷报告

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

注意,您的安装包括将公布在 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 报告中,请说明问题所在,包括内核挂起时最后见到的内核消息。描述进入问题状态所进行的步骤。