本节说明了如何通过现有的 Unix 或 Linux 系统来安装 Debian GNU/Linux,而非使用 本手册后面要谈到的基于 ncurses、由菜单驱动的安装软件。这篇“交叉安装(cross-install)” 指南是应用户的要求而撰写的。他们原来是 Redhat、Mandrake 和 SUSE 的用户, 现转而使用 Debian GNU/Linux。在本节中,我们假设您对于输入 *nix 命令以及在 文件系统中穿梭移动并不生疏。同时,在本节中,$ 标志着 这个命令是在用户当前使用的系统中输入的,而 # 则 表示这个命令是在 Debian chroot 环境中输入的。
您一旦根据自己的要求配置好了新的 Debian 系统,就可以将您的原来系统中的 用户数据(如果有的话)悉数迁移到 Debian 里去。然后就能继续爽了。一言以蔽之, 这是一次“不停机”的 Debian GNU/Linux 安装。同时,这也是处理那些因为硬件原因 不能通过任何引导或者安装介质完成安装的权宜之计。
根据需要,用已经安装的 *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 |
Debian 安装程序调用的软件,同时也为官方所采用,被用来安装基系统的工具是 debootstrap。它调用了 wget,否则就仅仅依赖 /bin/sh。安装 wget 如果您的系统里没有,然后再下载并安装 debootstrap。
如果您用的是基于 rpm 的系统,那么可以用 alien 将 .deb 文件转换成为 .rpm 文件, 或者下载已被打包成 rpm 包的版本,它位于 http://people.debian.org/~blade/install/debootstrap
或者您也可以通过下面的步骤手动安装它。先新建一个工作目录,它被用来安放解压缩后的 .deb 文件:
$ mkdir work $ cd work |
debootstrap 的二进制文件被打包在 Debian 的归档文件中(请确保 选择了与您架构相对应的文件)。下载 debootstrap .deb 它位于 pool,把它拷贝到工作目录,并从该文件解压缩出这些二进制文件。要把二进制文件安装到系统中,您必须要 拥有 root 的权限。
$ ar -xf debootstrap_0.X.X_arch.deb $ cd / $ zcat < /full-path-to-work/work/data.tar.gz | tar xv |
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/
请将下列架构中的一个替换 ARCH 于 debootstrap 命令中: 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 |
现在你在硬盘上已经装上了一套真正的 Debian 操作系统,尽管它还很阳春。 Chroot 用来进入该系统:
$ chroot /mnt/debinst /bin/bash |
您需要新建 /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 |
要配置网络的话,请修改 /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 等等)。
您若想启动这个系统,您很可能还需要一个 Linux 内核和一个 boot loader。 可以用下面指令找到那些目前可用的被打好包的内核
# apt-cache search kernel-image |
接下来把您所选中的内核的软件包名作为命令行的参数来安装它。
# apt-get install kernel-image-2.X.X-arch-etc |
要让您的 Debian GNU/Linux 系统能够启动,还要设置您的 boot loader,好让它能加载 已安装的内核并用上新的根分区。注意 debootstrap 不会安装 boot loader, 因此您要在 Debian 的 chroot 中使用 apt-get 完成。
通过查阅 info grub 或 man lilo.conf 可以得到一些有关设置 bootloader 的提示。 如果您希望保留用来安装 Debian 的那个系统,那么就 在现有的 grub menu.lst 或 lilo.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 |