Windows : してログ

前から Windows 10 が嫌いで仕方ないんですが、今日また嫌いになる出来事が...。それはファイルの関連付け、今までこんなことで苦労なんてしたことがありませんし、解決できない、原因も分からない、えーそんなバカなというような感じです。

やりたかった事

今まで愛用していたテキストエディタ(ちなみに terapad)がさすがに古くなって少々改善したい点もあったことから、重い腰をあげて notepad++ に移行することにしました。こういったツールはポータブル版(インストーラなしでコピーして配置するだけで使用できる)に決めているので、zip 版を用意しました。

トラブル発生

解凍したファイルを配置して、ファイルの関連付けを notepad++ に変更するだけでいいはずなんですが、どうやっても関連付けることができません。

  • notepad++ の設定からの変更
  • 右クリックメニュー > プログラムから開く > 別のプログラムを選択 > 常にこのアプリを使って開く
  • ファイルのプロパティ > プログラムの変更
  • 設定 > アプリ > 規定のアプリ > ファイルの種類ごとに規定のアプリを選ぶ
  • GUIで行った作業と同等のレジストリ変更
  • システムの回復(DISM & SFC)
  • 完全なシャットダウン
  • 「このファイルは他のコンピュータから取得したものです」の解消
  • ちなみに最初の手順でやって3環境中1環境だけ成功

こんな感じでやって諦めました。レジストリを確認しながらGUI操作をしたり原因を追究しようとはしましたが、怪しい一点のみを除いて訳が分かりません。とにかく、エラーも出ないしまったく変化しないしで、ほとほと疲れました。

怪しいのは一点のみ

これについて、ひとつだけ成功した環境がありました。レジストリを見比べたりしても原因が掴めず悩んでいたところ「再起動が必要です」というメッセージが出て「あー」ってなったんですよね。他の失敗環境ではアップデート済みでしたので、今月のアップデートを適用したかしてないかの違いでは無いか、と。今までもアップデートがらみで色々あった Windows 10 ですから十分あり得ると思われます。

追記:別の未アップデート環境で試したところ何の問題もありませんでした。来月以降のアップデートで修正されることを期待します。

ほんと勘弁して欲しいわ Windows 10

こんなアップデートの度に不具合でゴタゴタする OS は未だかつてありませんでした。マイクロソフトもようやく気付き始めたのか、アップデートサイクルを見直す動きもあるみたいです。はっきり言って余計な機能が多いし、かつてのようにビジネス向けとパーソナル向けで分けてやって欲しいですね。最近ので言えば、Windows 7 をビジネス向けに延長サポートしつつ、Windows 10 はパーソナル向け、というのが理想形な気がいたします。アップデートに3時間以上も掛かるのに仕事ではとても使えないっすよ。

SMB 1.0/CIFS
SMB 1.0/CIFS

Windows 10 April 2018 Update で SMBv1 のプロトコルがデフォルトで無効化されたことで、これを使用するファイルサーバーにアクセス不能になるようです。解消するには「プログラムと機能」から「Windows の機能の有効化または無効化」を開き、「SMB 1.0/CIFS ファイル共有のサポート」のチェックをオンにします。

嘘です
嘘です

半年ぐらい無料で使えそうなので、Office 2019 Commercial Preview プログラムに参加してみました。具体的な手順は「Office 2019 Commercial Preview プログラムに参加する方法」を参照してください。

インストール手順

  1. Microsoft Collaborate にアクセスし、Office 2019 Commercial Preview に参加(Join)します
  2. Office 2019 Commercial Preview Documentation (Win32) をダウンロードします
  3. Office Deployment Tool (Win32) のパッケージをダウンロードします
  4. ダウンロードしたツールを実行します(解凍先を聞かれるので指定します)
  5. 解凍先に configuration.xmlファイルがあるのでメモ帳などで開きます
  6. ダウンロードしたドキュメントを解凍し、Volume activation for Office 2019 Preview.docx に記載してあるプロダクトキーを確認します
  7. メモ帳などを使って、configuration.xml にプロダクトキーを書き込みます
  8. コマンドプロンプトを開き setup /configure configuration.xml と実行します(セットアップをクリックしただけではインストールできません)
  9. セットアップはかなり遅くフリーズしているか疑ってしまうほどです(「すぐ完了します」は嘘です。7時間ほどかかりました)

