doc drawn up: 2001-11-24 .. 2007-10-22

Windows チューンナップ

Windows をチューンナップさせるためのカスタマイズ方法を書き留めています。あくまでも自分自身が行ったカスタマイズに関するメモ程度の内容です。もっとしっかりした内容の情報が必要でしたら、専門的なサイト(例えば、Windows.FAQ)をご自分で検索して見つけることをお勧めします。

Win2000 (SP4) チューンナップ

101-US⇔106-JP キーボードの入れ替え

Windows.FAQ によると

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters]

"LayerDriver JPN"kbd101.dll にするか kbd106.dll にするかで設定できるそうなので、レジストリパッチ【無保証】を用意。

肥大化した IE ブックマークの整理方法

IE のブックーマークが知らず知らずのうちに溜まってしまい、肥大化したブックマークの整理縮少が積年の懸案事項だった。

当初は、IE のお気に入りメニュー(「お気に入りの整理」を含む)の中から、ブックマークを選んでリンクがまだ有効であることを検証したり、削除したり、並べ替えたり、フォルダに移動したり、というようなことを行っていた。これがなかなか面倒なのである。移動するブックマークをドラッグしながら、枝分かれするフォルダの中に移動していって、そこでドロップするという行為が、非常にやりづらい作業で、なかなか効率が上がらない。その上、僕の環境特有の問題かも知れないが、ブックマークのフォルダ移動を行ったりすると、IE が頻繁にエラーを発生して再起動してしまう。

そこで、IE のお気に入りメニューの中で整理作業を行うのではなく、ブックマークファイルの存在するフォルダ(C:\Documents and Settings\[USER NAME]\Favorites)を開いて直接作業することにした。すると、ストレスなく非常に快適に作業が進められることに気が付いた。

ブックマークの内容を確認するには、単にブックマークファイルをダブルクリックしてブックマークされた Web ページを閲覧すればいいだけ。削除するのもそのまま選択してブックマークファイルを削除すればいいだけだし、ブックマークの名称の変更、フォルダの作成、移動も、通常のファイルに対する作業と同じに行えるので、非常に楽。これまで滞っていた作業が、嘘のようにスムーズに進められ、肥大化したブックマークの整理縮少が一気に進んだ。

お気に入りメニューのような枝分かれする一次元(線形)的な構造として表現されたものよりも、フォルダのような階層による二次元(平面)的な集合として表現されたものの方が、ユーザインタフェースとして人間の感覚に適しているのだろう。

ちなみに、ブックマークのフォルダ移動を行うと、エクスプローラがエラーを発生して再起動しやすいという症状は同じなので、クィック起動メニューにブックマークファイルの存在するフォルダへのショートカットを作成しておいて、再度フォルダを開くための作業が発生するのを回避している。

Win98 (SE) チューンナップ

Win98 (SE) でのハードディスクドライブのバックアップ

Windows から普通に C:\windows ディレクトリを含む C ドライブの中身を丸ごとバックアップしようとすると、WIN386.SWP(スワップメモリのファイルであり、このファイルに関してはバックアップする必要はない)のような OS が使用中のファイルのコピーに失敗して途中でコピー作業が終ってしまう。この場合、xcopy コマンドを使ってコピーすれば、対処できる。普通に xcopy しても、同じように使用中のファイルでコピー作業が終ってしまうが、/c オプションを付けることによって、作業の終了を回避することができる。

ドライブの丸ごとバックアップにおいて必要となる xcopy のコマンドオプションは、空のディレクトリも含めてサブディレクトリもすべてコピーするために /e は必須。隠し属性およびシステム属性のファイルもすべてコピーするために /h は必須。ファイル属性も元のままそっくりコピーするために /k は必須。ディレクトリの場所を示すパス指定に基づくコピーであって、複数ファイルを示すワイルドカード指定に基づくコピーではないので、/i オプションも必要となる。

また、コピー先のドライブに同じディレクトリが存在しなければ問題はないが、たまたま同じディレクトリがあった場合は、同じ場所にあるファイルに関しては上書きコピーの必要性が生じてくるから、その場合は /r オプションが必要となってくる。また、上書き確認プロンプトが表示されるとその都度コピー作業が中断されて大変なことになるので、/y オプションもついでに指定しておくのが賢明(つまり反対のオプションである /-y は逆に指定するべきではない)。同じ理由で /p オプションは指定していたら作業がはかどらずに時間がかかるだけなので、不要と言うよりは不可。

