分类: LINUX
2006-10-04 10:02:26
本节说明了如何通过现有的 Unix 或 Linux 系统来安装 Debian GNU/Linux,而非使用本手册后面要谈到的由菜单驱动的安装软件。这篇“交叉安装(cross-install)” HOWTO 是应用户的要求而撰写的。他们原来是 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
如果您打算将部分文件系统(例如,/usr)放到独立的分区,在进入下一阶段之前,需要手动创建和加载这些目录。
Debian 安装程序调用的软件,同时也为官方所采用,被用来安装基系统的工具是 debootstrap。它调用了 wget 和 ar,否则就仅仅依赖 /bin/sh
。安装 wget 和 ar 如果您的系统里没有,然后再下载并安装 debootstrap。
如果您用的是基于 rpm 的系统,那么可以用 alien 将 .deb 文件转换成为 .rpm 文件,或者下载已被打包成 rpm 包的版本,它位于
或者您也可以通过下面的步骤手动安装它。先新建一个工作目录,它被用来安放解压缩后的 .deb 文件:
# mkdir work
# cd work
debootstrap 的二进制文件被打包在 Debian 的归档文件中(请确保选择了与您架构相对应的文件)。下载 debootstrap .deb 它位于 ,把它拷贝到工作目录,并从该文件解压缩出这些二进制文件。要把二进制文件安装到系统中,您必须要拥有 root 的权限。
# ar -x debootstrap_0.X.X_arch.deb
# cd /
# zcat /full-path-to-work/work/data.tar.gz | tar xv
注意,运行 debootstrap 可能需要您有最小版本的 glibc
(当前为 GLIBC_2.3)。 debootstrap 本身是一个 shell 脚本,但它会调用 glibc
的一下工具。
debootstrap 执行后,它会自己从归档文件库直接下载所需的文件。您可以把下面的命令行例子中的 http.us.debian.org/debian
替换成任何一个 Debian 归档文件库的镜像。选择镜像时,可以根据您的网络情况选择较近的一个。镜像的列表在 。
如果您已经把一张 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
现在您在硬盘上已经装上了一套真正的 Debian 操作系统,尽管它还很瘦小。Chroot 用来进入该系统:
# LANG= 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 / ext3 defaults 0 1
/dev/XXX /boot ext3 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 ext3 rw,nosuid,nodev 0 2
/dev/XXX /var ext3 rw,nosuid,nodev 0 2
/dev/XXX /usr ext3 rw,nodev 0 2
/dev/XXX /home ext3 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
ls /proc
命令现在应该列出非空目录。如果失败,您应该从 chroot: 以为加载 proc。
# mount -t proc proc /mnt/debinst/proc
若要配置您的键盘,请:
# dpkg-reconfigure console-data
注意,在 chroot 里面不能设置键盘,但重新启动以后可以。
要配置网络,请修改 /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 等等)。
设置您的时区,添加一个普通用户,再运行下面的指令选择您的 apt 源
# /usr/sbin/base-config new
要配置您的 locale 设定,以便使用英语以外的其它语言,就需要安装 提供 locales 支持的软件包,同时配置之:
# apt-get install locales
# dpkg-reconfigure locales
注意:在此之前必须配置好 apt,即在 base-config 阶段就配置好它。在使用非 ASCII 或 latin1 的字符集的 locale 之前,请先参阅相应的本地化指南(localisation HOWTO)。
您若想启动这个系统,您很可能还需要一个 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 完成。