Copyright(c)AOTAKA 1995-2003 - www.aotaka.jp |
システム修復ディスク(ERD:Emergency Repair Disk)はWindowsが壊れた際に修復セットアップで使うディスクである。必須アイテムではないが、この仕組みが有ると無いとでは復旧できる可能性が段違いである。本稿ではERDの仕組みと実際の使用について解説する。
なおWindowsはインストール時にシステムフォルダーの場所を変えられるが、標準設定のままインストールした場合は %SystemRoot% → C:\WinNT と読み替えればよい。
WindowsNT4.0では最小のシステム構成でも165MB(PC/AT互換機の場合)のディスクを消費する。このシステム全てをバックアップすることは簡単でないが、CD-ROMに無い重要なファイルで、しかも壊れる危険性が高い物だけでもバックアップしておけば修復には役立つことも多い。
WindowsNT4.0のシステム修復ディスクには、表のように圧縮されたレジストリ ハイブ、セットアップ情報ファイル、そしてautoexec.nt、config.ntとsetup.logが保存されている。このファイルはRDISKのGUIモードで [修復情報の作成] を選ぶかか、コマンドプロンプトでRDISK /SまたはRDISK/S-を実行すると %SystemRoot%\repairフォルダー内にファイルが作成される。
レジストリーハイブは特殊なAPIを使用して読み込み、圧縮しながらrepairフォルダーに書き込むため、アプリケーションやサービスが動作中でも問題はないはずだが、できればアプリケーション類は終了させておいた方が良いだろう。
ファイル名 | 内容 | |
---|---|---|
(1) | default._ | HKEY_USERS\.DEFAULT (圧縮されたハイブファイル) *1 |
sam._ | HKEY_LOCAL_MACHINE\SAM (圧縮されたハイブファイル) *1 | |
security._ | HKEY_LOCAL_MACHINE\SECURITY (圧縮されたハイブファイル) *1 | |
software._ | HKEY_LOCAL_MACHINE\SOFTWARE (圧縮されたハイブファイル) | |
system._ | HKEY_LOCAL_MACHINE\SYSTEM (圧縮されたハイブファイル) | |
(2) | ntuser.da_ | %SystemRoot%\Profiles\Default User\Ntuser.datの圧縮ファイル |
(3) | autoexec.nt | %SystemRoot%\System32\autoexec.ntのコピー |
config.nt | %SystemRoot%\System32\config.ntのコピー | |
(4) | setup.log | WindowsNTのセットアップ情報(読取り専用&隠し&システム属性) *2 |
*1 … RDISK 実行時に/Sまたは/S-を付けた場合のみ更新される。 *2 … RDISKでは作成されない。(repairフォルダーから削除してしまうと再作成は不能) |
ファイル名 | 説明 |
---|---|
AppEvent.Evt | イベントログ(アプリケーション) |
default | HKEY_USERS\.DEFAULTのハイブファイル |
default.LOG | 〃 の変更差分 |
default.sav | テキストモードセットアップ終了時のHKEY_USERS\.DEFAULT |
SAM | HKEY_LOCAL_MACHINE\SAMのハイブファイル |
SAM.LOG | 〃 の変更差分 |
SecEvent.Evt | イベントログ(セキュリティー) |
SECURITY | HKEY_LOCAL_MACHINE\SECURITYのハイブファイル |
SECURITY.LOG | 〃 の変更差分 |
software | HKEY_LOCAL_MACHINE\SOFTWAREのハイブファイル |
software.LOG | 〃 の変更差分 |
software.sav | テキストモードセットアップ終了時のHKEY_LOCAL_MACHINE\SOFTWARE |
SysEvent.Evt | イベントログ(システム) |
system | HKEY_LOCAL_MACHINE\SYSTEMとHKEY_CURRENT_CONFIGのハイブファイル |
system.LOG | 〃 の変更差分 |
SYSTEM.ALT | HKEY_LOCAL_MACHINE\SYSTEMハイブのバックアップコピー |
system.sav | テキストモードセットアップ終了時のHKEY_LOCAL_MACHINE\SYSTEM と HKEY_CURRENT_CONFIG |
userdiff | 古いバージョンのWindowsNTで作られたユーザープロファイルをアップグレードする際に使用される |
[Paths] TargetDirectory = "\WINNT" TargetDevice = "\Device\Harddisk0\partition2" SystemPartitionDirectory = "\" SystemPartition = "\Device\Harddisk0\partition1" |
[Paths]セクション WindowsNTのインストール先が記録されている。この情報からboot.iniを再作成? |
[Signature] Version = "WinNt4.0" |
[Signature]セクション WindowsNTのバージョン情報が書かれている。 |
[Files.SystemPartition] ntldr = "ntldr","2a80e" bootfont.bin = "bootfont.bin","2b4ba" NTDETECT.COM = "NTDETECT.COM","b69e" |
[Files.SystemPartition]セクション システムパーティションにあるNTLDRなどのCRC情報(ファイルに相違が無いかを確認するための情報)が記録されている。 |
[Files.WinNt] \WINNT\Help\31users.hlp = "31users.hlp","1fa66" \WINNT\Help\acc_dis.cnt = "acc_dis.cnt","83a" \WINNT\Help\acc_dis.hlp = "acc_dis.hlp","804a" \WINNT\inf\accessor.inf = "accessor.inf","b6b2" \WINNT\system32\acledit.dll = "acledit.dll","255f5" …以下略 |
[Files.WinNt]セクション %SystemRoot%下のファイルのCRC情報が記録されている。 |
なおsoftware._はインストールされたアプリケーションによっては巨大になるため、ERDにコピーされていないケースも多いが、このような場合にはハードディスクに保存されたsoftware._を使っている。なお、setup.log(隠し&システム属性)と共に新しいフロッピーディスクに手動でコピーするとフロッピーディスクでの利用が可能である。
(もちろん2HDの場合は合計で1.38MBを超えればコピーできない。)
repairフォルダーは、WindowsNTのGUIモードセットアップ最中に「構成を保存しています」という進行インジケーターが表示された際に作成が行われている。よって、repairフォルダーはユーザーが勝手に削除してしまわない限りは存在することになる。
repairフォルダーを削除してしまうと、setup.logだけは再生成ができなくなってしまい、ERDをERDとして認識してくれなくなる。この場合はアップグレードインストールを行い、setup.logを再度作成しなければならない。
次の場合にERDを適用することができる。ただし修復不能な壊れ方や、物理的にディスク装置が壊れた場合などは復旧できないので過信は禁物だ。
ERDはWindowsNT4.0インストール中に作成することも可能だが、インストール後の各種設定を反映させるためには、全てのソフトをインストールした後に取らなければ意味が無い。そこで手動による作成が必要となる。
修復ディスクユーティリティー(RDISK.EXE)はGUIアプリケーションなのでエクスプローラーからダブルクリックすればよいと思っているユーザーも多いかと思うが、それは間違いである。何もオプションを付けずに起動して [修復情報の更新] と [修復ディスクの作成] を選ぶだけでOKと誤解しがちだが、ここが大きな落とし穴なのである。
もちろん [修復ディスクの作成] しか押さなければ古い情報のままであることが画面を見れば想像できるが、なんと、[修復情報の更新] をクリックしても全てが新しくなるわけではない(default._、sam._、security._の3つは更新されない)のである。これではイザという時には役に立たない可能性もある。
[修復情報の更新] | 修復情報の更新を行った後でERDを作成するかを聞かれ、[はい] を選べばERDが作成される。 (ただし default._ と sam._ と security._ の3つは更新されない) ![]() |
[修復ディスクの作成] | 情報の更新は行わずにERDを作成する。 |
そこで、通常はコマンドプロンプトで「/S」オプションを選択することになる。コマンドプロンプト画面([スタート]-[ファイル名を指定して実行] でも良い)で「rdisk /s」と入力すると、すぐさま構成の保存が開始される。
しばらく待っていると「システム修復ディスクを作成しますか?」と聞かれる。ここで [はい] を選択すると、そのままERDの作成に移行する。
新しいフロッピーディスク(フォーマットの必要無し)を挿入し [OK] をクリック。
“ディスクのフォーマット”と“構成ファイルのコピー”が行われるので、しばらく待つ。
ERDに修復情報をコピーし終わると、次の警告が表示される。
ERDは多くのレジストリー情報を含むため、このディスクを解析すれば、インストールされたソフトの設定からパスワードまでありとあらゆる情報にアクセスすることが可能となり、セキュリティー上は非常に問題があることに注意せねばならない。
また修復情報が置かれるrepairフォルダーは標準設定では「Everyone 読み取り」属性になっており、これはNTFS上にシステムフォルダーがあったとしても全てのユーザーが修復情報に自由に読み取りできてしまうことを意味する。幸い、管理者権限のみがアクセスできるように変更しても問題無いので、「Administrator
フルアクセス」にしても構わない。
(ただしこの場合は異常時に修復情報をハードディスクから得られないことを意味するので、software._も含めた全てのレジストリーがERDに含まれていることを確認すべきである。)
「rdisk /s-」とすると修復情報の更新のみが行われる。(ERDの作成は行われない。)このモードはユーザーへの問い合わせも無いので、Scheduleサービス(ATコマンド)に登録しておけば指定した日時に自動的に修復情報を更新させることも可能である。
ファイルが存在していれば良いファイル (もちろんファイルサイズが0とかでは困るが) |
AUTOEXEC.NT , CONFIG.NT SETUP.LOG (隠し属性) |
ファイルの更新時刻が今日であれば良い (RDISKに/sを付けない場合は古い日付になるが仕方が無い) |
DEFAULT._ , SAM._ , SECURITY._ |
ファイルの更新時刻が今日であれば良い | NTUSER.DA_ , SOFTWARE._ , SYSTEM._ |