/a や /m については、アーカイブ属性ファイルのバックアップに関するものなので不可。/d も特定の新しく更新されたファイルの同期をとるためのバックアップに関するものなので不可。/u もコピー先に既に存在するファイルのみの更新に関するものなので不可。/n は古いDOSとの互換性のために長いファイル名をわざわざ短いファイル名でコピー先にバックアップするためのオプションなので不可。/e を指定すれば、/s /e の両方を指定しても同じことなので、/s は特に指定する必要はない(もちろん明示的に指定しても構わない)。/w は指定してもしなくても好みの問題。/q と /f と /l は単に進行状況の表示をする・しないの問題なので、これも好みの問題だが、進行状況がだいたい把握できるように /f を指定する人が普通だろう。ただし、WIN386.SWP のように使用中のためにコピーできずにスキップされたファイルの存在を把握したい場合には、/f ではなくて /q オプションを指定する。そうすれば、通常のメッセージでエラーメッセージが流されてしまったりするようなことがなくて済む(だが、通常はそういったスキップされるファイルは、WIN386.SWP のみだろう)。

/t はディレクトリ・ツリーだけを先に一旦コピーして構築しておいてから、次にファイルだけをコピーするような二段階方式のやり方を使いたいときに、一段階目のコマンドで使ってもいいオプション。/e /h /k /i と併用することが必須。また /q も役立つ。

以上を踏まえると、具体的なコマンド例は(コピー元が C ドライブ、コピー先が D ドライブとする。またここでドライブ指定に¥を付けてルートディレクトリであることを明示する。そうしないとカレントディレクトリがルートディレクトリでない場合に、予想外の結果を招くことになる):

xcopy C:¥ D:¥ /c /e/h/k/i /r/y /q

また、上のコマンドに先立ってディレクトリ・ツリーのみのコピーを行う場合は:

xcopy C:¥ D:¥ /t /e/h/k/i /q

を使えばいいということになる。

参考:
Windowsの起動ドライブをコピーするには」(まりもさん)
xcopy のコマンドオプション」(畑)

C ドライブの移転

上述「Win98(SE) でのハードディスクドライブのバックアップ」によって、古い C ドライブを新しい C ドライブに移行しようとするとき、上述のやり方でファイルの構成はそっくりコピーできるのだが、このままでは新しい C ドライブとして Windows を起動できるものとはならない。

新しい C ドライブは、「基本パーティション」として領域確保されており、その上「アクティブ・フラグ」がその基本パーティションに立っていること、さらにパーティションのブートセクタに「ブートコード」が書き込まれていることとハードディスクの MBR に「マスター・ブートローダ」が書き込まれていること、これらが要件となる。

新しく増設したばかりの空のハードディスクであれば、領域確保とフォーマットを行う際に、以上の要件をふまえて行えばいい。問題は、元々 D ドライブなどとして使用していてデータファイルなどがすでに詰った物理的な別のドライブに、上述のやり方で C ドライブの中身をすべてコピーして統合し、(古い C ドライブの使用を廃止して D ドライブを)新たに起動用 C ドライブとして使おうと思っているような場合である。この場合、D ドライブの領域確保・フォーマットをして D ドライブに元から入っていたファイルを消してしまうわけにはいかないので、簡単ではない。

市販されているパーティション操作ツールを使えば、それほど難しくはないのかもしれないが、Windows 標準のツールや、フリーウェアなどでやろうとすると、ちょっとややこしい。まず、D ドライブが拡張パーティションの中の論理ドライブの場合は、諦めて他の方法を探した方がいいかもしれない(少なくとも筆者には、どうやればいいのかわからない)。もし、D ドライブが基本パーティションなのであれば、「アクティブ・フラグ」の問題と、「ブートコード」および「マスター・ブートローダ」の問題さえクリアすれば何とかなる。Windows 標準の fdisk を使って、どの基本パーティションに「アクティブ・フラグ」を立てるかという操作をする。ここで fdisk では「アクティブ・フラグ」の操作は、第 1 番目のハードディスクにしか行えない仕様になっている点に注意。つまり物理的に 2 台以上のハードディスクを接続している場合、1 台目を取り外して、2 台目を第 1 番目のハードディスクとして認識されるように、接続をつなぎ変えてから fdisk を使用する必要が生じる(通常は、プライマリ&マスタとして接続すればそのハードディスクが第 1 番目として認識されるはずである)。次に、ブートセクタへの「ブートコード」の書き込みだが、これは単に sys コマンドを用いればいい。最後に「マスター・ブートローダ」のMBRへの書き込みは、fdisk /mbr コマンドによって行う。