正式版までの繋ぎとして

MS-Office を恒久ライセンスで導入したい場合、新バージョンが出た直後に購入するのが最もお得だと思われますが、それプラスこのプレビュー版を活用するのが賢いと思います。Office365 がお得なのは分かるのですが、Office の場合常に最新版が必要かというと、そうではありません。本質の機能面では、はっきり言って Office 2003 で十分なので、xlsx や docx などフォーマットが変わらない限り1個飛ばし、2個飛ばしで更新しても良いと思います。

また、恒久ライセンスであればバージョン違いではありますがライセンスが増えて行きます。古いバージョンはサブ PC や仮想環境などで利用すれば、Office365 の5台使用可には及びませんが多少のメリットと言えます。

アシスタンスという名の役立たず
アシスタンスという名の役立たず

長期間使用していなかった Windows10(仮想マシン)を起動したところ、予想どおり延々と Windows アップデートになりました。あいかわらずユーザーの意思を無視して、問答無用にアップデートを始めてしまうのも予想通り。しかし、今回違ったのは Windows Update では無く「Windows 10 更新アシスタンス」というものが現れたという点。

前にも書いたけど、Windows 10 の何がダメかって同じような機能やメニューが複数ある点であると思います。なんでまた Windows Update ではだめなんだと思いつつ、待てば更新終わるだろうとこの時は思っていました。ところが、何回アップデートしても再起動のときにブルースクリーンになってやり直し。Windows Update では最新版と出ますが、更新アシスタンスでは 10586 から 16299 に更新する必要があると出る。どっちが正しいのか知りませんが、今のところ解決方法が無いし、ネットで調べる気力も無いので封印しようと思います。

どうやら、Windows 10 というのはこまめにアップデートして最新版を追っかけておかないとだめな OS らしいです。一回のアップデートに数時間かかるようなアップデートを勝手に初めてしまう酷さ、そのアップデートもまともに終了しない検証不足のまま平気でリリースする質の低さ、糞 OS にも程があります。史上最低な Windows の称号を 10 に送ろう。

追記1

1日置いて気力が回復したので解決方法を調査してみました。マイクロソフトから「Windows Update トラブルシューティングツール」というものが提供されているのでこちらを実行してみました。更新アシスタンス実行後の再起動でエラーになる現象は解消したのですが、再起動後も 10586 のままです。更新アシスタンスをアンインストールし、しばらく待っているとゾンビと言われているように復活、また問答無用でアップデートが始まりました。つづく。

追記2

だめでした~。再起動時に停止しなくなっただけで、ブルースクリーンになってもログオン画面まで行くみたいです(ようは気づかなかっただけ)。アップデート失敗しているので 10586 のままなのか。こんな糞 OS 使うの嫌だな~。

追記3

それからいろいろ試してみましたが、何をやっても「KMODE EXCEPTION NOT HANDLED」となって更新に失敗してしまいます。このエラー、デバイスドライバ関係らしいので VMware Tools などの MS 以外のサービスをすべて停止した、クリーンブートを試してみたりしても改善できませんでした。

もうクリーンインストールしか道は残されていないと思いますので、ここでアップデート作業は断念します。

付けたし

ほぼ同じ環境で随時アップデートしていた仮想マシンでは最新の 16299 になっていることから、大型アップデートを順次行っていれば問題なかった可能性があります。そうであれば非常にデキの悪い OS だと思います。

いいえ
いいえ

今さっきのこと、動作が非常に重くなってフォント関係が表示されないようになったんです。タスクマネージャひらいでも、文字のとこが何も表示されてなくて、タブなんかも文字が表示されてないから薄ペラく左に寄って崩れた表示になるんですね。昔のOSでリソース不足を起こして正常に表示されなくなったような感じにです。

しょうがないので、再起動をしたんですがこれがエラく待たされるんです。シャットダウンのぐるぐるがなかなか出てこない。出てきたと思ったら「えっ」。「Windowsを構成しています○%」…。再起動するとき「更新して再起動」とか書いてなかったし、更新するんだったらやらなかったし。

えらく重かったのも、裏でアップデートしてたんだろ。結構集中して仕事してたのに、ユーザーに断りも無く作業に支障をきたすほど重くしておいて、挙句の果てに勝手に更新し始める(始めていた)とか。本当にバカにしてるとしか思えません。

