本節說明了如何透過現有的 Unix 或 Linux 系統來安裝 Debian GNU/Linux,而非使用本手冊後面要談到的基於 ncurses,由選單驅動的安裝軟體。這篇"交叉安裝(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
Debian 安裝程式使用的軟體,同時也為官方所採用,被用來安裝基系統的工具是 debootstrap。它使用了 wget 和 ar,否則就僅僅依賴 /bin/sh
。如果您的系統裡沒有 wget 和 ar,請安裝。然後再下載並安裝 debootstrap。
如果您用的是以 rpm 為基礎的系統,那麼可以用 alien 將 .deb 檔案轉換成為 .rpm 檔案,或者下載已被包裝成 rpm 套件的版本,它位於 http://people.debian.org/~blade/install/debootstrap
或者您也可以透過下面的步驟手動安裝它。先新建一個工作目錄,它被用來放置解壓縮後的 .deb 文件:
# mkdir work # cd work
debootstrap 的二進位檔被包裝餘 Debian 的檔案庫中(請確保選擇了與您架構相對應的檔案)。下載位於 pool 的debootstrap .deb,把它拷貝到工作目錄,並從該檔案解壓縮出這些二進位檔。要把二進位檔安裝到系統中,您必須要擁有 root 的權限。
# tar -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 用來進入該系統:
# 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 / 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
。
# 編輯器 /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 等等)。
您若想啟動這個系統,您很可能還需要一個 Linux 核心和一個 boot loader。 可以用下面指令找到那些目前可用的被打好包的核心
# apt-cache search kernel-image
接下來把您所選中的核心的軟體套件名稱作為命令列的參數來安裝它。
# apt-get install kernel-image-2.X.X-arch-etc