Create  Edit  Diff  Mac OS X Serverで作る 小さな計算機室  Index  Search  Changes  RSS  Login

小さな計算機室 - NetBoot Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

!!!NetBootイメージを作成する

ブートイメージを作成するときは、是非、IEEE1394仕様の外付けハードディスクを用意したい。

#外付けハードディスクを用意し、そこにOSとソフトをインストールしておく。
#計算機室のeMacに繋いで、Optionを押しながら起動し、そのドライブを選んで、ちゃんと動くかどうか確認しておく。
#システムを終了し、別のMacに繋いでからサーバー/システムイメージユーティリティを起動
##「新規ブート」を選択
##イメージ名、イメージ索引(5桁の数値:最大値65536)を入れて
##イメージのソース(IEEE1394のドライブ)も必要ならば選択して
##"共有"環境設定のところにコンピュータ名を入れて(例えばeMacとか)
##作成 を押す

こうすると、保存先にはImage_数値.nbi のような名前の付いたディレクトリができているはず。
その中身はこんな感じである:
NBImageInfo.plist       booter                  mach.macosx.mkext
System.dmg              mach.macosx

この中のSystem.dmgがクライアントにマウントされる。このファイルはMac OSでフツー
に使われているディスクイメージなので、ダブルクリックしてマウントしたり、その中身
を書き換えたりするのは簡単。/Applicationsにアプリケーションを放り込んだりすることもできる。

System.dmgが窮屈に感じられたら、
hdiutil resize -size 15g System.dmg
とかやって、ディスクのサイズを後から変更しても構わない(みたいだ)。

クライアントがディスクレスではない場合は、クライアントのハードディスク(のルート)に
.com.apple.NetBootXというディレクトリが作成され、ページファイルや一時ファイルは
そこに置かれる。マウントしてあるディスクイメージをクライアント側で書き換えようと
しても、実際に書き換わるのは、.com.apple.NetBootX内のファイル(shadow file)のようだ。

ということは、NetBootで動作中のクライアントのハードディスクをアンマウントしたり、フォーマット
したりは、できないということになる。

イメージが完成したら、Image_数値.nbiを
/Library/NetBoot/NetBootSP0
に中に放り込んで、「サーバー管理/NetBoot」でイメージを有効にしておく。

"" 10.5上のシステムイメージユーティリティは10.4以前のOSがインストールされた
""ボリュームを認識してくれない。

!!!ロードバランス
イメージ索引(5桁の数値)は、複数のNetBootサーバーが存在するときに特に重要で、その数値が同じイメージは
NetBootサーバー間で自動的にロードバランスを取ってくれるらしい。
ここの計算機室では、2台のG5のどちらもNetBootサーバーに設定してある。
様子を観察してみると、1.8GHzシングルのG5には13台のクライアントが、2GHzデュアルのG5
には21台のクライアントがぶら下がった状態で落ち着いている。
サーバーの能力までコミで、自動的に負荷調整が行われているとしたらスバラシイ。

ちなみに、この割り当てをリセットするには、サーバーの
/var/db/bsdpd_clients
というファイルを削除してから、クライアントを再起動すれば良い、と、マニュアルに書いてある。

!!!NetBootSP0のエクスポート

通常はNetBootイメージはNFSでマウントするので、サーバーの共有の設定で、/Library/NetBoot/NetBootSP0
がきちんとエクスポートされているか、確認する。
デフォルトではWMのNFSエクスポート設定は、「書き出し先=ワールド」で、「読み出し専用」になっている。
特にそこをいじる必要はないはず。

一度、間違ってエクスポート設定を変えてしまい、クライアントが起動の途中で黒っぽい画面に突然変わって、
かなり焦った記憶がある。触らぬ何とかにタタリなし、だ。

!!!イメージ作成の手間

NetBootで楽にユーザー環境設定ができるのかと思いきや、実際にやってみると結構な手間がかかる。
#まず、外付けHDDから起動して、ソフトウェアアップデートしたり、ソフトのインストールやアップデートをするのに、それなりの時間。
#「ディスクイメージユーティリティ」でそれをブートイメージに変換する作業に、およそ1時間。
#自室のG4から計算機室のG5(NetBootサーバー)のNetBootSP0にAFPでマウントし、それをコピーするのに20分程度(現状ではイメージのサイズが13GB程度)。
#さらに、もう一台のサーバーにもそれをコピーするのに数分。
やり直したりしていると、あっという間に数時間は経ってしまう。
NetBootの宣伝文句には、「ブートイメージを選択するだけで、
授業内容などに応じて、簡単にユーザー環境を切り替えることができます」
みたいなことが書いてあるが、目的別に沢山のイメージを管理するような作業は、
正直言って、やりたくない。

!!!イメージのスリム化

何も考えないでブートイメージを作ると、サイズがどんどん肥大化するので、
クライアント側で不要なファイルはできるだけ削除しておきたい。例えば、
/Library/Printers/
の中身のほとんどは使われないはずなのに、かなりの「体積」を占めているので
実情に合わせて消してしまう。

MacPorts関係の作業ファイルも奇麗に消しておいたほうがよい。
sudo ports clean --all all
しておく。

!!HDDボリューム関係の操作

!!!!ボリュームを丸ごとコピー(クローン作成)
ディスクユーティテリティでも同じことをしているみたいだが、ログを残せるので、コマンドラインで操作したほうが便利
asr restore --source /Volume/XXXXX --target /Volumes/YYYYY --erase --noprompt --verbose

*やたらと長いファイル名のファイルが存在したりすると、コピーの途中でエラー止まってしまうことがあった。

資料:
*man bootpd
*http://www.bombich.com/mactips/netboot.html

!!ホームディレクトリの引っ越し

MacProを新調して、一番古いPowerMac G5と入れ替えた。
一部のユーザーのホームディレクトリも同時に引っ越したのだけれど、その方々から
「他の端末でログイン中なので・・・・」のような表示が出てログインできない、
という報告があった。

ユーザーホームの .mcxlcというファイルが怪しそうなので、削除してみる。