以上のようにすれば、M/B の BIOS ROM に書かれた BIOS が、起動後まず始めにハードディスクの MBR を読み込みに行く。MBR に書き込まれている「マスター・ブートローダ」によって、4 つの基本パーティションのうちのどのパーティションを起動パーティションと見なせばいいのかを、「アクティブ・フラグ」を目印に見つける。そして「アクティブ・フラグ」の立ったパーティションのブートセクタに書かれている「ブートコード」を読み込み、起動することによって、そのブートコードが Windows OS の起動プロセスを開始するという仕組みになっているのである。

これらの下準備を適切に施した上で、実際に古い C ドライブを取り外し、元々の D ドライブ(ジャンパ・ピン設定も適切に変更し)とコネクタを繋ぎ変え、BIOS 設定も適切に変更して新たな C ドライブとして認識させた上で、マシンを起動することになる。

参考:「ブートとハードディスクのすべて」(のぶさん)

256 フォーマット済み FD の再フォーマット

先日(2000 年 10 月頃の話)、仕事で、FD でファイルを配らなければならない事態が発生した。自分が判断すれば、はじめから FD などは使わないやり方を選択するのだが、仕事でやれと言われたので、仕方がない。二、三枚なら何とかなるが、まとまった枚数の FD など持っているはずもないので、いくらなんでも FD ごときを買いに行くために秋葉原にまで足を運ぶわけにもいかない。近所の文房具屋で見つけて、買ってきた。

ところが、買うときには大丈夫だと思って買ったのだが、それは JIS 256 フォーマットとかいう、聞いたこともない形式でプレフォーマットされている。普通、プレフォーマットと言えば、MS-DOS 形式か、Macintosh 形式だと思っていたのだが、256 なるマイナーな形式でわざわざプレフォーマットをするもんだろうか? ならば、未フォーマットの方がマシだと思うのだが。ともかく、Windows でフォーマットすれば、256 だろうが Mac だろうが、同じことさと思って、それを買った。それしか置いてなかったから。

しかし、実際に Windows でフォーマットしようとしても、ディスクが壊れていると認識されて、フォーマットのプログラムがフォーマットを行ってくれない。なんだこれは? FD の説明書きによると、「一部のシステムでは、再フォーマットできません」と書いてあるが、まさか Windows で再フォーマットできないとは。そんな話、聞いたことないぞ。どんなフォーマットをされていたとしても、強制的に物理フォーマットで上書きすれば、消されるのが理屈である。

どうやらこれは、Windows(私が使っているのは Win98SE)のフォーマットプログラムの仕様に欠陥があるからである。単純に物理フォーマットを行えば、先にどんなフォーマットがされていても、上書きされる。それなのに、Windows のフォーマットプログラムは、先にフォーマットされている場合、それを認識し、フォーマットが異常だと、ディスクが物理的に壊れていると勝手に決めつけ、そこでプログラムが作業を中断してエラー終了してしまうのである。あまりにもお馬鹿すぎる仕様である。

仕方がないので、独立した別のフォーマット用のソフトをネット上で見つけ、使ってみた。Alkonost MaxFormat という海外のシェアウェアである。期限付きで試用ができる。このソフトは、もともと、1.44MB の 2HD の FD を 1.7MB のサイズでフォーマットするためのツールであるが、1.7MB 以外にも 1.44MB や何種類かのフォーマットができるようになっている。このソフトを使ったら、いとも簡単に 256 フォーマットの FD を MS-DOS の 1.44MB フォーマットで再フォーマットすることができた。


<System>