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) にマウントする場合、 次のステージに進む前に、 手動でそのディレクトリを作成・マウントする必要があります。 <command>debootstrap</command> のインストール Debian インストーラが使用するユーティリティで、 Debian 基本システムをインストールする公式の方法と認められているのが debootstrap です。 wgetar を使用しますが、 /bin/sh と基本的な Unix/Linux ツール これには、sed, grep, tar, gzip といった、 GNU コアユーティリティが含まれます。 にのみ依存しています。今のシステムにまだインストールしていなければ、 wgetar をインストールし、 その後 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 <command>debootstrap</command> の実行 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 grubman lilo.conf をチェックしてください。 Debian をインストールするのに使用したシステムを保持する場合、 既存の grub menu.lstlilo.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