特集、その他
最後に知っとく“Windows 8.1重箱の隅”10選
~アナタの知らないWindows 8.1?~ text by 阿久津 良和
(2015/5/1 17:41)
Windows 10の話題と期待感であふれている昨今。数々の新機能や新しいUIなど、話題性も十分なのでそれはある意味当然なのだが、その一方で思うのが「現行OSのことをどれだけ知っているのか?」ということ。
Windows 8/8.1世代は、ユーザーインターフェイスが話題になることが多く「OSの根本」にスポットライトが当たることがそれほど多くなかったようにも思う。
そこで今回は、意外に知られていないWindows 8.1の機能を10個ピックアップ、「最後に知っておきたい重箱の隅」として紹介したい。
実はユーザーインタフェイスだけではない、「Windows 8.1の違い」が伝われば幸いだ。
その1:次世代ファイルシステム「ReFS」データ保管用の高信頼、高拡張性のファイルシステム
本誌読者ならNTFS(NT File System)が長い歴史を持ち、時代に合わせてバージョンを重ねてきたことはご承知のことだろう。NTFSを最初に実装したのは1993年7月リリースのWindows NT 3.1。既に22年の月日が流れ、時代にそぐわない部分も出てきた。そう考えたMicrosoftの開発陣が次世代ファイルシステムとして生み出したのが「ReFS(Resilient File System)」である。既にWindows Server 2012(2012年9月リリース)から実装しているが、実はWindows 8.1もReFSをサポート済みだ。
Microsoftの技術資料には、コントロールパネル「記憶域」でストレージスペースを作成する際に使用可能という記載がある。今のところブート用としては利用出来ないが、信頼性や拡張性を重視して設計されており、例えばデータが破損してしまった際も、「障害が発生した部分を隔離しつつ、ボリュームの残りの部分に対するアクセスは維持することを目指す。また、その間も、使用を続けつつ、可能な限り多くのデータをサルベージする」のが目標とされる。最大ファイルサイズはNTFSの16TBを大きく超える256TBで、ストレージプールのサイズ上限は4PB、ファイル名の長さ上限はユニコード文字で「32K」とされている。ReFSの概要や特徴は公式ブログを参照してほしい。
ただし、そのままではReFSを使用できない。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MiniNTキーにDWORD値「AllowRefsFormatOverNonmirrorVolume」を作成し、データを「1」に変更する必要がある。さらにReFSはフォルダーの最終アクセス日時更新を無効化するDWORD値「NtfsDisableLastAccessUpdate」の代わりに、「RefsDisableLastAccessUpdate」を用意した。必ずしも必要ではないものの、適用する場合はHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystemキーに作成し、データを「1」に変更すればよい。
なお、本カスタマイズはWindows 8.1が不安定になる可能性は拭い切れない。筆者の環境でも、イベントログへのアクセスがエラーになり、いくつかのアプリケーションがプロシージャエントリポイントのリンクを見付けられない、といったトラブルに出くわした。その際はHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MiniNTキー自体を削除し、PCを再起動すれば改善するので、ReFSに関しては“一足先の技術を享受できる”という観点で試してほしい。
その2:「PCのリフレッシュ」個人ファイルを保持したままOS再インストール
Windows 8.xは「個人ファイルを保持したままOSを初期状態に戻す」というリフレッシュ機能を備えている。この機能は、デバイスドライバやデスクトップアプリなど、ユーザーがインストールしたものは基本的に削除されるもの。
本誌の読者は、「そうした(中途半端な)機能を使うより、普通に再インストールする」という人が多そうだが、自分のPCはともかく、他人のPCをメンテナンスする際には「一つの手」として覚えておくと便利だ。……とはいうものの、自分が使わない機能はわからないと思うので、ざっと概要を説明したい。
右図は実行時の流れをまとめたものだが、基本的にはユーザーデータなどをバックアップした後に、回復パーティションにあるイメージファイルを展開。レジストリに格納した設定を適用してからOSを入れ替え、バックアップデータの復元を行うというものだ。バックアップ対象となるのは「%USERPROFILE%」フォルダー(%USERPROFILE%\AppDataフォルダーは除く)や、ルートフォルダーにユーザーが独自作成したフォルダーやCドライブ(OS用パーティション)以外のフォルダー、そしてファイル履歴のバージョン管理データとなる。
逆に「%ProgramData%」「%ProgramFiles%」「%ProgramFiles(x86)%」「%SystemRoot%」フォルダーはすべてリフレッシュするため注意が必要だ。ただし、「Windows.old」フォルダー下には、%ProgramData%フォルダーがC:\Windows.old\ProgramDataフォルダーという形で残るため、ここから各フォルダー下のファイルをサルベージすることもできる。
所要時間はSSDを搭載したノートPCで約1時間、念のため仮想マシン上でも測定したが1時間半未満。
これは実機は多くのユーザーファイルやデスクトップアプリをインストールしていたため、バックアップなどの処理に時間を要したと思われる。
その3:「記憶域」高機能なソフトウェアRAID
当初この日本語訳を目にした時、筆者はピンと来なかった。英語では「Storage Spaces」という名称を持つ本機能は、文字どおりストレージ空間を独自に作成する仮想ストレージシステムである。PCに接続した物理ディスクを「記憶域プール」でプール化し、「記憶域スペース」にある仮想ディスクを使用するという仕組みだ。RAIDやLVM(Logical Volume Manager)に類似していると述べると分かりやすいだろう。
使用できるのはストライピング(RAID 0: 複数のストレージにデータを分散させる)処理を行う「シンプル」、ミラーリング(RAID1: 複数の物理ディスクに同じデータをコピーする)処理を行う「双方向ミラー」、「3方向ミラー」の場合は5台以上の物理ディスクにデータを格納するため、RAID 6と説明すべきだろう。そして「パリティ」はRAID 5と同じくパリティを分散して記録する。平たく述べれば、記憶域はMicrosoft製RAIDシステムなのである。
基本的に記憶域はソフトウェアRAIDと同等のため、M/B(マザーボード)にRAID機能が備わっている場合、メリットを感じないかもしれない。だが、各ベンダーの独自UIではなくWindowsの統一したUIで管理できるのはメリットに数えていいのではないだろうか。蛇足だが筆者は以前Windows Server 2012で記憶域スペースを作成していたが、サーバーPCを廃棄後にそのままHDDをWindows 8.1 PCに接続したところ、そのまま記憶域スペースからファイルのサルベージが可能だった。この点もM/BのRAID機能に対する優位な点である。
その4:ISO/VHDの直接マウントISOはリムーバブルメディアとして、VHDならHDDとして
OSやアプリケーションのインストールメディアとしてISO(イメージ)ファイル(厳密にはISO-9660およびISO-13346)を使う場面は多い。一昔前はCD/DVD-Rメディアへ書き込むか、対応するアプリケーションで仮想ドライブにマウントしていたことを思い出す方も少なくないだろう。Windows 7もISOファイルを書き込む機能を備えていたが、Windows 8.xはISOファイルを直接マウントする機能を備えている。
上図のようにダブルクリック1つでマウントし、コンテキストメニューなどからアンマウントできるが、バックグラウンドでは、Microsoft仮想DVD-ROMドライブを有効にしてISOファイルの読み込みを行う仕組みだ。
仮想HDDであるVHD(Virtual Hard Disk)ファイルの扱いもWindows 8.xで変化している。こちらもダブルクリック1つでマウントできるが、ISOファイルをリムーバブルディスクとして扱うのに対して、VHDファイルは新たなHDDとしてマウントする。さらにVHDを拡張したVHDXを使えるのもWindows 8.x以降から。最大64TB(VHDは2GB)までの容量とメタデータの二重化などによる耐障害性の向上といった特徴を持ち、さらに使いやすくなっている。
その5:「高速スタートアップ」
よくWindows 8.xは起動が速いと言われている。その理由はWindows 8から実装した「高速スタートアップ」の存在だ。端的に述べるとシャットダウン時に作成した休止状態ファイルを再起動時に利用し、OSの初期化として行うカーネルやデバイスドライバー、その他のシステムコンポーネントファイルの展開を省くことで、スタートアッププロセスに要する時間を軽減している。
上図はWindows 7とWindows 8.1のスタートアッププロセスを図にしたものだが、POST(Power On Self Test)を終えてブートローダーが起動すると、Windows 7はカーネルなどのメモリー展開が始まる。
高速スタートアップはシャットダウンプロセスで作成したハイバネーション(休止状態)ファイルをロードし、その後ドライバーの初期化にプロセスが移る仕組みだ。この初期化はACPI S4(ハイバネーション)からの復帰に類似し、そのままサインインやエクスプローラーの起動という流れになる。
他方、高速スタートアップの使用はデメリットにつながるのも事実だ。Microsoftもデバイスドライバーやアプリケーションなどに悪影響を及ぼす可能性を否定していない。例えば外付けHDDに保存したファイルが消失してしまうという問題がある。これはWindows 7とWindows 8.xはLFSのバージョンが異なるために発生する現象だ。
Windows 8.xは今まで以上にログファイルのI/Oカウントを減らすため、LFSを1.1から2.0にバージョンアップしているが、以前のWindows(NTFS)と互換性がないため、Windows 7とWindows 8.xと異なる環境に外付けHDDを接続すると、上記のトラブルに遭遇してしまう。もっとも外付けHDDの取り外しポリシーを「クイック削除」で運用すれば、問題は発生しないので安心してほしい。なお、この問題に関してはTechNet(英語)で詳しく説明されているので、興味のある方ご一読頂きたい。
その6:「セキュリティ」
よくWindows 8.1を指して「UIを変更したにすぎない」という評価を耳にするが、それは大きな間違いだ。
Microsoftは2002年1月から「Trustworthy Computing」という方向性を打ち出し、セキュアなOS・ソフトウェアの開発に取り組んでいる。下図は日本マイクロソフトが2014年9月に開催した発表会で示した、各製品のセキュリティ進化をまとめたスライドだ。
漠然と「セキュリティ」といわれてもなんだかわからないと思うが、例えば、アプリケーションでのメモリの使われ方を強制的にランダム化することで、特定アドレスに対する攻撃を防ぐASLR(アドレス空間配置のランダム化)の適用範囲を増やしたり、“DEP(データ実行防止)の強化”などといった数多くの改善が施されている。
その7:「セキュアブート」
セキュリティ対策の見直しが重視される昨今だが、Windows 8.xが持つアドバンテージの1つに「セキュアブート」がある。ファームウェアやbootコード、Windowsのカーネルなど対する改ざんを未然に防ぐため、UEFI OSローダーやカーネル、デバイスドライバーに埋め込んだ署名を検証し、その上でローディングするという仕組みだ。
ただし、厳密に述べるとセキュアブートが指すのはUEFIブートのみである。[日本語訳の資料](https://msdn.microsoft.com/ja-jp/library/hh824987.aspx)でもセキュアブートという呼称を用いているが、ブートローダーからサードパーティ製ドライバーの読み込み前までは「トラステッド(信頼された)ブート」という呼称を用いている。また、下図にあるELAMは「Early Launch Anti-Malware」の略称で、すべてのデバイスドライバーを読み込む前にテストを行うプロセスだ。
このようなプロセスを持つセキュアブートは、一部のGPUやOSをインストールする際の弊害となるのも否めない。その際は「UEFIファームウェアの設定」などからM/BのBIOS/UEFIメニューを呼び出し、セキュアブートを無効にすればよい。
その8:「Hyper-V」
Windows 7まではXPモード(Windows Virtual PC+Windows XP Service Pack 3)を提供していたが、Windows 8以降はハイパーバイザ型である「Hyper-V」を実装している。
ちなみにこれはWindows ServerのHyper-Vのサブセット版にあたるため、Windows 8.xは“クライアントHyper-V”と称することが多い。もちろん仮想環境を使うためには一定以上のハードウェアスペックや、CPUが仮想化テクノロジー(Intel VTもしくはAMD-V)に対応、64ビット版のWindows 8.1 Proを選択しなければならないが、本誌読者であれば、大きな問題にはならないだろう。
Windows 8.1のHyper-VはホストPCとゲストPC間の連係機能を改善し、ファイルのやり取りやクリップボードの共有、オーディオ再生といった機能を実現した。ただし、これらの恩恵を受けるには拡張セッションモードという接続形式を用いるものの、ゲストOSはWindows 8.1、Windows Server 2012 R2に限られる。それでもUSBデバイスのリダイレクト機能などを備え、VMware Playerなど他の仮想化環境と見比べるレベルに達したと述べても過言ではないだろう。
その9:「DirectX 11.2」
Windows 10はGPUの機能を低レベルで利用可能なDirectX 12を実装する予定だが、現時点の最新版はWindows 8.1用のDirectX 11.2。
例えばWindows 7で利用できるのはDirectX 11.1までだが、この「0.1」の違いで意外に機能が違っている。例えば、“ハードウェアベースの画面合成表示”は、XAMLでUI部分を描画し、迅速なレスポンスが必要な部分はDirectXが担うことになる。
上図はBuild 2013のスライドから抜粋したものだが、DirectX関連セッションでは、前述したハードウェアベースの画面合成表示を含めて5つの特徴を掲げている。なかでも注目すべきは、GPUとCPU処理を組み合わせてプログラムの効率化を実現する“マッピング可能になったデフォルトバッファ”だ。演算シェーダーを実行する際、従来は中間バッファにあったデータをデフォルトバッファにコピーしていたが、本機能の実装によって直接デフォルトバッファにアクセス可能になる。その結果として、コピーに要する時間と消費メモリの削減が実現するのだ。
この他にもWDDM(Windows Display Driver Model)も1.3にバージョンアップし、Direct3Dレンダリングパフォーマンスの改善や、Direct3D 11.1との連携を可能にしている。GPUのパフォーマンスを最大限に引き出せる点を踏まえても、古いOSを使うメリットは皆無だ。
その10:「アップグレード」
既報のとおり2015年夏にリリース予定のWindows 10は、無料アップグレード対象OSとしてWindows 7 Service Pack 1およびWindows 8.1(Update)の名前を並べている。そのため、現在Windows 7をお使いの方々は“Windows 10まで待とう”と考える方も少なくないだろう。だが、長年Windows OSを使ってきた方なら経験しているように、必ずしもスムーズにアップグレードできる保証はない。
筆者は残念(?)ながら未経験だが、Windows 8からWindows 8.1へのアップグレードがどうしてもうまく行かないケースや、Windows 7からWindows 8へのアップグレード時のトラブルは枚挙に暇がない。もちろんMicrosoftもしっかりと検証を行うだろうが、人のなすことに万全はないことはご承知のとおりだ。.
ちょうどWindows 8.1のシステム要件はWindows 7のそれと大差はなく、Windows 7リリース直後(2009年10月)のPCでなければ、Windows 8.1にアップグレードしても、そのまま使えるはずだ。Windows 10 Technical Previewを試した方なら気付くように、Windows 10はWindows 8.1をベースに開発が進んでいる。Windows 10に期待するならばこそ、より確実にWindows 10へアップグレードできるであろうWindows 8.1を選ぶのがいいだろう。