この節は、マニュアルの他の部分で説明されているメニュードリブンインストーラを使用せずに、既存の Unix・Linux システムから Debian GNU/Linux をインストールする方法について説明します。この 「クロスインストール」 HOWTO は、Red Hat, Mandriva, SUSE から Debian GNU/Linux に移行するユーザの要望で書かれました。本節では、*nix コマンドの入力について熟知し、ファイルシステムを操作できるのが前提となっています。本節では、#
が Debian chroot に入力されたコマンドを示し、$
はユーザの現在のシステムに入力されるコマンドを表します。
一旦、新しい Debian システムを好みに設定したら、既存のユーザデータを (あるなら) 稼働したまま移行できます。したがって、これは 「ダウンタイム無し」での Debian GNU/Linux インストールになります。またこれは、様々な起動・インストールメディアと相性のよくないハードウェアに対処するうまい方法です。
![]() |
注記 |
---|---|
これはほとんど手作業になりますから、自分でシステムの大部分の基本設定を行う必要があります。それには通常のインストールよりも Debian や Linux の一般的な知識が必要なことを覚えておいてください。また、この手順で通常のインストールと全く同じシステムになると期待してはいけません。これはシステムをセットアップする基本的な手順でしかありません。追加インストールや追加設定が必要になるかもしれません。 |
今の *nix のパーティション分割ツールで、スワップと最低 1 つファイルシステムを作成するよう、ハードディスクを希望に添って再分割してください。コンソールのみのインストールには、最低 506MB の空き領域が必要ですし、X をインストールする予定なら 1536MB (GNOME や KDE のようなデスクトップ環境をインストールする場合はもっと) 必要です。
次に、パーティションにファイルシステムを作成してください。例えば、/dev/sda6
パーティションに、ext3 ファイルシステムを作成するには、以下のようにします。(今回の例ではこのパーティションを root パーティションとします)
# mke2fs -j /dev/sda6
ext3 ではなく ext2 ファイルシステムを作成するには、-j
を取ってください。
スワップを以下のように初期化して有効にしてください。(パーティション番号は、Debian スワップパーティションにするパーティション番号に、読み替えてください)
# mkswap /dev/sda5
# sync # swapon /dev/sda5
パーティションを /mnt/debinst
(インストールポイント。新システムの root (/
) ファイルシステムになります) にマウントしてください。厳密にいうとマウントポイント名は何でも構いません。以降の説明ではこれを使用します。
# mkdir /mnt/debinst
# mount /dev/sda6
/mnt/debinst
![]() |
注記 |
---|---|
分割したパーティションをファイルシステムの一部 (例 /usr) にマウントする場合、次のステージに進む前に、手動でそのディレクトリを作成・マウントする必要があります。 |
Debian インストーラが使用するユーティリティで、Debian 基本システムをインストールする公式の方法と認められているのが debootstrap です。wget と ar を使用しますが、/bin/sh
と基本的な Unix/Linux ツール[26]にのみ依存しています。今のシステムにまだインストールしていなければ、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 を実行すると、アーカイブから必要なファイルを直接ダウンロードできます。以下のコマンドの例では、http.us.debian.org/debian
としていますが、ネットワーク的に近い Debian アーカイブミラーサイトで代用できます。ミラーサイトは、http://www.debian.org/mirror/list に一覧があります。
jessie Debian GNU/Linux CD を持っていて、/cdrom
にマウントしていれば、http URL に代えて file URL (file:/cdrom/debian/
) を使用することができます。
debootstrap コマンドの ARCH
は、以下のうち一つを使用してください。amd64
, arm64
, armel
, armhf
, i386
, mips
, mipsel
, powerpc
, ppc64el
, s390x
です。
# /usr/sbin/debootstrap --arch ARCH jessie \ /mnt/debinst http://ftp.us.debian.org/debian
さあ、これでディスクに真の Debian システムを (いくぶん中がスカスカですが) 手に入れました。そこに chroot してください。
# LANG=C.UTF-8 chroot /mnt/debinst /bin/bash
chroot した後で、Debian 基本システムと互換のある端末定義を設定する必要があるかもしれません。例えば以下のようにします。
# export TERM=xterm-color
TERM の値により、その値をサポートするのに ncurses-term
パッケージをインストールする必要があるかもしれません。
この時点で、/dev/
には、非常に基本的なデバイスファイルがあるだけです。おそらくインストールの次のステップで、追加デバイスファイルが必要になります。インストールに使用するホストシステムがモジュール化カーネルを使用するかどうかや、新しいシステムで動的デバイスファイル (例: udev
を使用) と静的デバイスファイルのどちらを使用するかにより、どの方法で行うかが異なります。
以下のような選択肢があります。
makedev パッケージをインストールし、次のようにして (chroot してから)、デフォルトの静的デバイスファイル群を作成してください。
# apt-get install makedev # mount none /proc -t proc # 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/adjtime
ファイルの 3 行目に、「UTC」 か 「LOCAL」 を設定し、システムがハードウェアの時計を UTC として解釈するか、それぞれの現地時間として解釈するかを決定します。以下のコマンドで、上記の選択とタイムゾーンの選択を行えます。
# editor /etc/adjtime
以下に例を示します。
0.0 0 0.0 0 UTC
以下のコマンドでタイムゾーンの選択ができます。
# dpkg-reconfigure tzdata
ネットワークの設定をするには、/etc/network/interfaces
, /etc/resolv.conf
, /etc/hostname
and /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 127.0.1.1 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 など) と結びつけられます。
debootstrap は、追加パッケージをインストールする、非常に基本的な /etc/apt/sources.list
を作成します。しかし、他のパッケージ取得先を追加したくなると思います。以下の例はソースパッケージとセキュリティ更新を追加しています。
deb-src http://ftp.us.debian.org/debian jessie main deb http://security.debian.org/ jessie/updates main deb-src http://security.debian.org/ jessie/updates main
sources list を更新したら、aptitude update
を必ず実行してください。
英語以外の言語を使用するようロケールの設定をするために、ロケールをサポートするパッケージ (locales
) をインストール・設定してください。現在は UTF-8 ロケールを使用するのをお勧めします。
# aptitude install locales # dpkg-reconfigure locales
(必要なら) 以下のようにキーボードの設定を行ってください。
# aptitude install console-setup # dpkg-reconfigure keyboard-configuration
chroot 内では、キーボードを設定できませんが、再起動後に有効になることに注意してください。
このシステムを起動できるようにするなら、おそらく Linux カーネルとブートローダが必要でしょう。以下のようにして、パッケージ化済みカーネルを確認してください。
# apt-cache search linux-image
その後、パッケージ名を指定して、選択したカーネルパッケージをインストールしてください。
# aptitude install linux-image-arch-etc
Debian GNU/Linux システムを起動できるようにするために、インストールしたカーネルを新しい root パーティションから読み込むように、ブートローダをセットアップしてください。debootstrap は、ブートローダをインストールしないことに注意してください。とは言っても、セットアップするのに Debian chroot 内部の aptitude を使用できます。
ブートローダのセットアップについての説明は、info grub
や man lilo.conf
をチェックしてください。Debian をインストールするのに使用したシステムを保持する場合、既存の grub2 の grub.cfg
や lilo.conf
に、Debian インストールへのエントリを単に加えてください。lilo.conf
では新システムにそれをコピーし、そこで編集してください。編集を終えた後、lilo を呼び出してください (lilo を呼び出したシステムと関係あるところの、lilo.conf
が使われるということを覚えていてください)。
grub2
のインストールと設定は以下のように簡単です。
# aptitude install grub-pc
# grub-install /dev/sda
# update-grub
2 つ目のコマンドで、grub2 を (この場合は sda
の MBR に) インストールします。最後のコマンドで、正しく動作する /boot/grub/grub.cfg
を作成します。
/dev/sda
デバイスファイルは、作成済みだと仮定していることに注意してください。grub2 のインストールには別の方法もありますが、それはこの付録では扱いません。
以下は基本的な /etc/lilo.conf
の例です。
boot=/dev/sda6
root=/dev/sda6
install=menu delay=20 lba32 image=/vmlinuz initrd=/initrd.img label=Debian
In case you can login to the system via console, you can skip this section. If the system should be accessible via the network later on, you need to install SSH and set up access.
# aptitude install ssh
Root login with password is disabled by default, so setting up access can be done by setting a password and re-enable root login with password:
# passwd # editor /etc/ssh/sshd_config
This is the option to be enabled:
PermitRootLogin yes
Access can also be set up by adding an ssh key to the root account:
# mkdir /root/.ssh # cat << EOF > /root/.ssh/authorized_keys ssh-rsa .... EOF
Lastly, access can be set up by adding a non-root user and setting a password:
# adduser joe # passwd joe
すでに述べたように、インストールしたシステムは非常に基本的な物になります。もっと成熟したシステムにしたければ、優先度が 「standard」 のパッケージを、すべてインストールする簡単な方法があります。以下のようにしてください。
# tasksel install standard
もちろん aptitude で、個々のパッケージをインストールすることもできます。
インストールが終わると、ダウンロードしたパッケージが /var/cache/apt/archives/
に大量に残っています。以下のようにして、ディスク領域を解放できます。
# aptitude clean