Unix/Linux システムからの &debian; のインストール
本節は、マニュアルの他の部分で説明されている
メニュードリブンインストーラを使用せずに、
既存の Unix・Linux システムから &debian;
をインストールする方法について説明します。
この クロスインストール
HOWTO は、
Red Hat, Mandrake, SUSE から &debian; に移行するユーザの要望で書かれました。
本節では、*nix コマンドの入力について熟知し、
ファイルシステムを操作できるのが前提となっています。
本節では、#が Debian chroot に入力されたコマンドを示し、
$ はユーザの現在のシステムに入力されるコマンドを表します。
一旦、新しい Debian システムを好みに設定したら、
既存のユーザデータを (あるなら) 稼働したまま移行できます。
したがって、これは 0 ダウンタイム
&debian; インストールになります。
またこれは、
様々な起動・インストールメディアと相性のよくないハードウェアに対処する、
うまい方法です。
これはほとんど手作業になりますから、
自分でシステムの大量の基本設定を行う必要があり、
それには通常のインストールよりも Debian や Linuxの知識が必要なことを、
覚えておいてください。
また、この手順で通常のインストールと同じシステムになると期待してはいけません。
これはシステムをセットアップする基本的な手順でしかありません。
追加インストールや追加設定が必要になるかもしれません。
これはほぼ手作業となりますので、多くのシステムの基本設定が必要なことや、
通常のインストールを実行するよりも、
Debian や Linux についての一般的な知識が必要になることを念頭に置くべきです。
この手順により得られるシステムが、通常のインストールにより得られるシステムと、
同一になることは期待できません。
この手順が、システムをセットアップする基本的な手順に過ぎないことも、
念頭に置いてください。
追加で、インストールや設定の手順が、必要になる可能性があります。
はじめに
今の *nix のパーティション分割ツールで、
スワップと最低 1 つファイルシステムを作成するよう、
ハードディスクを希望に添って再分割してください。
コンソールのみのインストールには、最低 350MB の空き領域が必要ですし、
X をインストールする予定なら 1GB
(GNOME や KDE のようなデスクトップ環境をインストールする場合はもっと)
必要です。
次に、パーティションにファイルシステムを作成してください。
例えば、/dev/hda6 パーティションに、
ext3 ファイルシステムを作成するには、以下のようにします。
(今回の例ではこのパーティションを root パーティションとします)
# mke2fs -j /dev/hda6
ext3 ではなく ext2 ファイルシステムを作成するには、
-j を取ってください。
スワップを以下のように初期化して有効にしてください。
(パーティション番号は、
Debian スワップパーティションにするパーティション番号に、
読み替えてください)
# mkswap /dev/hda5
# sync; sync; sync
# swapon /dev/hda5
パーティションを /mnt/debinst (インストールポイント。
新システムの root (/) ファイルシステムになります)
にマウントしてください。
厳密にいうとマウントポイント名は何でも構いません。
以降の説明ではこれを使用します。
# mkdir /mnt/debinst
# mount /dev/hda6 /mnt/debinst
分割したパーティションをファイルシステムの一部 (例 /usr) にマウントする場合、
次のステージに進む前に、
手動でそのディレクトリを作成・マウントする必要があります。
debootstrap のインストール
Debian インストーラが使用するユーティリティで、
Debian 基本システムをインストールする公式の方法と認められているのが
debootstrap です。
wget と ar を使用しますが、
/bin/sh と基本的な Unix/Linux ツール
これには、sed, grep,
tar, gzip といった、
GNU コアユーティリティが含まれます。
にのみ依存しています。今のシステムにまだインストールしていなければ、
wget と ar をインストールし、
その後 debootstrap
をダウンロード・インストールしてください。
また、手動でインストールするには、以下の手順になります。
まず .deb を展開するために作業フォルダを次のように作ってください。
# mkdir work
# cd work
debootstrap バイナリは、Debian アーカイブ
(あなたのアーキテクチャに適合するファイルを必ず選ぶこと) にあります。
pool から debootstrap .deb をダウンロードして、
作業フォルダにパッケージをコピーし、ファイルを展開してください。
ファイルをインストールする際には root 権限を持つ必要があるでしょう。
# ar -x debootstrap_0.X.X_all.deb
# cd /
# zcat /full-path-to-work/work/data.tar.gz | tar xv
debootstrap の実行
debootstrap は,実行されると、
アーカイブから必要なファイルを直接ダウンロードできます。
以下のコマンドの例では、
&archive-mirror;/debian としていますが、
ネットワーク的に近い Debian アーカイブミラーサイトで代用できます。
ミラーサイトは、
でリストされています。
&releasename; &debian; CD を持っていて、
/cdrom にマウントしていれば、
http URL に代えて file URL (file:/cdrom/debian/)
を使用することができます。
debootstrap コマンドの ARCH は、
以下のうち一つを使用してください。
alpha,
amd64,
arm,
hppa,
i386,
ia64,
m68k,
mips,
mipsel,
powerpc,
s390,
sparc.
# /usr/sbin/debootstrap --arch ARCH &releasename; \
/mnt/debinst http://ftp.us.debian.org/debian
基本システムの設定
さあ、これでディスクに真の Debian システムを
(いくぶん中がスカスカですが) 手に入れました。
そこに chroot してください。
# LANG=C chroot /mnt/debinst /bin/bash
chroot した後で、
Debian 基本システムと互換のある端末定義にする必要があるかもしれません。
例えば、以下のようにします。
# export TERM=xterm-color
デバイスファイルの作成
この時点で、/dev/ には、
非常に基本的なデバイスファイルがあるだけです。
おそらくインストールの次のステップで、追加デバイスファイルが必要になります。
インストールに使用するホストシステムがモジュール化カーネルを使用するかどうかや、
新しいシステムで動的デバイスファイル (例: udev を使用)
と静的デバイスファイルのどちらを使用するかにより、
どの方法で行うかが異なります。
以下のような選択肢があります。
次のようにしてデフォルトの静的デバイスファイル群を作成します。
# cd /dev
# MAKEDEV generic
MAKEDEV を使用して、
指定したデバイスファイルのみを手で作成します。
ホストシステムの /dev をターゲットシステムの /dev の先頭にマウントします。
いくつかのパッケージの postinst スクリプトでは、
デバイスファイルを作成しようとするのに注意してください。
そのため、この選択肢は注意深く使用するべきです。
パーティションのマウント
/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 /media/floppy auto noauto,rw,sync,user,exec 0 0
/dev/cdrom /media/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
/etc/fstab で指定したファイルシステムを、
すべてマウントするには mount -a としてください。
また、ファイルシステムを別々にマウントするには、以下のようにしてください。
# mount /path # e.g.: mount /usr
現在 Debian システムでは、リムーバブルメディアのマウントポイントを
/media にしていますが、
/ にシンボリックリンクを置き互換性を保っています。
以下の例のように、必要であれば作成してください。
# cd /media
# mkdir cdrom0
# ln -s cdrom0 cdrom
# cd /
# ln -s media/cdrom
proc ファイルシステムは、どこでも何度でもマウントすることができますが、
慣習的に /proc にマウントします。
mount -a を使用しなかった場合は、
以下のように先に進む前に必ず proc をマウントしてください。
# mount -t proc proc /proc
ls /proc コマンドは、
今度は空のディレクトリにはならないはずです。これが失敗するようなら、
以下のように chroot の外側から proc をマウントできるかもしれません。
# mount -t proc proc /mnt/debinst/proc
タイムゾーンの設定
/etc/default/rcS ファイルにある設定で、
システムがハードウェアの時計を UTC として解釈するか、
現地時間としてを解釈するかを決定します。
以下のコマンドで、上記の選択とタイムゾーンの選択を行えます。
# editor /etc/default/rcS
# tzconfig
ネットワークの設定
ネットワークの設定をするには、
/etc/network/interfaces,
/etc/resolv.conf,
/etc/hostname,
/etc/hosts を編集してください。
# 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
/etc/resolv.conf に、
ネームサーバと search ディレクティブを入力してください。
# editor /etc/resolv.conf
以下は、/etc/resolv.conf の簡単な例です。
search hqdom.local
nameserver 10.1.1.36
nameserver 192.168.9.100
システムのホスト名 (2 から 63 文字) を入力してください。
# echo DebianHostName > /etc/hostname
また、IPv6 をサポートした基本的な /etc/hosts
は以下のようにします。
127.0.0.1 localhost DebianHostName
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
複数のネットワークカードを持っているなら、
/etc/modules ファイルに希望の順番で、
ドライバモジュールの名前を配置してください。
その後起動中に、各カードは期待通りにインターフェース名 (eth0, eth1など)
と結びつけられます。
apt の設定
debootstrap は、追加パッケージをインストールする、
非常に基本的な /etc/apt/sources.list を作成します。
しかし、他のパッケージ取得先を追加したくなると思います。
以下の例はソースパッケージとセキュリティ更新を追加しています。
deb-src http://ftp.us.debian.org/debian &releasename; main
deb http://security.debian.org/ &releasename;/updates main
deb-src http://security.debian.org/ &releasename;/updates main
sources list を更新したら、
aptitude update を必ず実行してください。
ロケールとキーボードの設定
英語以外の言語を使用するようロケールの設定をするために、
ロケールをサポートするパッケージ
(locales) をインストール・設定してください。
現在は UTF-8 ロケールを使用するのをお奨めします。
# aptitude install locales
# dpkg-reconfigure locales
(必要なら) 以下のようにキーボードの設定を行ってください。
# aptitude install console-data
# dpkg-reconfigure console-data
chroot 内では、キーボードを設定できませんが、
再起動後に有効になることに注意してください。
カーネルのインストール
このシステムを起動できるようにするなら、
おそらく Linux カーネルとブートローダが必要でしょう。
以下のようにして、パッケージ化済みカーネルを確認してください。
# apt-cache search linux-image
パッケージ化済みカーネルを使用する予定であれば、
事前に /etc/kernel-img.conf
設定ファイルを作成したくなると思います。
以下にサンプルファイルを掲げます。
# Kernel image management overrides
# See kernel-img.conf(5) for details
do_symlinks = yes
relative_links = yes
do_bootloader = yes
do_bootfloppy = no
do_initrd = yes
link_in_boot = no
このファイルや様々なオプションの詳細は、
kernel-package パッケージインストール後に有効になる
man ページで説明しています。
これで、あなたのシステムに適切な値をチェックするのをお奨めします。
それから、選んだパッケージ名のカーネルパッケージをインストールしてください。
# aptitude install linux-image-&kernelversion;-arch-etc
パッケージ化済みカーネルをインストールする前に
/etc/kernel-img.conf を作成しない場合、
インストール時に関連する質問が行われると思います。
ブートローダのセットアップ
&debian; システムを起動できるようにするために、
インストールしたカーネルを新しい root パーティションから読み込むように、
ブートローダをセットアップしてください。debootstrap は、
ブートローダをインストールしないことに注意してください。
とは言っても、セットアップするのに Debian chroot 内部の
aptitude を使用できます。
ブートローダのセットアップについての説明は、
info grub や
man lilo.conf をチェックしてください。
Debian をインストールするのに使用したシステムを保持する場合、
既存の grub menu.lst や
lilo.conf に、
Debian インストールへのエントリを単に加えてください。
lilo.conf では新システムにそれをコピーし、そこで編集してください。
編集を終えた後、lilo を呼び出してください。
(lilo を呼び出したシステムと関係あるところの、
lilo.conf が使われるということを覚えていてください)
grub のインストールと設定は以下のように簡単です。
# aptitude install grub
# grub-install /dev/hda
# update-grub
2 つ目のコマンドで、grub を
(この場合は hda の MBR に) インストールします。
最後のコマンドで、
正しく動作する /boot/grub/menu.lst を作成します。
注意: /dev/hda デバイスファイルは、
すでに作成されていると仮定しています。
grub のインストールには別の方法もありますが、
それはこの付録では扱いません。
以下は基本的な /etc/lilo.conf の例です。
boot=/dev/hda6
root=/dev/hda6
install=menu
delay=20
lba32
image=/vmlinuz
initrd=/initrd.img
label=Debian
選択したブートローダによって、
/etc/kernel-img.conf にさらに変更を加えても結構です。
grub ブートローダでは、
do_bootloaderオプションに no
とセットしてください。
また、Debian のカーネルをインストール・削除で
/boot/grub/menu.lst を自動的に更新するには、
以下の行を追加してください。
postinst_hook = update-grub
postrm_hook = update-grub
lilo ブートローダでは、
do_bootloader の値は yes
である必要があります。
ブートローダのセットアップについての説明は、
man yaboot.conf をチェックしてください。
Debian をインストールするのに使用したシステムを保持する場合、
既存の yaboot.conf に、
Debian インストールへのエントリを単に加えてください。
そして新システムにそれをコピーし、そこで編集してください。
編集を終えた後、ybin を呼び出してください。
(ybin を呼び出したシステムと関係あるところの、
yaboot.conf が使われるということを覚えていてください)
以下は基本的な /etc/yaboot.conf の例です。
boot=/dev/hda2
device=hd:
partition=6
root=/dev/hda6
magicboot=/usr/lib/yaboot/ofboot
timeout=50
image=/vmlinux
label=Debian
いくつかのマシンでは、
hd: の代わりに
ide0: を使う必要があるかもしれません。
仕上げに
すでに述べたように、インストールしたシステムは非常に基本的な物になります。
もっと成熟したシステムにしたければ、
優先度が standard
のパッケージを、
すべてインストールする簡単な方法があります。以下のようにしてください。
# tasksel install standard
もちろん aptitude で、
個々のパッケージをインストールすることもできます。
インストールが終わると、ダウンロードしたパッケージが
/var/cache/apt/archives/ に大量に残っています。
以下のようにして、ディスク領域を解放できます。
# aptitude clean