Contenu connexe
Similaire à PXE で linux インストールな本 -1 スピンドルマシンも Linux 化- (20)
Plus de Kenichiro MATOHARA (20)
PXE で linux インストールな本 -1 スピンドルマシンも Linux 化-
- 3. PXE を利用した Linux のインストール方法
matoken
CD-ROM ドライブを利用しない幾つかのインス
トール方法
最近 Linux 等の PC-UNIX もデスクトップ用途としての利用も現実的に
なってきたように思います.私も Victor Interlink MP-XV631 に Ubuntu
Edgy をインストールしてメインで使っています.しかし,一般に 1 スピ
ンドルモデルと呼ばれる小型ノート PC にはインストールに利用する光学
ドライブ(CD-ROM 等)やフロッピーディスクドライブが付いていません.
純正のドライブを買えばそこからインストール することが出来ますし,
サードパーティのドライブから起動出来たりもしますが結構高い.という
ことで CD-ROM ドライブを利用しない幾つかのインストール方法につい
て触れてみます.
HDD を別マシンに取り付けてインストール
ノート PC を分解してハードディスクを取り出し,変換コネクタを経由し
て母艦に接続してインストールを行い,終了後元のマシンに戻す方法で
す.
以前はよくこの方法をよく使っていましたが,分解を行うとメーカ保証が
受けられなくなる可能性がありますし,分解に失敗すると PC を壊してし
まう可能性もあるのであまりお勧め出来ません.旧 IBM の ThinkPad でし
たらマニュアルが Web からダウンロード出来たので分解しやすかったで
す.
※母艦が必要,PC の分解が必要,ハードディスク変換コネクタが必要.
USB メモリを使ってインストール
USB メモリにインストールイメージをコピーして,その USB メモリから
起動してインストールする方法です.
この方法はノート PC の USB からの起動がサポートされていなければなり
ません.最近の PC はサポートしてあることが多いようです.起動がサ
ポートされているかどうかは BIOS のメニューやマニュアルを見ると解る
かもしれません.サポートしていても USB メモリの相性等で起動出来な
いことも多いようです.
私の手持ちの USB メモリについては数台のマシン/数種類の OS で確認し
3
- 4. ましたが,いずれも起動出来ませんでした.
※母艦不要,USB メモリが必要.
Loadlin.exe を使ってインストール
インストールイメージをコピーして,Loadlin という DOS プログラムから
起動しインストールを行う方法です.この方法は DOS から起動する必要
があり WindowsXP 等はサポートしていないようで現在あまり使えなくな
りました.
※母艦不要,DOS が必要(WindowsMe 以前)
PXE を使ってネットワーク経由でインストール
PXE(ピクシーと読むらしいです)に対応したネットワークカードからネッ
トワーク経由で起動し,同じくネットワーク経由でインストールを行う方
法 です.ノート PC の場合 BIOS の設定を確認することにより確認が出来
ると思います.更に,母艦にて最低でも PXE 用のサービスを立ち上げる
必要があります.
今回は,この PXE 経由のインストールを解説します.
※母艦必要,PXE に対応したネットワークカードが必要.
ホスト側(母艦)の準備
先ず,母艦側で PXE が呼び出す PXE サーバの用意をします. この間にイ
ンストールイメージのダウンロードなどを行うと良いでしょう.
今回,母艦には Ubuntu Edgy をインストールした Victor Interlink MP-
XV631 を利用しました.同じサービスを起動すれば Linux に限らず
Windows 等でも可能なはずです.
tftp サーバの準備
PXE Boot の要である tftp サーバを設定します. Ubuntu であれば複数の
パッケージが選べると思いますが,今回は tftpd-hpa というパッケージを
使いました.インストール方法は以下のとおりです.
$ sudo apt-get update
$ sudo apt-get install tftpd-hpa
4
- 5. もし,「tftpd-hpa はすでに最新バージョンです。」と表示されたらすでに
インストールされているはずです.
次に設定を行います. $ sudo vi /etc/default/tftpd-hpa 等として 2 行目の
RUN_DAEMON を no から yes に書き換えます.
RUN_DAEMON="yes"
この後,tftpd を起動します.以下のコマンドにて起動するはずです.
$ sudo /etc/init.d/tftpd-hpa start
これで tftp は起動しましたが,ブートイメージがありません.そこで,
Ubuntu のブートイメージを探してみました.インストール CD の中を探
しましたが,見つからなかったので ftp サイトを探してみると以下のもの
が見つかりました.
ftp://ftp.riken.go.jp/Linux/ubuntu/dists/dapper/main/installer-
i386/current/images/netboot/netboot.tar.gz
(本来は 1 行)
これをダウンロードして,tftp のディレクトリである/var/lib/tftpboot に展
開します.
$ wget
ftp://ftp.riken.go.jp/Linux/ubuntu/dists/dapper/main/installer-
i386/current/images/netboot/netboot.tar.gz
$ sudo tar xvzf netboot.tar.gz -C /var/lib/tftpboot
$ ls /var/lib/tftpboot
pxelinux.cfg pxelinux.0 ubuntu-installer
fttp が正しく動いているか試して見ましょう.fttp client を使います.イン
ストールしていない場合は,apt コマンドにて tftp-hpa をインストールし
てから試してください.
$ sudo apt-get install tftp-hpa
以下のように pxelinux.0 が取得できたら成功です.次のステップに進みま
しょう.
$ tftp localhost
tftp> get pxelinux.0
tftp> quit
$ ls
pxelinux.0
DHCP サーバの準備
今度は,dhcp サーバの準備を行います.ここでは dhcp3-server という
5
- 6. パッケージを利用しました.以下のようにしてインストールを行います.
$ sudo apt-get update
$ sudo apt-get install dhcp3-server
設定ファイルのあるディレクトリに移動して,念のため設定ファイルの
バックアップを取得した後編集を行います.
$ cd /etc/dhcp3/
$ sudo cp -p dhcpd.conf dhcpd.conf-org
$ sudo vi dhcpd.conf
差分は以下のようになりました.
$ diff dhcpd.conf dhcpd.conf-org
14,15c14,15
< option domain-name "hpv.cc";
< option domain-name-servers 192.168.0.1;
---
> option domain-name "example.org";
> option domain-name-servers ns1.example.org, ns2.example.org;
33,40d32
< subnet 192.168.0.0 netmask 255.255.255.0 {
< host matoken {
< hardware ethernet 00:A0:D1:C1:9C:41;
< fixed-address 192.168.0.70;
< option routers 192.168.0.1;
< filename="pxelinux.0";
< }
< }
• option domain-name
• 自分のホスト名です.適当でも大丈夫だと思います.
• option domain-name-servers
• DNS サーバです.ここではルータのアドレスを指定しています.
• subnet netmask
• ネットワークの範囲です.
• host
• 設定名です
• hardware ethernet
• 対象クライアントの PXE Boot する NIC の MAC アドレスです.
• Linux であれば ifconfig コマンドの HWaddr を参照してください.
• Windows であれば ipconfig /all コマンドの Physical Address を参照して
ください.
• fixed-address
• クライアントに割り当てられる IP アドレスです.
• option routers
• ネットワークルートです.ルータのアドレス等になると思います.
• filename
• ブートローダのファイル名です. これは,インストール用のカーネル
6
- 7. イメージではなくブートローダになります.tftp サーバの準備のとこ
ろでダウンロードした物です.
ネットワークの設定などは自分の環境に合わせて変更してください.設定
が出来たところで,dhcp デーモンを起動してみましょう.以下のように
して起動します.起動に失敗したら設定ファイルが間違っている可能性が
あります.確認しましょう.
$ sudo /etc/init.d/dhcp3-server start
今回の環境では上記のように設定しましたが,他の環境(Windows 等)でも
似たような設定で構築出来ると思います.
※注意
同一ネットワーク内に別の dhcp サーバが起動していると,そちらを見に
行って PXE Boot に失敗してしまうかもしれません.インストール中は一
時的に停止しておきましょう.私はルータの dhcp サーバ機能を停止し忘
れていて,成功したり失敗したりという状態になりました.
インストール用カーネルイメージの準備
ブートローダの準備は出来ましたが,インストール用にカーネルイメージ
の準備が出来ていません.これを準備しましょう.(Ubuntu については先
にダウンロードした netboot.tar.gz の中に含まれていますので,この手順
は不要です.) FedoraCore6 の場合,インストール DVD の中の
/images/pxeboot 以下がそれのようです. tftp のディレクトリに専用のディ
レクトリを作成し,イメージをコピーします.
$ sudo mkdir /var/lib/tftpboot/FedoraCore6
$ sudo cp /media/loop/images/pxeboot/vmlinuz
/var/lib/tftpboot/FedoraCore6
$ sudo cp /media/loop/images/pxeboot/initrd.img
/var/lib/tftpboot/FedoraCore6
更に,このイメージを呼び出せるようイメージリスト
/var/lib/tftpboot/pxelinux.cfg/default を編集します.不安な方はバックアッ
プを取得しておきましょう.
$ sudo cp -p /var/lib/tftpboot/pxelinux.cfg/default
/var/lib/tftpboot/pxelinux.cfg/default-org
$ sudo vi /var/lib/tftpboot/pxelinux.cfg/default
ファイル中の最後の方の PROMPT 1 の前の行に以下を記述して下さい.
LABEL FedoraCore6
kernel FedoraCore6/vmlinuz
append load initrd=FedoraCore6/initrd.img devfs=nomount
7
- 10. 等のプロンプトが表示され,dhcp アドレス取得後 tftp にてブートローダが
読み込まれます.
Ubuntu の画像と Boot: プロンプトが出てきたらほぼ大丈夫です.
プロンプトに設定した,FedoraCore6 を指定してみましょう.うまくいけ
ば以下のようにカーネルイメージが読み込まれ,インストールが始まりま
す.インストールについては通常のネットワークインストールと同じなの
で説明を省きます.
Boot: FedoraCore6
Loading FedoraCore6/vmlinuz................................
Loading FedoraCore6/initrd.img...........................................................
tips
少し関係があるような tips っぽい物です.
ISO イメージのダウンロード
ISO イメージ等のダウンロードを行う場合,wget コマンドを使うと便利で
す.
$ wget http://cdimage.ubuntulinux.jp/releases/6.10/ubuntu-ja-6.10-
desktop-i386.iso
プログレスが出てダウンロードされていきますが,失敗することがありま
す.
`ubuntu-ja-6.10-desktop-i386.iso' (No space left on device)へ書き込
めません。
作業中に disk full になってしまいダウンロードが途中で中断してしまいま
した. こんな間抜けなことはあまりやらないでしょうが,回線が不安定
で途中で切断されたりすることなんかはあるんじゃないでしょうか.こう
いうときまた最初からと言うのは時間も掛かるし面倒くさいですよね.
でも wget コマンドには続きからダウンロードを始めるというオプション
があります.-c オプションがそれです.以下のようにして利用します.
iso イメージ等大きなファイルをダウンロードするときにとても便利で
す.
$ wget -c http://cdimage.ubuntulinux.jp/releases/6.10/ubuntu-ja-
6.10-desktop-i386.iso
これで,前回ダウンロードが中断したところから始まります.
wget についての詳細は http://www.gnu.org/software/wget/
10
- 11. rsync コマンドでのバックアップ
rsync コマンドはローカルでもリモートでも行うことが出来ます.ネット
ワーク経由でバックアップを行う場合は,本来 rsync デーモンを起動する
必要があるのですが,-e オプションを利用すると外部のシェルを利用出来
ます.例えば''-e ssh' の様に指定すると ssh プロトコルで通信してデータ転
送を行うことが出来ます.これにより rsync デーモンを起動する必要があ
りませんし,経路も ssh により暗号化されるので安心です.
$ rsync -av -e ssh ~/ fileserver:/backup/machinename/homedir/
データ量が増えてきたら--delete オプションも付けると良いかもしれませ
ん.これは,バックアップ元で削除されたファイルをバックアップ先でも
削除してくれると言うオプションです.ただ, 間違って消した物を復元
したいと後で思っても無理です.こういう用途には差分バックアップを
使った方が良いでしょうね.hpv.cc のサーバ環境では,/home 以下は rsync
でミラー化した上で 1 日単位の差分バックアップを取得しています.
rsync についての詳細は http://rsync.samba.org/
hpv.cc の差分バックアップについては http://hpv.cc/backup.html
iso イメージのマウント
色々なディストリビューションを試していると CD-R や DVD-R を沢山焼
くことになりますが,今回のように中のデータを読めれば良いときなどは
イメージをマウントしてしまいましょう. Linux であれば,loop デバイ
ス利用することによりマウントできます.
$ sudo mkdir /media/loop
$ sudo mount /work/iso/FC-6-i386-DVD.iso /media/loop -o loop
Windows の場合は,DaemonTools というもの等があります.
詳細は http://www.daemon-tools.cc/
11