2015年7月31日金曜日

Dynabook R73にWindows 10を入れてみた

普通にインストールできました。
特に互換性云々というような問題は出ませんでした。TOSHIBA独自のドライバ関係も、Windows8のときのままで使用できているようです。少なくとも、デバイスマネージャに「!」は出ませんでした。

OSは、実際には別途入手していたWindows8 Proをクリーンインストールして、そこからWindows 10Proへのアップグレードを行いました。Windows 10のISOイメージは手動で入手できるので、Windows10無印とProの2つをダウンロードしてから、USBメモリにコピーして、Windows8の動作状態からsetup.exeを実行してインストールしました。

Windows10を使ってみて・・・・

Windows8とくらべて、特に何がどうということはありませんでした。今のところ、Windows 10に乗り換えなければ!という理由が見当たりません。とりあえず、よく使うアプリ(Visual Studio2008とか)は普通に動いていましたので、いつでも気が向いた時に移行すればいいかな~という感じです。

新しいブラウザEdgeですが、速度はそこそこながら、あまりいい印象を持ちませんでした。

  1. ダウンロードリンクをクリックしても反応しないことがある。
  2. 検索ボックスは普段隠れていて、ウィンドウ上部をクリックすると現れるのは不親切ではないか?
上の1の件ですが、どうもクリックした時にダウンロード対象ファイルに危険がないかどうかをどこか(Microsoftのサーバ?)に問い合わせている雰囲気です。その結果を受け取るまでは、ダウンロードリンクをいくら押しても何の反応もなく、イライラします。そして、忘れた頃(5分とか10分後)にダウンロード開始の表示が出る、しかも何回も押してしまっているので、何個もダウンロードしようとする、という現象が見られました。
すぐにダウンロードを開始するもの(できるもの)もあるのですが、イラッとしたのでChromeを入れようとしてChromeのページでダウンロード&インストールのボタンを押しても、こちらも反応しなかったです。待ちきれなかったので、別PCでダウンロードしたChromeSetup.exeをコピーして実行してインストールしました。Chromeでは、何でもすぐにダウンロードできていましたので、ブラウザの問題のようです。

それから、Windows Updateはどこに行ったのでしょうね?コントロールパネルからは消えていました。おそらくは、Updateする/しないという選択ではなく、常にUpdateするというような方針にしたいのでしょうか>Microsoft。実際、Windowsキー+"update"で検索すると新しいWindows Updateの画面が見つかりましたが、「更新を確認する」とかすると、有無を言わせずインストールまでしてしまうようです。これを止める設定はどこかにあったのかな?
面白いことに、リリースからまだ1日しか経っていない7/30日時点で、すでに3つのアップデートがありました。出たばっかなのに・・・。

2015年7月24日金曜日

Windowsのバックアップと復元にはDismを使う

500GBクラスのSSDが2万円を割り込んだら買おうと思って価格.comとかを見ていたら、500GBには少し満たないけれど480GBのものが2万円を割り込んでいたの思わず購入しました。


もうすぐWindows10が出るので、そのテスト用にもひとつ確保したかったので。

実際には、このPCで使っていた256GBのSSDをテスト用にして、今回買った新しいSSDへ換装しました。その際、ディスクのクローンにはEASE US todo backupとかParagonとかは使わないで、最近知ったMicrosoft純正のDismを使って引っ越しました。このDism、なかなかの"神"ツールだと思います。bcdedit、diskpartあたりと組み合わせて使えば、クローンはもちろん、リカバリイメージ/バックアップイメージからの復旧も自由自在です。

DismはWindows8上からも使えますが、それではSSD/HDDの引っ越しはできないので、Windows PE環境を用意します。単純にWindowsのインストールディスクでよさそうですが、DVDからの起動は遅いですから、そのWindowsのインストールディスクをUSBメモリにコピーしてBIOS/UEFIブートに対応したものを使用して、USBメモリからブートできるようにして作業しました。

まずは、元となった256GBのSSDのイメージ化です。Windows PEでブートしたら、dismでWindowsのあるドライブを丸ごと.wimファイルにイメージ化します。

dism /capture-image /imagefile:イメージファイル名.wim /compress:max /capturedir:(目的のWindowsのあるドライブ名):

Windows PEでブートするとCドライブが目的のWindowsシステムとなっているとは限らないので、diskpartなどで予め調べておきます。また、Windows PE環境はRAM DISK上で動作していて、その総容量が32MByteとか非常に小さいので、テンポラリフォルダの容量もかなり小さいです。dismを使うと、「エラー80 ファイルが有ります」というような謎のエラーが出ることがありますが、これは単にテンポラリ容量の不足が原因なので、dismを使う前にset TMP=?:\temp [ENTER] set TEMP=?:\temp [ENTER] のようにして、テンポラリフォルダを十分容量のある別ドライブ上に設定しておきます。

これで現在使っている環境が丸ごとwimファイルに落とせたので、心置きなく作業ができます。

SSDを新しく買ったSanDISKのものと交換します。まだ、パーティションも切っていないまっさらの状態ですが、USBメモリでブートできるWindows PE環境と、先ほど作ったwimイメージファイルがあれば元のWindows環境に戻るので、この段階で換装してしまいます。

Windows PEでブートしたら、SSDのパーティションとフォーマットをします。

diskpartを起動して、以下の操作でSSDに対してパーティションを切りました。

[GPTへの変更]
 convert gpt

[予約パーティションの作成 - 必須ではないが一応作成しておく]
 create part msr size=128

[システムパーティション(EFIパーティション)の作成]
 create part efi size=100
 format quick fs=fat32 label="EFI"
  assign letter=s

[Windows用のパーティションの作成]
  create part pri size=任意
  format quick fs=ntfs label="Windows 8"
  assign letter=c