こんな予期せずアップデートが始まるんだったら、仕事になんか使えないっつうの。この記事を書き始まるまでに、10分いやそれ以上待ってやっとです。もう、再起動前にやってた仕事なんか止めてコレ書いてるよ。

書き始めてもまだなんかやってるらしく、変換が遅かったり、デスクトップやタスクバーのアイコンが再描画されたりで、もうなんなの。前は Windows アップデートで3時間もかかったことあったし、いつの時代ですかね、ねー、マイクソソフト。こんなんなら Windows 2000 や XP のほうがまだ安心して使ってられるじゃねーか。

NICは1個しか無いのだが…
NICは1個しか無いのだが…

VMware の仮想マシンで「入力されたIPアドレスは別のアダプタに既に割り当てられています」と表示され、ある固定IPが割り当てられない状態に陥ってしまいました。そのIPは以前使っていたのですが、VMware Server から ESXi へ仮想マシンを変換した際におかしくなったようです。状況的に考えて、前のバージョン VMware Tools のアダプタの設定が残っていて、表示されていないけど邪魔している感じがします。ちなみに「はい」で無視できそうですが、そううまく行きませんでした。

デバイスマネージャを弄っていると「非表示のデバイスの表示」という項目が見つかり、これで解決かと思いきやそうでも無かったみたいです。いくつか似たデバイス名が増えるのですが、それらは動作しているアダプタに関連したものらしいです。また、いったんアダプタを削除してみてもダメでした。

ネットで調べてみましたが「(非表示のデバイスの表示を)使用しても、その IP アドレスが割り当てられた以前の仮想 NIC(非実体化アダプタ)が常に表示されるとは限りません。」だそうで、解決には DevCon.exe というツールが必要になります。ただし現在、そのダウンロードリンクが切れており入手ができませんでした。新しめの Windows であれば、WDK というパッケージの中に入っています、がこれは古い Windows では動きません。しばらく探してみましたが、入手は叶いませんでした。

なお、完全な解決ではありませんが、今まで使っていたIPアドレスを欠番にして別のものを割り当てたり DHCP にすれば逃げれます。予防策としては、固定IPの仮想マシンを変換するときは一時的に DHCP に変更してから行い、変換後にもう一度固定IPを振りなおせば良さそうです。こうすれば、見えないアダプタは DHCP になるので、重複エラーが回避できると思われます。

追記

もう少し探してみたところ古い devcon.exe を発見しました。下記リンク先ページより、下の方にある「WDK 7.1.0 (Windows XP ドライバー用)」からダウンロードできます。Windows XP~7、Windows Server 2003~2008R2 に対応するバージョンになります。

インストールするのは「Microsoft Windows Driver Kit 7.1 > Full Development Environment > Tools」だけでよいです。32bit用の devcon.exe はインストール先の「.\Tools\devcon\i386」にあります。コマンドプロンプトで下記のように実行し、インストールされた非実体化ネットワークアダプタのデバイス名を見つけます。

devcon findall =net

動作しているアダプタは、GUI版デバイスマネージャの「プロパティ > 詳細」より確認できますので、これと違う側が非実体化アダプタということになります。デバイス名が分かったら、下記のように実行してこれを取り除きます。デバイス名はダブルクォーテーションで囲んで頭に「@」を付けてください。

devcon -r remove "@PCI\VEN_1022&DEV_2000&SUBSYS_20001022&REV_10\3&61AAA01&0&88"

これで以前のアダプタに振っていたIPが使えるようになったと思います。

これ
これ

Windows 2000 Server でログオン直後に「WINTRUST.dll が見つからなかったため、このアプリケーションを開始できませんでした。アプリケーションをインストールし直すことこの問題は解決される場合があります。」というエラーが表示され、シェル(エクスプローラ)が起動せず、何も表示されないデスクトップしか出てきません。

だいぶ古いサーバーで直前にHDDの調子が悪かったので、運悪く重要なファイルが壊れてしまったんだと思います。さほど重要なサーバーではなく、ネットワーク上では正常に動いているように見えたので、今まで気づきませんでした。修復インストールすれば回復するかも知れませんが、今回は取り外すことにします。

