NetBoot利用時のトラブル

コンピュータ理工学部のプログラミング演習や学生実験では,NetBootにて各自のMacBookを起動してCSE環境を利用する事を前提とした場合が多い.

NetBootにてCSE環境を利用している際にアプリケーションなどシステムの動作が何か普通でない異常な状態になってしまう場合には,以下の方針で対応してみよう.

NetBootにおけるネットワークの重要性

NetBootの仕組み

NetBootでは, MacOS Xオペレーティングシステムが高速ネットワークにてブートサーバ装置からダウンロードされながら各自のMacBook上で稼働する.そのため,電源投入からシャットダウン完了までの間,完全なネットワーク接続(有線LAN)が出来ている必要がある.

そのため,トラブルに対応するにあたっては,NetBoot向けに設置された情報コンセントに確実にLANケーブルで接続されている事を確認しよう.コネクタが緩んだりしていないだろうか? また,用いるLANケーブルはカテゴリー6以上の高品質なケーブルを用いなければならない.変な安物ケーブルを使ってしまってないだろうか?

NetBootは,ネットワーク性能を極限まで要求する.その重要性を「多分,大丈夫だろう」などと安易に判断してはならない.

NetBootとオペレーティングシステムの関係

また,NetBootではOSのインストールされたシステムディスククはブートサーバ上のイメージファイルとして用意されており,起動後に発生する全てのディスク書き込み処理はシャットダウン・再起動により全て破棄される.つまり,起動時には「必ず同じシステムディスク状態」で起動するので,ネットワークが正常であるかぎり何かアプリケーションの不具合が自分に起きていて他人には起きてない場合,その原因は,

という2つの何れかに(ほぼ)限定される.

トラブル対応にあたっては,このような特性を念頭に段階を踏んで考えよう.

トラブル対応への第一ステップ

アプリケーションの再起動

NetBoot利用の場合でも,アプリケーションの不具合対応はローカルブートの場合とさほど変わりない.

アプリケーションの動作が手に負えないくらいに異常と思われる時には,一旦,アプリケーションを終了(或いは,強制終了)して,再度,起動して確認してみよう.

システムの再起動

NetBootの特性からして,その起動時のOSイメージは,管理者(今のところ大本の一人だけ.....)によって最適に調整された状態になっている.そのため,OSやアプリケーションの不具合(バグ)によって,システムが異常動作してしまっているなら,再起動すれば,必ず他のユーザが利用しているOS状態と同じ状態で起動する.

多くの場合,再起動することによりシステムの異常動作は解消するはずである.

ハードウェア及びネットワークのチェック

再起動しても問題が解消されない場合,利用しているMacBookが故障を抱えている可能性を疑うことになる.

恐らく,この段階では教員・TAにヘルプを申し出ているだろうから,授業時には用意されている予備機を借用して,それをNetBootしてログインしてみよう.それで問題が解消されるなら,ハードウェアの故障の可能性が極めて高い.

また,可能性は低いがネットワーク配線やスイッチ装置に故障が起きている可能性もある.予備機のNetBootでも問題が解消しないなら,接続しているLANケーブルの交換や接続している情報コンセントを違う場所で試してみるなどしてみよう.

個人環境設定ファイル

再起動や予備MacBookにて試してみても問題が解消しないなら,各個人の環境設定情報に異常があることが推測される.

Mac OS Xのアプリケーションが動作する時,プレファレンス(Preference)と呼ばれる設定ファイル(plist形式ファイル)のうち,各ユーザ毎の個人設定がホームディレクトリ配下にに保存され,アプリケーションの動作を制御している.このプレファレンスファイルが何らかの理由で壊れてしまって,アプリケーションが異常動作する場合がある.

その場合,その設定ファイルを一時的に別のフォルダ(例えばホームフォルダやそのサブフォルダなど)に退避させる,或いは,設定ファイルを削除してからアプリケーションを起動することで,アプリケーションの挙動が初期状態へ戻る事が多い.

以下では,ホームフォルダ(ホームディレクトリ)を˜記号で表す.また,「ライブラリ」フォルダはFinder上では翻訳表示され,ターミナル上のlsコマンドでは英語表示されることを忘れてはいけない.

˜/ライブラリ/Preferences

一般的には,このフォルダに拡張子が.plistになっているファイルが多数存在する.ファイル名はインターネットのドメイン名を逆順にした形式になっており,その名前にアプリケーションの名前が付いている場合が多い.例えば,WebブラウザSafariに関する設定ファイルはcom.apple.Safari.plistとなっているので,不具合を起こしているアプリケーションと関連しているファイルはファイル名を手がかりにして比較的簡単に見つかる.一般的には,Carbonアプリ,及び,Cocoaアプリと呼ばれるタイプのMac OS X向けアプリケーションがこのフォルダに設定ファイルを生成する.

ここで,該当アプリケーションの設定ファイルを探し,一時退避・削除してからアプリケーションを起動してみる.アプリケーションが起動するとデフォルト(標準)設定が記録されたplist形式ファイルが直ぐに生成されているはずである.これで,アプリケーションの挙動は標準状態で動作するはずなので,初めてアプリケーションを起動した状態で使えるはずである.

