タグ別アーカイブ: Windows7

Windows7でのキーボードレイアウトの指定

方法としては二通りあるようだ。
一つはシステムで使用するキーボードレイアウトの指定。
一つはキーボード別にレイアウトを指定。

いろいろ調べた結果とりあえずWindows7 64bitでのrealforce 86Uと91UBK用のkeyboard.infができたんで最後にdiffを張っておく。
たぶんVista 64でも使える。

続きを読む Windows7でのキーボードレイアウトの指定

Windows7のインストールパーティションのアロケーションユニットサイズ

アロケーションユニットサイズは通常4KBで、普通にWindows7のインストーラでパーティションをきってインストールすると、やはり4KBになる。
これを変更したい場合、以下のようにする。

  1. Windows7のインストーラでパーティションをきる
  2. インストーラを終了させてコマンドプロンプトを起動する
  3. diskpartを起動
  4. インストールパーティションをアロケーションユニットサイズを指定してフォーマット
  5. 再起動して対象のパーティションにインストール

diskpartでのフォーマットの仕方は、フォーマット対象のディスクを選択、フォーマット対象のパーティションを選択、フォーマットという流れ。
以下のような感じ。

DISKPART> list disk

ディスク      状態           サイズ   空き   ダイナ GPT
###                                          ミック
————  ————-  ——-  ——-  —  —
ディスク 0    オンライン          2000 GB      0 B
ディスク 1    オンライン          1726 GB  1442 GB
ディスク 2    メディアなし             0 B      0 B
ディスク 3    メディアなし             0 B      0 B

DISKPART> select disk 0

ディスク 0 が選択されました。

DISKPART> list partition

Partition ###  Type                Size     Offset
————-  ——————  ——-  ——-
Partition 1    プライマリ              100 MB  1024 KB
Partition 2    プライマリ              200 GB   101 MB
Partition 3    プライマリ             1799 GB   200 GB

DISKPART> select partition 2

パーティション 2 が選択されました。

DISKPART> format fs=ntfs unit=16k quick

いまさらながら、単純にdiskpart使わないでformatコマンドでもよかったきはする。
formatコマンドの場合は

format c: /fs:ntfs /q /a:8192

みたいなかんじ。

ちなみに、Windows7がシステムとして予約する100MBのパーティションはいじらないこと。
あそこはアロケーションユニットサイズが4KBじゃないとうまく動かない。

Windows7のMBR修復方法

MBRが破損した場合に限らず、grubなんかのブートローダからbcdに切り替えたい場合も。

Windows7のインストールディスクから起動して、システム回復オプションを選択するなり、Windows7がブート可能な場合には、F8でコンピュータを修復するを選択して、コマンドプロンプトを立ち上げて、以下のコマンドを入力。

bootrec /fixmbr
bootrec /fixboot
必要があれば
bootrec /rebuildbcd

もしくはWindows7が立ち上がるなら、EasyBCDをインストールして、Manage Bootloaderからreinstall the Vista Bootloaderを選んでWrite MBRでもいける。

Windows7でユーザフォルダをシステムドライブ以外に配置する

ユーザフォルダの位置はレジストリで記述されているので、これをいじれば別のパスなりドライブなりに変更できる。
レジストリキーは以下にある。

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProfileList

ここのProfilesDirectoryを書きかえれば、ユーザプロファイルディレクトリを変更できる。

ただ、当然行儀の悪いプログラムはいるわけで、プロファイルディレクトリを決めうちしているようなプログラムもある。
そのため、%SystemDrive%Usersから実態へのシンボリックリンクを張るほうが都合がいいだろう。

ということで、ここではC:UsersからD:Usersへプロファイルディレクトリを変更する手順を書く。
たぶんUACはきっておいたほうがやりやすい。

  1. regedit.exeで
    HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProfileListProfilesDirectory
    の値を
    %SystemDrive%Users
    から
    D:Users
    に書き換える。
  2. 一時的な管理者アカウントを作成する。(ここではtempユーザとする)
  3. ログオフ
  4. tempユーザでログイン
  5. C:UsersをD:Usersにコピー
  6. C:Usersを削除
  7. 管理者権限でコマンドプロンプトを起動して、以下のコマンドを入力
    mklink /D C:Users D:Users
  8. regedit.exeで
    HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProfileListProfilesDirectory
    の値を
    %SystemDrive%Users
    に戻す
  9. ログアウト
  10. 元のユーザでログイン
  11. tempユーザを削除

以上でユーザディレクトリの実態はD:Usersへ配置され、C:UsersはD:Usersへのシンボリックリンクとなる。

一時ユーザを使わずにいけないか試してみたけど、レスキューモードレベルじゃだめだった。
ユーザフォルダ以下の特定ファイルがシステムからオープンされていてコピーできない。
Windowsのインストールディスクからコマンドラインを実行すれば、もしかしたらxcopyあたりでコピーできるかもしれない。
けどインストールディスクの起動時間結構遅いし、それなら一時ユーザ作ってやっちゃえ、ということになった。

ちなみにmklinkでシンボリックリンクじゃなくて/Jを使ってジャンクションを作っても別に問題はないはず。
Linuxユーザにとってはジャンクションなんて中途半端で気持ち悪いとおもうんだけど。