C.4. 通过 Unix/Linux 系统来安装 Debian GNU/Linux

本节说明了如何通过现有的 Unix 或 Linux 系统来安装 Debian GNU/Linux,而非使用 本手册后面要谈到的基于 ncurses,由菜单驱动的安装软件。这篇“交叉安装(cross-install)” HOWTO 是应用户的要求而撰写的。他们原来是 Redhat、Mandrake 和 SUSE 的用户, 现转而使用 Debian GNU/Linux。在本节中,我们假设您对于输入 *nix 命令以及在 文件系统中穿梭移动并不生疏。同时,在本节中,$ 标志着 这个命令是在用户当前使用的系统中输入的,而 # 则 表示这个命令是在 Debian chroot 环境中输入的。

您一旦根据自己的要求配置好了新的 Debian 系统,就可以将您的原来系统中的 用户数据(如果有的话)悉数迁移到 Debian 里去。然后就能继续爽了。一言以蔽之, 这是一次“不停机”的 Debian GNU/Linux 安装。同时,这也是处理那些因为硬件原因 不能通过任何引导或者安装介质完成安装的权宜之计。

C.4.1. 准备运动

根据需要,用已经安装的 *nix 的分区工具重新分区,要划分出至少一个文件系统外加 交换分区。您如果只用控制台(console)的话,至少要准备 150MB 空间,倘若想要装 X, 就需要至少 300MB 的空间了。

这里谈一下如何在您的分区上创建文件系统。举例来说,如果要在 /dev/hda6 分区(以后的例子中,将把它作为 root 分区) 建立一个 ext3 格式的文件系统,就像这样:

# mke2fs -j /dev/hda6

如果想建立的是 ext2 格式的文件系统,就要去掉 -j

初始化并激活交换分区(请把分区编号替换成您希望用作交换分区的分区编号):

# mkswap /dev/hda5
# sync; sync; sync
# swapon /dev/hda5

把一个分区挂载(mount)到 /mnt/debinst(这是安装的位置,将来作为您新系统的根(/)文件系统)。 挂载点的名称是任意的,后面的步骤将会用到它。

# mkdir /mnt/debinst
# mount /dev/hda6 /mnt/debinst

C.4.2. 安装 debootstrap

Debian 安装程序调用的软件,同时也为官方所采用,被用来安装基系统的工具是 debootstrap。它调用了 wgetar,否则就仅仅依赖 /bin/sh。安装 wgetar 如果您的系统里没有,然后再下载并安装 debootstrap

如果您用的是基于 rpm 的系统,那么可以用 alien 将 .deb 文件转换成为 .rpm 文件, 或者下载已被打包成 rpm 包的版本,它位于 http://people.debian.org/~blade/install/debootstrap

或者您也可以通过下面的步骤手动安装它。先新建一个工作目录,它被用来安放解压缩后的 .deb 文件:

# mkdir work
# cd work

debootstrap 的二进制文件被打包在 Debian 的归档文件中(请确保 选择了与您架构相对应的文件)。下载 debootstrap .deb 它位于 pool,把它拷贝到工作目录,并从该文件解压缩出这些二进制文件。要把二进制文件安装到系统中,您必须要 拥有 root 的权限。

# tar -xf debootstrap_0.X.X_arch.deb
# cd /
# zcat /full-path-to-work/work/data.tar.gz | tar xv

C.4.3. 运行 debootstrap

debootstrap 执行后,它会自己从归档文件库直接下载所需的文件。 您可以把下面的命令行例子中的 http.us.debian.org/debian 替换成任何一个 Debian 归档文件库的镜像。 选择镜像时,可以根据您的网络情况选择较近的一个。镜像的列表在 http://www.debian.org/misc/README.mirrors

如果您已经把一张 sarge 版本的 Debian GNU/Linux CD 挂载在了 /cdrom 那么也可以把 http URL 替换成 file URL,即:file:/cdrom/debian/

请将下列架构中的一个替换 ARCHdebootstrap 命令中: alpha, arm, hppa, i386, ia64, m68k, mips, mipsel, powerpc, s390,或 sparc

# /usr/sbin/debootstrap --arch ARCH sarge \\
     /mnt/debinst http://http.us.debian.org/debian

C.4.4. 基系统的配置

现在您在硬盘上已经装上了一套真正的 Debian 操作系统,尽管它还很瘦小。Chroot 用来进入该系统:

# chroot /mnt/debinst /bin/bash

C.4.4.1. 分区的挂载

您需要新建 /etc/fstab

# editor /etc/fstab

这里有个样板,您不妨根据自己的情况来修改它:

