O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

PXE で linux インストールな本 -1 スピンドルマシンも Linux 化-

930 visualizações

Publicada em

comicmarket71 で頒布を試みて1冊も捌けなかったコピー誌

Publicada em: Internet
  • Login to see the comments

PXE で linux インストールな本 -1 スピンドルマシンも Linux 化-

  1. 1. PXE で linux インスト-ルな本 -1 スピンドルマシンも Linux 化- 1
  2. 2. 2
  3. 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. 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. 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. 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. 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
  8. 8. これで,FedoraCore6 というラベルでこのインストールイメージの呼び出 しが出来るようになります. 同様に様々なイメージを記述することも出来ます. 参考までに手元で試 した幾つかのイメージの入手場所を記載しておきます. VineLinux4.0 インストール CD 中の /images/pxeboot/vmlinuz /images/pxeboot/initrd.img FedoraCore6 インストール DVD 中の /images/pxeboot/vmlinuz /pxeboot/initrd.img Ubuntu6.10 ftp://ftp.riken.go.jp/Linux/ubuntu/dists/edgy/main/installer- i386/current/images/netboot/pxelinux.0 OpenSUSE10.2 インストール CD 中の /boot/i386/loader/linux /boot/i386/loader/initerd 8
  9. 9. クライアント側(インストール対象マシン)の準備 準備と言ってもあまり準備は必要ありませんが,データのバックアップは しておいた方が良いでしょう. データのバックアップ 別の OS をインストールするので消すつもりが無くても誤ってパーティ ションごと消してしまったりと言うことが起こりかねません.別マシンや ネットワーク上のサーバ等に待避しておきましょう. 私は,定期的に ホームディレクトリのバックアップを行っています.バックアップには rsync コマンドを利用しています.このコマンドであれば 2 回目以降は差 分だけのコピーになるので便利です.Windows でも Cygwin で提供されて います. PXE 起動設定. BIOS で起動順位の設定を行います.これは,インストールするマシンに よって方法は違いますが,大抵,BIOS の設定画面に移行してネットワー クブートの設定を有効にします.マニュアルを参照してください. 参考までに,手元のマシンでの設定方法を記述しておきます. 工人舎 SA1F00A の場合. 起動時 F2 Key にて BIOS 設定画面に移行. D. Drive Configuration を選択. LAN Boot を Disabled から Enabled に変更. ESC にて上階層へ移動, X. Save values and Exit を選択して終了. Victor Interlink MP-XV631 の場合. 起動時 F11 Key にて起動デバイス選択画面に遷移する. Network を選択する. 起動とインストール. さて,これで設定は終了しました.接続の確認をして起動してみましょう. DHCP./ 9
  10. 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. 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
  12. 12. あとがき 拙い本をお手にとって頂きありがとうございます.今回コミケ初出展でし た.色々ネタは考えていたのですが(Wii リモコンで Beryl をぐりぐりする とか自転車本とか),時間切れとなってしまい結局少し変わった?Linux イ ンストール本となりました.何かの役に立てば幸いです.また参加したい ですが,次はもっと早く計画を立てて増ページしたいとこです.考えてい たネタの幾つかは冬休みの宿題にします.(matoken) 著者 : matoken 連絡先 : matoken+c71@gmail.com http://hpv.cc/~maty/ 頒布場所 : コミックマーケット 71 発行日 : 2006/12/31 12

×