PC-9821における Windows2000起動ドライブの丸ごとコピー/リストア
Rev. 1.06 2003-5-10訂正
Copyright(C) 2001-2003 まりも
PC-9821で Windows2000の起動ドライブ(FATに限る)を、他のハードディスクあるいは別パーティションにコピーするための方法を紹介します。NTFSの場合は MS-DOSでアクセスできないので、この方法は使えませんが、DISK BIOSレベルで丸ごとコピーをとるソフトがあれば可能ですし、BOOT.INIの編集以降のことは参考になると思います。
■0. お読みになるにあたっての諸注意
★FAT以外の場合や、ディスク装置丸ごとコピーする場合は、本稿を読むより、このソフト(HDDUP98)を用いるとよい(PC-9821専用)。
★以下の操作でのWindows2000へのログインは、Administrator権限で行なうこと。またAdministratorはあらゆる操作ができる権限が与えられていること。
★以下の手順では、元のWindows2000ドライブはC:であるとして話を進めるが、他のドライブ名であればそれに読み替えること。
★元と異なるドライブレターへの内容変更は基本的にはできないので注意(Win9xと同様)。インストール直後には可能との情報もありますが、レジストリを見ると、一部に置き換わっていない箇所があるので、やめておいたほうが無難です。
関連情報:任意のドライブレターでWindows2000をインストールするには■1. コピー前にやっておくこと
起動ドライブのコピーは、現在起動できるマシンの上で行なう必要がある。ハードディスクを他のマシン環境に繋いでからコピーしても、Windows2000というのは、マシン環境が変わると起動できないことが殆どだからである。ただし、同一SCSIホストアダプタを使用する限りでは、SCSIアダプタのあるPCIスロットを移動するくらいは問題ないようだ。
- (1)ぺージングファイル(pagefile.sys)は Windows2000起動ドライブに作成するようにしておく(必須ではないが、話の都合上なので、起動ドライブ以外の場所にページングファイルを作成している場合は、適当に読み替えること)。
- (2)新たに使用したいSCSIカードがあれば空きPCIスロットに装着して、そのドライバをインストールしておくこと。インストール後に再起動し、有効となっているのを確認しておくこと。
- (3)新しいハードディスクを、SCSI IDをきちんと設定した上で、今後使用するSCSIアダプタに接続する。
- (4)新しいハードディスクに、Windows2000を入れる予定の領域を FDISKで確保する。確保済みならそれでもよい。
- (5)Windows2000の領域を FORMATでフォーマットする。ただしFAT16の場合、コピーしたい(コピー先の)領域を、拙作フォーマッタFORMATX(version 1.15かそれ以降に限る)でフォーマットする必要がある(その際は Windows2000用フォーマットオプションにyesで答えておく)。Windows9xやMS-DOS 6.20のFORMATコマンドでフォーマットした領域では、Windows2000をコピーで格納することができないことがある(ブートセクタのある「予約セクタ数」が異なることが理由)。いっぽうFAT32の場合はとくに制限はない。
■2. DRVCPYでコピーする
次のいずれかの方法を使い、「完全なコピー」をとる。Windows2000からのコピーでは完全なコピーはとれない。ページングファイルも含めてきちんとコピーされている必要がある。ファイルのFAT上での物理的位置が変わることは問題はない。★注意 コピー元のハードディスクは、コピーが済んでも取り外してはいけない。最後の段階まで接続しておくこと。(a) DRVCPY(version 2.43かそれ以降に限る) で丸ごとコピー。 (b) クラスタサイズが異なる場合は、Windows9xや別起動のWindows2000,NTで完全xcopyして、ブートセクタだけを MS-DOS上で DRVCPY /B オプション指定によりコピーする。 (c) その他、Long Filenameと、予約域を含むブートセクタの完全コピーが取れるツール類を使用する。
■3. BOOT.INI編集
コピー先のドライブのSCSI IDや パーティション番号に合わせて、コピー先のBOOT.INIファイルを編集する。間違ってコピー元(オリジナル)のドライブのを編集しないように。編集要領は下記を参照のこと。なお、このファイルはシステム隠し属性となっていて、通常は表示されない。属性を通常属性に変更するか、隠しファイルも見えるファイラーを使って探すこと。編集はテキストエディタを用いること。★ BOOT.INIの文法意味(PC-9821の場合)
固定ドライブの場合、BOOT.INIには、例えば次のように書かれているはずである。
default= **********
[operating system]
********** = "Microsoft Windows 2000 Professional" /fastdetectこの、********** の部分は、PC-9821では通常同一内容である(デュアルブートではないため)。
例えば次のように記述されている。★ SCSIの場合
multi(0)scsi(0)disk(id)rdisk(0)partition(n)\WINNT★ 内蔵IDEおよびUIDEの場合
multi(0)disk(0)rdisk(p)partition(n)\WINNTscsi(0)というのは、SCSIアダプタ番号で、2枚挿ししない限りは (0)となっているはずである。esdi_506相当な内蔵IDEドライブの場合は、このscsi(n)の部分がない。 disk(id)というのは SCSI ID番号に対応したもので、scsi(0)ということは ID=0である。別のIDのドライブにコピーしたときはこの数値を変更する。内蔵IDEの場合はここは常に0で、次のrdisk(p)の番号が、接続されているIDEポート番号と対応する。プライマリマスタならrdisk(0)、セカンダリマスタならrdisk(2)である。 partition(1)というのはその通りパーティション番号であるが、先頭を1から数える(0からではない)。MS-DOS系OSは4パーティションまでしか起動可能でないが、Windows2000では5番目以降に存在していても、activeかつboot可能属性になっていれば起動できる。
なお、PC/AT版とはboot.iniの文法意味が異なっているようである。PC/ATの場合は、SCSIのときに、先頭のmulti()が無い場合があるとのこと(通常のデバイス番号80hの場合はmulti(0)が存在する)。またパーティション番号は、基本区画のみをカウントする。
■4. まず起動
BOOT.INIが正しく編集できたらば、その領域からブート可能になる。ただしあくまでもブート可能であってシステムの完全起動が保証されたわけではない。Windowsロゴまで起動が継続しない場合は、BOOT.INIの不正である。BOOT.INIの編集をしない場合、元のドライブから起動しようとしてしまい、成功したかに見えてしまうので注意。とにかく新しいコピー先領域から起動できたらOKである。接続SCSIインターフェイスも変更となる場合は要注意。1.の準備段階でドライバをインストールして有効にしておかないと、起動できない。ドライバが有効でない場合、「ブートデバイスにアクセスできない」という意味のSTOPエラーが出てしまう。
■5. ページングファイルの作成先の一時変更
新しくコピーした領域から起動すると、ドライブレターは以前とは別の文字になっている。以前がC:だったとすると、それ以降の未使用だった適当な文字が割り振られている。それを例えばX:として話を進める。まずページングファイル pagefile.sysだが、これは旧ドライブ(C:など)に作成されたままである。そこで一旦X:に作成するように変更する。そして再起動ができればOK。★ Pagefileの作成先の変更を行なう方法
[マイコンピュータ]右クリック、[プロパティ]の[詳細]タブを開き、[パフォーマンス オプション]ボタンをクリックし、[仮想メモリ]のところの[変更]ボタンを押すと、変更メニューが現われるので、変更したいドライブにカーソルを合わせてからサイズを指定する。解除するときはサイズ欄を空白にして[設定]ボタンを押す。■6. ドライブレターのスワップ(要注意)
新ドライブは、X:となっているわけだが、いくつかの基本アプリやシステムアプリは、旧ドライブレター(C:など)で動くと仮定されている。そのまま使用すると、必要なときは旧ドライブのものが動作することになり、旧ドライブを切り離してしまうと起動できない状態にある。新ドライブを 元と同じ C:などに変更する必要がある。これにはレジストリの操作が必要である。レジストリを操作するには、レジストリエディタを起動する。スタートメニューの「ファイル名を指定して実行」のコマンドラインから "regedit" と打つとレジストリエディタが起動する。
\HKEY_LocalMachin\System\MountedDevices という「キー」を開くと、
\Dos\Device\A:というような「名前」が並んでいる。これがドライブレターの素情報である。ドライブレターの変更には、レジストリの「名前の変更」を使う。例えば
…
\Dos\Device\C:
\Dos\Device\D:
…
\Dos\Device\X:
\Dos\Device\Y:
\Dos\Device\X: のところを \Dos\Device\C: にすればよい。しかし、既にC:が存在しているので、重複と判断されエラーになる。そこで、一度に変更するのではなく、空いているドライブ名例えばZ:を使用して、3手で変更を行なう。すなわち、
C:→Z:
X:→C:
Z:→X:
の順に変更する。最後の Z:→X:は行なう必要がないように見えるが、念のための措置である(pagefileのドライブ置き換えに失敗しているときなどはこうしておかないと起動できなくなる)。レジストリ編集を終えたら、すぐに再起動すること。
■7. ページングファイルの作成先を再度変更
pagefile.sysは、旧ドライブ名で作成するように変更したので、コピー元(いまはX:となっている)に置かれている。これを、新ドライブ(C:など)に変更しておく必要がある。ドライブX:のページングファイルのサイズのところを空欄にして[設定]ボタンを押した後、新しいドライブ(C:など)のところに適当なサイズを指定して[設定]ボタンを押し、[OK]で終了する。そして再起動を行なう。以上で、新ドライブのみで単独で起動できるようになっているはずである。
■8. 旧ドライブの取り外し
ここまで来れば旧ドライブを取り外したり、あるいは領域を削除してもよい。新しいドライブから起動できるはずである。
■9. お約束
この内容は、私が独自に実験を繰り返して判った事柄を書き留めたものです。一応の検証は行なってあるものの、この方法が正しいという保証はまったくありません。また、この手順に従ったかどうかに関わらず、万一Windows2000が起動できなくなっても、私は一切責任を負いません。 万一手順を誤って、「Windows2000に永久にログインできなくなってしまった」という場合は、こちらを試して下さい。