# /etc/fstab: static file system information.
#
# file system    mount point   type    options                  dump pass
/dev/XXX         /             ext2    defaults                 0    0
/dev/XXX         /boot         ext2    ro,nosuid,nodev          0    2

/dev/XXX         none          swap    sw                       0    0
proc             /proc         proc    defaults                 0    0

/dev/fd0         /mnt/floppy   auto    noauto,rw,sync,user,exec 0    0
/dev/cdrom       /mnt/cdrom    iso9660 noauto,ro,user,exec      0    0

/dev/XXX         /tmp          ext2    rw,nosuid,nodev          0    2
/dev/XXX         /var          ext2    rw,nosuid,nodev          0    2
/dev/XXX         /usr          ext2    rw,nodev                 0    2
/dev/XXX         /home         ext2    rw,nosuid,nodev          0    2

您可以通过 mount -a 来挂载您的 /etc/fstab 中所标明的所有文件系统,您也可以一个一个地分别挂载这些文件系统,像:

# mount /path   # e.g.: mount /usr

您可以多次挂载 proc 文件系统。尽管通常把它挂载到 /proc,但是它还是可以被挂载到任意的地方。 如果您没有用 mount -a,那么请一定要再接着做之前先把 proc 挂载好:

# mount -t proc proc /proc

C.4.4.2. 键盘的配置

若要配置您的键盘,请:

# dpkg-reconfigure console-data

C.4.4.3. 网络的配置

要配置网络的话,请修改 /etc/network/interfaces, /etc/resolv.conf/etc/hostname

# editor /etc/network/interfaces 

这里有些从 /usr/share/doc/ifupdown/examples:

######################################################################
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
# See the interfaces(5) manpage for information on what options are 
# available.
######################################################################

# We always want the loopback interface.
#
auto lo
iface lo inet loopback

# To use dhcp:
#
# auto eth0
# iface eth0 inet dhcp

# An example static IP setup: (broadcast and gateway are optional)
#
# auto eth0
# iface eth0 inet static
#     address 192.168.0.42
#     network 192.168.0.0
#     netmask 255.255.255.0
#     broadcast 192.168.0.255
#     gateway 192.168.0.1

填入您的 nameserver(s) 和 搜索指令到 /etc/resolv.conf:

# editor /etc/resolv.conf

这里有个简单的 /etc/resolv.conf:

search hqdom.local\000
nameserver 10.1.1.36
nameserver 192.168.9.100

输入您的系统的主机名 (2 到 63 个字符):

# echo DebianHostName > /etc/hostname

如果您有多块网卡,在您修改 /etc/modules 文件时, 一定要按照期望的顺序排列驱动模块的名字。这样的话,在系统启动时,每块 网卡就能获得您所预期的 interface 名称了 (eth0、eth1 等等)。

C.4.4.4. 时区、用户和 APT 的配置

设置您的时区,添加一个普通用户,再运行下面的指令选择您的 apt

# /usr/sbin/base-config new

C.4.4.5. locales 的设置

要配置您的 locale 设定,以便使用英语以外的其它语言,就需要安装 提供 locales 支持的软件包,同时配置之:

# apt-get install locales
# dpkg-reconfigure locales

【注意】:在此之前必须配置好 apt,即在 base-config 阶段就配置好它。 在使用非 ASCII 或 latin1 的字符集的 locale 之前,请先参阅相应的 本地化指南(localisation HOWTO)。

C.4.5. 内核的安装

您若想启动这个系统,您很可能还需要一个 Linux 内核和一个 boot loader。 可以用下面指令找到那些目前可用的被打好包的内核

# apt-cache search kernel-image

接下来把您所选中的内核的软件包名作为命令行的参数来安装它。

# apt-get install kernel-image-2.X.X-arch-etc

C.4.6. Boot Loader 的设置

要让您的 Debian GNU/Linux 系统能够启动,还要设置您的 boot loader,好让它能加载 已安装的内核并用上新的根分区。注意 debootstrap 不会安装 boot loader, 因此您要在 Debian 的 chroot 中使用 apt-get 完成。

通过查阅 info grubman lilo.conf 可以得到一些有关设置 bootloader 的提示。 如果您希望保留用来安装 Debian 的那个系统,那么就 在现有的 grub menu.lstlilo.conf 里为 Debian 系统的安装添加一条配置就可以了。对于 lilo.conf您也可以把 这个文件拷贝到新的系统里,然后在新的系统里编辑它。当您修改好配置, 运行 lilo (请记住,您在哪个系统里运行 lilo,它就会用哪个系统里的 lilo.conf )。

下面有一个简单的/etc/lilo.conf 作为例子:

boot=/dev/hda6
root=/dev/hda6
install=/boot/boot-menu.b
delay=20
lba32
image=/vmlinuz
label=Debian