モーグルとカバとパウダーの日記

モーグルやカバ(EXカービング)山スキー(BC)などがメインの日記でした。今は仕事のコンピュータ系のネタが主になっています。以前はスパム対策関連が多かったのですが最近はディープラーニング関連が多めです。

PXE使ってUbuntuをネットワークインストール

昨日、HDDが死んで1年ちょっとくらい使えないままになってた東芝のM200という古い(2003年製)タブレットPCに、Ubuntuを入れて復活させました。
このM200ってやつ、タブレットが使えて画素数が1400x1050と細かくてなかなか良いのですが、CD/DVDドライブがついてなくてUSB起動も出来ないため、新規にインストールするのはなかなか手間なのです。
CD/DVD起動できるドライブか、SDでも起動できるのですが、ドライブは結構相性があり、SDもいわゆるUSB起動のようにお手軽じゃなくて、FDDエミュレートで起動するためISO焼けばいいってもんじゃないのが難点。


そこでtwitterで聞いてみたところ、ネットブート出来るならネットワークインストールがいいんじゃね?という意見をいただき、調べたら結構簡単そうだったので試してみました。


検索すると、Windows上にネットワークインストール用のサーバを用意し、そこからリカバリ用のイメージを起動させるというものが出てくるのですが、今回はそれを応用してUbuntuを入れてやりました。
つまり、ネットワークインストール用の親機はWindowsで、そこにUbuntuのネットワークインストール用ファイルを置いて、M200ではUbuntuインストーラが走るというわけです。


Windowsをネットワークインストールの親機にして、リカバリ用XPを入れる例は下記エントリーが参考になると思います。

How to Install Vista on a M200 without a CD Drive using TFTP | RyanTAdams.com
http://blog.ryantadams.com/2008/02/01/how-to-boot-from-the-network-pxe-boot-with-tftp-and-windows-pe


また、Linuxをネットワークインストールの親機にして、DebianUbuntuを入れる例は下記エントリーが参考になるでしょう。

PXEDebian/Ubuntuをネットワークインストール - よしみ視点
http://d.hatena.ne.jp/sfujisak/20080306/p1


さて、PXEを使ったネットワークインストールをする場合、DHCPとTFTPが使われます。
前記のLinuxをネットワークインストールの親機にする場合には、まさにDHCPとTFTPを入れて設定をしてやることになるのですが、Windowsの場合、その機能が一つにまとまっているtftpboot.exeというツールが便利そうなのでこれを利用しました。


1. Ubuntuのネットワークインストール用のファイルをダウンロード

Ubuntu 11 のネットワークインストール用ファイル netboot.tar.gz
http://archive.ubuntu.com/ubuntu/dists/natty/main/installer-i386/current/images/netboot/netboot.tar.gz
11を入れたかったので"natty"にしていますが、ここを変更することで違うバージョンのものをインストールできます。
http://archive.ubuntu.com/ubuntu/dists/
から適当なバージョンを選択してくだいさい。


2. 7-zip等で netboot.tar.gz を適当なディレクトリに展開


3. boot時に必要な設定ファイルを編集

【展開したディレクトリ】\ubuntu-installer\i386\pxelinux.cfg\default

default boot
prompt 0
say booting...
label boot
kernel linux
append initrd=initrd.gz


4. Windows上でネットブートサーバになる tftpboot.exe をダウンロード
http://blog.ryantadams.com/wp-content/uploads/tftpboot.exe


5. tftpboot.exeを実行して適当なところに展開


6. tftpboot.exe の設定

tftpbootを実行し、いくつかの項目を設定します。

  • [Server interface]が現在のローカルエリア接続のIPになっていることを確認
  • [Settings]->[Base Directory]

  【展開したディレクトリ】\ubuntu-installer\i386

  • [DHCP server]->[Boot File]

  pxelinux.0

  • [IP pool starting address]

  192.168.11.100 など、IP使ってないプライベートIPアドレス

  • [Size of pool]

  10 など

  • [Mask]

  255.255.255.0 など

  • [Domain Name]

  tftp など適当

DHCPの設定を[Save]で保存します。


3と6の設定により、ubuntu-installer\i386\ 以下にある pxelinux.0 でブートし、その設定ファイル pxelinux.cfg\default に記述した kernelとして使うファイルを「linux」、initrdを「initrd.gz」に指定して、インストーラが起動します。


あとはちょっと昔のLinuxインストーラのように、テキスト画面でインストーラが動いてインストールが進んでいきます。


Ubuntu 11.04 on M200 は、とりあえずなんもせずにディスプレイドライバやサウンドドライバ、あとペンの認識などもしてくれました。
が、Unityはダメだそうです。グラフィックアクセラレーションが効かないらしい。Nvidiaのチップ積んでるはずだけど、やっぱ古過ぎてダメか。