2012/03/17

Windows 8 CPに関する諸点

Windows 8 Consumer Preview(CP)を二週間ばかり使ってきての気づき。

1. UI


Windows 8といえばMetroだが、従来のデスクトップも細かい改良を受けていて、それが気に入って常用している。開発環境もこちらに移行した。

リボン化されたエクスプローラだが、リボンの出し入れはクリック1回だし、クイックアクセスツールバー(タスクバーに配置できるアイコン)もあるし、Windows 7の機能を絞り込んだものに比べて便利になっていると思う。シンプルさと各機能へのアクセスのしやすさはトレードオフの関係にあるが、後者に振っている。

日本語版の標準フォントはメイリオUIなので、Windows 7のメイリオより字間が詰まって、凝縮感が高い。これには初め違和感があったが、慣れた。

それから、Windows 7では残っていたビットマップフォントが消えて、すべてアウトラインフォントに変わっている。これは、しばらくWindows 8を使っていてWindows 7に戻ると古臭さを感じてしまう部分。

まあMac OSはとっくにそうなっているが(個人的にあのフォントはボケ度が強すぎるが)、ともかく新しいiPadのRetinaではないが、高精細な画面でUIがDPIから完全に、一片の曇りなく独立した世界が早く来てほしい。最近のノートPCの画面は細かくなる一方で、ついて行けるか個人的に不安を感じているので、割と切実である。


一応の情報として書いておくと、
  • 64bit日本語版をThinkPad X61sにインストールしたが、ドライバーはすべてIn BoxかWindows Updateで出てきたもので賄われたので(TrackPointや省電力ドライバー(ThinkPad PM Device)含め)、別途Windows 7用を当てる必要はなかった。

  • 安定性の面は基本的に問題ない。ハイブリッドスリープをオンにしたときにサスペンドからの復帰に失敗したりしたことがあったが、これはハードウェア依存の問題(ドライバーなど)かもしれないので、とりあえず措く。

  • スタートメニューがない点は、(その良し悪しは別として)ショートカットキーでカバー可能。Windowsキー+Qでアプリの検索画面が出て、これが実質的にスタートメニューの代用になり得る。


  • ファイルの上書きコピー時に、その確認を求めるダイアログが一番上に来なくて、タスクバーのエクスプローラから拾い出さないといけないことがある。
とりあえず単体で使う分には不満はない。

[追記]

スタートメニューについて、カーソルを左下に移動して「スタート」の窓が出た状態で右クリックするとメニューが出るとのこと。いかにも管理用に使いそうなものが揃っている。

これなら、使い勝手的には十分な気がする。

[参考]
山市良のえぬなんとかわーるど: Windows 8 Consumer Preview > スタートメニューっぽいやつ

2. Windows To Go


Developer Previewと同じ方法でWindows To Goが作成できた。USBケースに入れたMSD6000では引き続き問題なし。USBメモリのGH-UFD3-32GFではIEでもインターネット接続ができるようになったが、Windows Updateができない部分は相変わらず。リムーバブルデバイスとして認識されることが問題の元かもしれないと思うが、原因不明。

3. Windows 7とのCHKDSK問題


場合によっては、割と致命的な問題。Bug Report - Serious filesystem corruption and data loss caused to other NTFS drives by Windows 8 CPのとおりで、自分を含めて6件(3/17現在)の報告があるので、まれな現象ではないと思う。

自分の経験したところでは、Windows 7とマルチブートで同居させていると、Windows 7で作成したパーティション(NTFS)をどこか改変してしまうらしく、Windows 7を走らせたときにブート時の自動CHKDSKがかかる。それで済めばいいが、修復に失敗することもあり、また逆に、Windows 7のCHKDSKがWindows 8のパーティションにかかると、今度はWindows 8のブート時の自動CHKDSKがかかって、これも修復できずにブート不能になることがある。

(注)実はDeveloper Previewでも同様の現象はあったが、再現性がよく分からなかった。ついでに、Windows 8 CPで自動CHKDSKがかかると、インストールしていたVisual Studioが起動不能になることがある。起動に関係する何らかの情報が書き換わってしまったのではないかと思うが、これも不明。