また,場合によっては,このフォルダ内にある ByHost フォルダに設定ファイルが配置される事もあるので,こちらも確認する必要がある.

˜/ライブラリ/Application Support

アプリケーション固有のデータやプラグインなどは,一般的にこのフォルダ中にサブフォルダが作成されて配置される.多くの場合,アプリケーション名と同じ名前のフォルダ(例えばFirefoxブラウザではFirefoxというフォルダが出来る)になっている.

設定ファイルを削除して試す場合,こちらのフォルダ内もチェックして,同様にアプリケーションに関連したフォルダを削除して試す価値はある.

˜(ホームディレクトリ)

元々,UNIX向けに開発されたソフトウェアでは,伝統的にホームディレクトリ直下にピリオド(.)で始まる名前のファイルやディレクトリを作成して,そこにアプリケーション設定を記録する場合が多い.

ピリオドで始まる名前のファイルはFinder上では不可視(表示されない)なので,ターミナルを開いて以下のコマンドを実行するとファイルの存在が確認出来る.

ls -a

尚,これらのUNIX設定ファイルを削除するとシステムが正常に利用できなくなる場合もある.トラブル解決を狙って試す場合には,いきなり削除せず一時的に他の名前に変更してから試すなど,元のファイルを残して必要があれば直ぐに元へ戻せるようにしながら試すのが賢いだろう.

ちょっと注意が必要な設定ファイル

Mac OS XのCarbonアプリにおける文字コードに関する挙動を決定する重要なファイルとして ˜/.CFTextEncoding というファイルがホームディレクトリに置かれている.このファイルを削除したり内容を書き換えたりすると,幾つかのアプリケーションでの文字コードがおかしくなるので要注意である.具体的にはメニューが文字化けなどする.そのようなアプリケーションの代表がCarbon Emacsである.

ちなみに,Mac OS X Leopardの場合,このファイルの中身は "1:14" という4文字だが,これはシステムで用いる文字コードが"UTF-8の日本語"という事を表しているようだ.非常に稀にこのファイルが何故か壊れていたり変更されていたりする事があるので,Carbon Emacsの文字コードがおかしい場合,このファイルの中身をチェックしてみると良いだろう.

最後の手段

設定ファイルを一つ二つ削除してみても問題が解消しない場合は,複数のシステム機能が関連して不具合を起こしている事が考えられる.その場合,その原因を特定するのは,かなり面倒なので,以下の手順で,各自の個人設定状態をCSE環境標準状態にリセットして,初めてCSE環境にログインした時の状態,或いは,年度初めなどに個人環境が初期化された時の状態へ戻すのが最も簡単だろう.

個人環境の再初期化

ターミナル,或いは,X11を起動してUNIXコマンドが実行できるウィンドウを開こう.以下の位置にシステム環境設定を初期化する目印ファイルが置かれている.

˜/Library/Preferences/.version

このファイルをUNIXコマンドで削除して,一旦,ログアウトしてから,再度,ログインしてみよう.デスクトップ状態が初期化されてCSE環境標準状態へ戻る.

個人の作成しているレポートやプログラムのソースコードなどは全て保存されているから心配する事はない.デスクトップの背景(壁紙)などの設定も無くなってしまうが,これはやむを得ないので,もう一度,好みの状態に設定して欲しい.

尚,ターミナルが正常に動作しない状態になっている場合,X-Window Systemに付属のxtermを使ってみよう.xtermを起動するには,アプリケーション -> ユーティリティ -> X11.appと開いてX-Window Systemを起動する.恐らく,xtermという名前のウィンドウが開き,そこでシェルが使えるはずなので,このウィンドウでコマンド操作すれば良い.

また,X-Window Systemも起動できない場合,誰か他にターミナルが正常に動作している人に協力してもらって,以下の手順で処置する.

1.一旦,ログアウトする.

2.代わりに協力してもらう人にログインしてもらう.又は,その協力してくれる人が使っているNetBoot環境のデスクトップ画面を少しの間,拝借させてもらう.

3.ターミナルを起動してもらって,そのターミナルを使わせてもらう.

4. 借用したターミナル上でsuコマンドを使って,自分自身のアカウントに「化ける」.suコマンドとは,ログインし直すことなく,他のユーザIDの権限でコマンドやシェルを起動するUNIXコマンドです.

su 自分のユーザID

5. suコマンドがパスワードを尋ねてくるので,自分のパスワードを入力する.

6.パスワードが間違ってなければ,自分のユーザID権限で動作するシェルが使えるようになる.

7.自分のホームディレクトリ配下に移動(cdコマンド)して,上記の「目印ファイル」を確認して(ls -aコマンド),これを削除する.

8.削除処置が出来たら,exitコマンドをタイプしてsuコマンドから抜ける.さらに拝借していたターミナルも閉じる.

9.もう一度ログインし直す.

Good Luck!

元のページへ戻る