■ 初期状態レジストリを用いて
学研 PCing 誌の 1997 年 11 月号、12 月号に「太り続けるレジストリの怪」と称し、レジストリ肥大化による怪現象の体験例、肥大する理由、解決方法などが紹介された。その解決方法は、やはりレジストリを圧縮する方法だが、独自の方法で試みられており、ハードディスクの容量に余裕さえあれば、比較的簡単に取り組めるものであった。
この圧縮方法について、PCing 誌に記事参照の可否を伺ったところ、快くお許しいただけた。PCing 誌に厚く感謝の意を表したい。
なお、当サイトと PCing 誌との間には、いかなる営利的・非営利的関係もない。このページでは、単にレジストリ圧縮の方法をあまねく紹介したいと考えているだけであり、紹介によって当方に金銭的(あるいはそれに代わる)利益が発生することは全くないことを強調しておきたい。また、このページに記した内容についてのご意見・ご質問を PCing 誌には問い合わせないようお願いしたい。
■□■ 前文 ■□■
Win9x がマシンにインストールされた直後、SYSTEM.DAT のバックアップがルートディレクトリに作成(コピー)されている。まだアプリケーションなどによって「汚されていない」無垢なレジストリである。
これに、使用中の肥大レジストリから設定データを書き写すことが、本圧縮手法の概要である。場合によっては初期 SYSTEM.DAT のコピーがないこともあり、そのときは初期レジストリを作成することになる。
■□■ 起動ドライブのルートディレクトリに「SYSTEM.1ST」があり、ファイルサイズが1MB以下の場合 ■□■
1.WIN95を起動し、レジストリエディタを実行する。「マイコンピュータ」をクリックして選択し、「レジストリ」→「レジストリファイルの書き出し」を選び、適当なディレクトリへレジストリファイルとして書き出す。
書き出す前に、RegClean や CleanSweep などでレジストリ内の不要なキー・データを掃除しておくと良い。
2.レジストリエディタを終了し、WIN95をコマンドプロンプトモードで再起動する。
再起動時、「Windows 95 を起動しています...」が表示されたところでF8キーを押し、表示されたメニューから「コマンドプロンプトのみ」を選ぶ。
3.コマンドプロンプトから以下のコマンドを実行する。
cd \windows
attrib -s -r -h system.dat
attrib -s -r -h user.dat
copy system.dat system.bak
copy user.dat user.bak
cd \
attrib -s -r -h system.1st
copy system.1st \windows\system.dat
コピー時、上書きしてもよいか聞かれたら「y」を押す。
4.Ctrl+Alt+Del でマシンをリセットし、WIN95を再起動する。
起動中に警告が出ても、起動を続行する方向に進める。
5.デスクトップで表示が変なアイコンがあっても構わず、レジストリエディタを起動し、ステップ1で書き出したレジストリファイルを取り込む。
レジストリエディタの起動方法は、次のいずれかで行う。
1) スタートメニューの「ファイル名を指定して実行」から「regedit」と入力する
2) マイコンピュータをダブルクリックしてエクスプローラを起ち上げ windows ディレクトリから regedit.exe を探して実行する
3) タスクバーが表示されていないときは、デスクトップの何もないところをダブルクリックし、まずタスクリストを表示する。「ファイル」→「アプリケーションの実行」から「regedit」と入力する。
レジストリの取込方法は、次のいずれかで行う。
1) レジストリファイルを直接ダブルクリック
2) レジストリエディタの「レジストリ」→「レジストリファイルの取り込み」をクリックした後、取り込むレジストリファイルを指定する。
6.レジストリエディタを終了し、WIN95を再起動する。
7.マイコンピュータのプロパティウインドウから、ハードウエアの設定を見て、レジストリ圧縮前に正常に認識され動作していたデバイスが元に戻っているか確認する。
正しく設定されていなければ、ハードウエアウイザードをかけたり、ドライバを読み込みし直すなどして、復旧する。
8.マシンにインストールしてあるアプリケーションを1つ1つ実行して、正しく動作するか、設定は失われていないか確認する。
9.全てうまくいっていたら、しばらく様子を見た後、windows ディレクトリの system.bak、user.bak を削除する。もし、設定し直してもアプリケーションやハードウエアが正しく動かないようであれば、潔く system.bak、user.bak を system.dat、user.dat として書き戻す(コマンドプロンプトモード上で)。
■□■ 起動ドライブのルートディレクトリに「SYSTEM.1ST」がない場合 ■□■
■□■ 「SYSTEM.1ST」は存在するが、ファイルサイズが1MB以上ある場合 ■□■
SYSTEM.1ST に代わるものを作る行程以外は、上記のやり方とほとんど同じである。説明がくどくなるが、念のため一通りのやり方を説明する。
WIN95の2重インストール(再インストールではない)を行うので、ハードディスクに50MB程度の空き容量が必要である。
1.WIN95を起動し、レジストリエディタを実行する。「マイコンピュータ」をクリックして選択し、「レジストリ」→「レジストリファイルの書き出し」を選び、適当なディレクトリへレジストリファイルとして書き出す。
書き出す前に、RegClean や CleanSweep などでレジストリ内の不要なキー・データを掃除しておくと良い。
2.レジストリエディタを終了し、WIN95をコマンドプロンプトモードで再起動する。
再起動時、「Windows 95 を起動しています...」が表示されたところでF8キーを押し、表示されたメニューから「コマンドプロンプトのみ」を選ぶ。
3.コマンドプロンプトから以下のコマンドを実行する。
cd \windows
attrib -s -r -h system.dat
attrib -s -r -h user.dat
copy system.dat system.bak
copy user.dat user.bak
cd \
ren windows WINORG
レジストリをバックアップし、現在の windows ディレクトリを保護するため名前を変更している。
4.WIN95を、CD−ROMから新たにインストールする。
・インストールするディレクトリは、windows(使っていたWIN95のウインドウズディレクトリ名と同じ)にする。これが system.1st に代わるレジストリを作るコツである。既にWIN95が存在すると警告されたら、残す方向で進める。
・セットアップ方法は「コンパクト」にする。アクセサリは何もインストールしないでおく。
5.インストールが完了したら、WIN95をコマンドプロンプトモードで再起動する。
6.コマンドプロンプトから以下のコマンドを実行する。
cd \windows
attrib -s -r -h system.dat
attrib -s -r -h user.dat
copy system.dat \WINORG
copy user.dat \WINORG
cd \
ren windows WINNEW
ren WINORG windows
新しくできたレジストリを前の windows ディレクトリにコピーし、ディレクトリ名称も元に戻している。
7.Ctrl+Alt+Del でマシンをリセットし、WIN95を再起動する。
起動中に警告が出ても、起動を続行する方向に進める。
8.デスクトップで表示が変なアイコンがあっても構わず、レジストリエディタを起動し、ステップ1で書き出したレジストリファイルを取り込む。
レジストリエディタの起動方法は、次のいずれかで行う。
1) スタートメニューの「ファイル名を指定して実行」から「regedit」と入力する
2) マイコンピュータをダブルクリックしてエクスプローラを起ち上げ windows ディレクトリから regedit.exe を探して実行する
3) タスクバーが表示されていないときは、デスクトップの何もないところをダブルクリックし、まずタスクリストを表示する。「ファイル」→「アプリケーションの実行」から「regedit」と入力する。
レジストリの取込方法は、次のいずれかで行う。
1) レジストリファイルを直接ダブルクリック
2) レジストリエディタの「レジストリ」→「レジストリファイルの取り込み」をクリックした後、取り込むレジストリファイルを指定する。
9.レジストリエディタを終了し、WIN95を再起動する。
10.マイコンピュータのプロパティウインドウから、ハードウエアの設定を見て、レジストリ圧縮前に正常に認識され動作していたデバイスが元に戻っているか確認する。
正しく設定されていなければ、ハードウエアウイザードをかけたり、ドライバを読み込みし直すなどして、復旧する。
11.マシンにインストールしてあるアプリケーションを1つ1つ実行して、正しく動作するか、設定は失われていないか確認する。
12.全てうまくいっていたら、しばらく様子を見た後、windows ディレクトリの system.bak、user.bak および WINNEW ディレクトリを削除する。もし、設定し直してもアプリケーションやハードウエアが正しく動かないようであれば、潔く system.bak、user.bak を system.dat、user.dat として書き戻す(コマンドプロンプトモード上で)。
WIN95をインストールし直せばルートディレクトリに system.1st ができているはずである。もしできていなければ、ステップ7でルートディレクトリに system.dat を system.1st としてコピーしておくと、次からは先に書いた方法で実行できるだろう。
※ KK法の検討の際には大いに参考にさせて頂いた...