設定やデータの吸い上げをするのに、リモートからも実機からもログオンできないので、しばらく悩みましたが、Ctrl + Alt + Del でタスクマネージャが開くことに気づきました。タスクマネージャの「新しいタスク」から任意のプログラムを呼び出せるので、コマンドプロンプト(cmd)を起動できます。これで、ダメージを受けていないファイルを特定したり、管理ツールを立ち上げて設定を確認したり、なんとか GUI なしでも思う通りの操作が可能になりました。

教訓。サーバーというものは、物理的にも見てあげないとダメなものですね。

ときどきPCが重くなって再起動を強いられるようになっていたのですが、ようやく原因が分かりました。検索しても特に同様な症状は見つからないけど、ずばり「Realtek HD オーディオマネージャ」コイツです。

スタートアップから外したいけどレジストリ弄らないとだめか~。無くても音出ないとかは無いんだけどね。

60~70%もCPU使用率を占有している
60~70%もCPU使用率を占有している
強制終了させると一気に下がる
強制終了させると一気に下がる

サーバー専用機も安くなってきたとは言え、壊れたときパーツの換えが利かなかったり、前の世代のECCメモリなど割高で入手し辛くなりがちです。そこで今回は普通の自作PCにセットアップしてみたいと思います。

なお、この情報は試行錯誤しながらうまく行った部分のみのメモレベルであり、重要な試行作業が抜けていてこの通りにやってもうまく行く保証はありません。試してみる場合は失敗しても取り返しがつくような環境にした方が良いと思います。

ネットワークアダプタの非対応に注意

マザーボードに搭載されているネットワークアダプタが Windows Server 2016 で対応しているかどうかが問題です。マザーボードの仕様からベンダーを特定し、スペックシートなどを検索して調べることになります。ちなみに今回は、H110M-A/M.2 に搭載の Intel I219V というアダプタでした。

はい。という訳で見事にサポートされておりませんでした。Intel 製だったらたぶん大丈夫だろう、という甘い考えで選んだのですがそううまく行かないもんです。対応した拡張LANカードは1万円もしませんが、今回は以下の情報を元に無理矢理動作させてみました。

ハードウェアRAIDは高くつく?

サーバー機なのでRAID0構成としたいところですが、安いアダプタだと Windows Server 2016 に対応しないと思います。かと言って、Adaptec や LSI のサポートしてるお高いやつにしたら本末転倒もいいところです。だとすれば、ソフトウェアRAIDという話しになりますが、Windows だとシステムボリュームで組むのに注意点があります。

システムボリュームでソフトウェアRAIDを組む

単にミラーリングしたいだけなら、ダイナミックディスクに変換し、ミラーボリュームを追加すれば良いと思います。しかし、これだとブートパーテーションのあるディスクが壊れた場合に起動不能になります。ミラーボリュームのあるディスクにも、diskpart コマンドを使ってブートパーテーションをコピーしておけば良いのですが、手順が若干面倒です。そこで今回は、USBメモリに入れた Ubuntu をライブ起動して dd コマンドによりミラーディスクを作ることにしました。

  1. 公式日本語チーム ubuntu のISOイメージを準備します
  2. こちらのサイトからUSBメモリに書き込むツール Universal USB Installer を準備します
  3. これらを使って起動可能なUSBメモリを作成します
  4. サーバー機は、同じ容量のHDDを2本搭載し、Windows Server 2016 をインストールしておきます
  5. サーバー機の準備ができたら、USBメモリを使って ubuntu を起動します(電源投入直後に F8 を、ぽんぽんぽんっと押し続けているとブートメニューが出ますので、USBメモリを選んで起動します)
  6. ubuntu が起動したら、terminal を開きます(左上のサーチアイコンで「ter」と入れれば見つかります)
  7. fdisk コマンドにてディスクのラベルを確認します
  8. dd コマンドにてディスクをコピーします(ブートパーテーションが終わったら強制終了)
  9. Windows Server 2016 を起動し、システムボリュームにミラーボリュームを追加します
  10. ミラーボリュームのリビルドが終われば完成です
fdisk の操作
sudo fdisk -l