次に、UEFIブート用のコードをBCDをsドライブにコピーします。
これはUEFIブート時のブートマネージャとBCDを設定するものなので、とりあえずは適当なもので済ませました。今回は、Windows PE起動に使ったUSBメモリに入っていた\efiディレクトリを丸ごとsドライブにコピーしました。

  robocopy (USBメモリのドライブ名):\ s:\ /S /E /SL /J /COPYALL

BCDの調整が必要ですが、先にwimイメージを展開します。

  dism /apply-image /imagefile:(wimイメージファイル名) /index:1 /applydir:c:\

このとき注意すべきは、上にも書いたようにテンポラリフォルダの設定です。dism実行中に、上に書いたエラーや、「ディスクの容量が足りません」的なエラーがでた場合は、先に環境変数TMP/TEMPを適切に変更しておきます。
また、イメージの展開先ドライブ名は必ず”Cドライブ”とします。別のドライブ名にイメージを展開してもWindowsは起動できるのですが、dismは展開するときにジャンクションをそのドライブ名で設定してしまいます。Windowsは通常Cドライブで起動するので、ジャンクションの参照先がCドライブ以外になっていると見えなくなってしまいます。特に"ユーザー"フォルダ配下ではジャンクションが多数設定されているので、それらが全滅してしまいます。

あとは、s:\efi\microsoft\boot\BCDの内容を調整するだけです。
{default}エントリのdevice値、osdevice値が正しいパーティションを指していないようであれば、先ほど展開したWindowsのあるパーティションを指すように設定します。
また、同じく{default}エントリのpath値は、UEFIブートであれば、\windows\system32\boot\winload.efiに設定します。
他の値は、ちゃんと起動できているシステムのBCD値を真似ておけば、だいたいOKでした。

とりあえず、これだけでほぼ元のWindows環境が新しいSSDに移行出来て、ブート出来る状態になりました。
あとは、必要に応じて、Windows回復環境用のパーティション作成・イメージ展開・BCD設定をするなどしておけば完璧ですが、今回のようにUSBメモリブートでWindows PE環境が起動できれば、WIMイメージの展開からブート設定までひと通りのことができるので、敢えてWindows回復環境までは作りこみませんでした。

余談ですが、dismコマンド自体は仮想ディスクイメージファイル(VHD)に対して使える場合と使えない場合があるそうですが、マウントされた仮想ディスクには物理ディスクと同様に使えるようなので、Windows8のシステムバックアップイメージの復元にも使えそうです。このシステムバックアップの復元はエラーが出ることが多く、その原因も不明で解決できないのですが、dismコマンドでマウントされた仮想ディスクをwimイメージ化できるので、上と同じ要領でWindowsシステムを復元できそうです。


2015年7月1日水曜日

Windows 8.1 自動修復からの回復

いつも使っていたWindows8が、先日急に「自動修復」で起動するようになってしまいました。そして、自動修復がうまくいくならまだしも、ログファイル(SrtTrail.txt)を見てみると、「ご使用のバージョンと互換性がありません」という意味不明のメッセージが出ていました。

  • 自分で判断して、勝手に『自動修復』しようとしているのに、互換性がないなんてどういうこと?
  • そもそも、自動修復機能はMicrosoftが仕込んだ機能でしょう?なのに、どうして互換性云々というのか?
などと突っ込みどころ満載ですが、ツッコんでも治らないので、いろいろと検索しました。


しかし、困っている人はかなり居るけれど大抵は「リカバリ」することになるようですね。ある意味この方法が一番の「正解」なのでしょうが、個人的には負けを認めているようで何だか納得出来ないです・・・。

というわけで、四苦八苦した顛末です。

まず、「自動修復を準備しています」に勝手に入るようになると、セーフモードにすら入れない(=やっぱり『自動修復』で起動してしまう)のを何とかしないといけません。この点は、BCDの通常起動設定である{current}にrecoverenabled値がyesになっていることに気づきました。これをbcdeditで消してやると、少なくとも「自動修復」のループからは抜けられそうです。
というわけで、コマンドプロンプトを立ち上げて、
bcdedit /deletevalue {current} recoveryenabled
として、値を消しました。

再起動すると、今度は自動修復に入らずに通常起動に進んだようですが、そこで今度はBSOD発生です。今回のケースでは、wfplwfs.sysが読み込めないか壊れていますと出ましたので、HDD故障を覚悟しましたが、ダメ元でこのファイルのみを修復してみました。USBメモリからブートして、他のWindows8.1に入っていたwfplwfs.sysを問題のPCにコピーしました。

すると、今度は起動してデスクトップ画面までたどり着きました。しかし、「d3d10_1.dllが壊れている」とか何とかのエラーが出ますし、何だか反応がかなり遅いです。
まあ、HDDの故障か、少なくともシステムファイルの破損が起きているのは間違いないので、chkdsk /rとsfc /scannowを実行して、ディスク&ファイルの検査をしました。sfcの方では、いくつかのファイルの破損が報告されました。chkdskの方は、かなりの時間がかかるようなので、結果待ちの状態です。

結論はまだですが、やはり少なくともリカバリを、場合によってはHDDを交換した方が良いのかもしれません。

最後に、↑のような操作をするには、BCDに関する慣れがないうちはやらない方がいいかも知れません。万一、まったくブートできなくなったとしても保障できませんので。
それから、少なくともUSBブートできる環境が必要になるでしょう。これがあれば、BCDのバックアップやテスト用ブート環境の構築がやりやすくなりますから。実際、↑の説明では「recoverenabled値を削除する」と書きましたが、私は念を入れて、{current}設定をコピーした上でコピーした側のrecoveryenabled値を削除しました。そして、ブート時の選択画面からコピーした側の設定で起動する方法を行いました。