状況的には、NTFSとそれを扱うCHKDSKについて互換性に問題があるのではないかと疑わせる。このままRTMまで行ってしまうと、各所で悲鳴が上がりそうだが……ファイルシステムに関わるだけに、残された期間でMicrosoftが解決できるか、個人的にはやや悲観的。そもそも社内テストで見つからなかったのか、とも思うし。

ともあれ、対処療法的にブート時の自動CHKDSKを抑止する方法はあって、レジストリの"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager"の"BootExecute"というキーで、"autocheck autochk *"に/kオプションで除外するパーティションのドライブレターを挿入するというもの。


ただ……Windows 7とWindows 8 CP双方で互いのパーティションを自動CHKDSKから除外するよう設定してみたが、それでもWindows 8では除外しておいたパーティションに自動CHKDSKがかかることがあったので(丁寧なことに、その後にレジストリを見ると設定したオプションが消えていた)、効いているのか怪しい。

ということで、自分の環境ではこの設定をした後は一応安定しているが、Windows 8 CPは仮想環境で動かすか、それ専用のPCを当てた方が無難ではある。

[追記]

おそらく同じ問題に対して、Windows 8の高速スタートアップに関係があるのではないかという説がMicrosoft Answersで出ていた(マルチブート環境にWindows8CPをインストールしてコールドブートするとCHKDSKが実行される)。

確かに、通常OSを終了する際にクリアされるダーティビットが高速スタートアップのためにクリアされないのであれば、次回ブート時にCHKDSKが自動起動することは説明できる。ただ、問題はCHKDSKが実行された結果OSがおかしくなることでもあるので、それだけの問題ではないと思う。

4. アクティブの切り替え


上記の問題があり、マルチブートするにしてもできるだけ環境は切り離したいので、古典的にWindows 7とWindows 8 CPのパーティション間でアクティブを切り替える方法をとっているが、これを簡単にする方法について。OS標準のDiskPartはスクリプトが使えるので、これをバッチファイルで実行する。
  1. DiskPartのスクリプトファイルを作成する。先に手動でDiskPartを使ってアクティブにするパーティションのdisk番号とpartition番号を確認しておき、それを手動でアクティブにするのと同じ内容を書けばいい。以下は"disk 0"の"partition 1"が目的のパーティションだった場合。ファイル名はここでは「script.txt」とした。
    list disk
    select disk 0
    list partition
    select partition 1
    active
    exit
(注)"list disk"と"list partition"は必須ではないが、実行結果を下記のログファイルに記録するため。

  • バッチファイルを作成する。以下はスクリプトファイル(scrpit.txt)を「C:\switch\」に置いた場合で、必須ではないが、実行結果を同じフォルダに作成されるログファイル(log.txt)に出力する場合。
    diskpart /s C:\switch\script.txt > C:\switch\log.txt
    exit

  • バッチファイルのショートカットを作り、そのプロパティの「ショートカット」タブの「詳細設定」から「詳細プロパティ」を開き、「管理者として実行」にチェック。戻って「実行時の大きさ」で「最小化」を選択しておくと、実行時にちらっとコマンドプロンプトが現れることもない(タスクバーには現れる)。

  • これをWindows 7とWindows 8 CP双方に置く(スクリプトファイル中のpartition番号は当然変えておく)。
  • 以上で、クリック2回(ショートカットの起動とUACの承認)でアクティブを切り換えられるようになる。バッチファイルにOSの再起動コマンドを入れることもできるはずだが、そこは趣味の問題。

    ポイントはバッチファイル中のスクリプトファイルの指定方法で、ここはフルパスでないといけない。なぜならコマンドプロンプトを管理者権限で開くと自動的にカレントが「C:\Windows\System32」になるが、バッチファイルを管理者権限で実行したときもカレントは同じく「C:\Windows\System32」になり、たとえスクリプトファイルがバッチファイルと同じフォルダにあってもカレントから見えなくなるので。自分はこれを認識してなくて、少しはまった。

    0 コメント :