SATA なら sda や sdb になっていると思いますが、コピー元がどっちなの確認する必要があります。Windows Recovery なんとか、とか Microsoft LDM data などがリストされている方がコピー元になります。新しくインストールしている場合は、間違えてもやり直せばいいだけですが、そうでない場合、取り違えには十分注意してください。なお、ディスクの容量の数値を確認しておくと、進捗でいつ終了するのか推定しやすいです(単位の計算で1024か1000かいつも悩む)。

dd の操作
sudo dd if=/dev/sda of=/dev/sdb bs=32M

間違えないように if にコピー元、of にコピー先のディスクを指定します。適切なブロックサイズ(bs=32M)の値はわかりませんが、デフォルトだと時間が掛かったかと思いますので大きめの値にしておきます。この設定で私の環境では 200MB/s の速度(1時間で 0.6TB 程度)が出ました。最初の起動パーテーションが終わった頃合いで強制終了させ、不完全なシステムボリュームは Windows 側で作り直したほうが無駄が無いと思います(どうせRAID組むときにリビルドされるしね)。

進捗の確認方法
sudo watch -n 10 pkill -USR1 dd

もうひとつ Terminal を開き、上記コマンドを実行させると10秒ごとに進捗を表示させることができます。コピー済みの容量、経過時間、転送速度が表示されるので、だいたいの終了時間も計算できます。ちなみに、容量のところで TB と TiB がありますが、テラバイト(1012バイト)とテビバイト(240バイト)を表す単位です。

ミラーボリュームの構成

コピーが終わって、Windows Server 2016 を起動したらディスクの管理を確認します。コピー先のディスクが「不足」や「オフライン」になっていましたので、再アクティブ化などやってベーシックディスクにしました。このとき「すべて消えます」的なメッセージが出るがブートパーテーションは消えないのでそのまま実行します。ディスクをオンラインにできたら「回復パーテーション」と「EFIシステムパーテーション」が見えると思います。残りの領域は「未割り当て」となっているので、そのままコピー元のディスクのシステムボリュームから「ミラーの追加」をします。追加先ディスクを選んで進めると、「再同期中」という表示になり、しばらくする(けっこう待つ)と進捗率が表示されました。

進捗率が表示されるまで結構時間が掛かる
進捗率が表示されるまで結構時間が掛かる
ディスク障害の試験

システムボリュームのミラー構成ができたので、実際にディスク障害を想定した試験を行ってみます。

まず、プライマリのSATAケーブルを抜いた状態で起動させてみました。何事も無く Windows ブートマネージャが立ち上がり、普通に起動することを確認できました。ディスク管理を覗くと当然、外した方のディスクは「不足」となっています。

2つに分かれてて想像と違う
2つに分かれてて想像と違う

実際の場合は新しいHDDに起動パーテーションをコピーし直すところですが、それは省いて外したHDDを繋げてみます。しかし、起動しても復旧せず、論理的なディスクとしてバラバラに表示されるだけでした。

構成が復元し再同期開始されるのを期待したが…
構成が復元し再同期開始されるのを期待したが…

再同期は免れなくてもミラー構成は復元されると踏んでいましたが、色々操作してみても無駄でした。いったんベーシックディスクに戻してから、ダイナミックディスクにします(当然システムパーテーションは消えます)。「不足」になっていたミラーボリュームは、ミラーを解いて削除します。

いちどミラーを解いた状態
いちどミラーを解いた状態

ここまで来たら、最初のときと同様にミラーボリュームを構成してあげれば復旧完了です。ハードウェアのRAIDと比べると復旧の手間は掛かりますが、いちど練習しておけばいざという時にも何とかなるレベルだと思います。

最後に

問題なく Windows Server 2016 を普通のPCに入れることができました。デバイスマネージャを見るとまだ認識できてないデバイスがありますが、サーバーとして使う分にはいらないものばかりなのでそのままにします。ただ、これらのドライバもLANアダプタと同様な方法で動かせるかも知れません。

“しばらく”ねぇ…
“しばらく”ねぇ…

Windowsアップデートは更新して再起動を選択しておくべきだった。更新してシャットダウンだと、次回起動時に更新の残りが始まり、起動してからも設定やら、ドライバーの再登録やらで1時間以上PCが使えない(かった)。Microsoftってバカなの? 電源コントロールできんだから好きなだけ再起動して更新終わらせてから電源切っとけよ。あと、どのくらい時間が掛かるのか明示しとけ。

とかなんとか、前にも同じようなこと書いたような…