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 的檔案庫中(請確保選擇了與您架構相對應的檔案)。下載位於 pooldebootstrap .deb,把它拷貝到工作目錄,並從該檔案解壓縮出這些二進位檔。要把二進位檔安裝到系統中,您必須要擁有 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 用來進入該系統:

# LANG= 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

# 編輯器 /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.
######################################################################

# 我們永遠需要 loopback 介面。
#
auto lo
iface lo inet loopback

# 使用 DHCP:
#
# auto eth0
# iface eth0 inet dhcp

# 靜態 IP 的設置範例 (broadcast 和 gateway 不一定要設定):
#
# 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:

# 編輯器 /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 完成。