コピーしてきた仮想マシンがThe specified feature is not supported by this versionで起動できない

なんか生き残っていたvSphere 5.5上で動いていたvSphere仮想マシンを新vSphere環境に移行したいけど、費用かけないいい方法は無い?という相談があった。

ある程度作業ができる人なので「仮想マシン止めてからsshでESXiにログインして、仮想マシンが入ったディレクトリをまるごとscpでコピーすればいいんじゃないですか?」と提案した。

で・・・やってみたけど、仮想マシンのパワーオンに失敗したけど、なんだろ?という質問が・・・

すべてのディスクを列挙できません。指定された機能はこのバージョンではサポートされていません

というエラーとのこと。

こういうのは英語で探さないと情報がでてこないけど、正しいのがわからないので、とりあえず「not support this version」あたりの単語から https://kb.vmware.com/ で検索して情報捜索。

Failed to power on virtual machine (82542)
 仮想マシンのパワーオンに失敗する場合のまとめ

“The specified feature is not supported by this version” error creating a snapshot in a vSAN environment (83381)
 vSANとVMFS6とでサポートしている機能に差があることで、特定のデータストアで起動できない、という事例

Migrating a VM to a VSAN datastore fails (82801)
 VSANに移行しようとして失敗する際にvmfssparseのエラーなどがでている

どうやらデータストアのファイルシステムと、仮想マシンのスナップショット周りでなにかがある、というのが見えてきた。

その観点で調査継続

VMFS でのスナップショットのフォーマット

VMFS5で2TB未満の仮想ディスクのスナップショットはVMFSsparseフォーマット
VMFS5で2TB以上の仮想ディスクのスナップショットは SEsparseフォーマット
VMFS6の仮想ディスクスナップショットは全てSEsparseフォーマット

Virtual Machines running on an SEsparse snapshot may report guest data inconsistencies (59216)

VMFS5データストアとNFSデータストアでは、2TB以上の仮想ディスクはSEsparse形式

ということが判明した。

このことから、起動しなかった仮想マシンではスナップショットが使われいたのではないか?という仮説となった。

確認してもらうと確かにスナップショットが使われていたとのこと。

対処方法としては、「新環境にNFSデータストアがあるのであればそこに移動させた後であれば起動できる」一度起動したあとであればstorage vmotionを使ってVMFS6データストアに移動できる。

もしくは、スナップショットを消してから移行を行う、ということとなった。

Windows Server 2008 SP2にInternet Explorer 9をインストールする 2022/07/06版

検証のためにWindows Server 2008 SP2をセットアップしたわけだが、オフライン状態でInernet Explorer 9をインストールするために必要なものとして http://go.microsoft.com/fwlink/?LinkId=185111 を案内され、インストールの前提条件Internet Explorer 9に飛ばされ、下記を入手しろ、と言われる

  • サービス パック 2 for Windows Vista および Windows Server 2008 (KB948465) に関する情報
  • グラフィックス、イメージングWindows XPS ライブラリの説明 (KB971512)
  • Windows Vista および Windows Server 2008 のプラットフォーム更新プログラムの補足 (KB2117917
  • 注意 この更新プログラムをインストールする前971512更新プログラムをインストールする必要があります。

しかし、これらのリンクが機能しておらずアップデート用のファイルが入手できない。

試行錯誤してたどり着いた結果を書いておく。

Windows Sevrer 2008 SP2の入手について

今回SP2適用済みメディアを使用したが、SP2ことKB948465はMicrosoft Updateカタログで「KB948465」を検索して「windows6.0-kb948465-x64_2eedca0bfa5ae8d1b0acf2117ddc4f15ac5183c9.exe」を入手してインストール。

1個目 KB2117917 適用

Microsoft Updateカタログで「KB2117917」を検索して「windows6.0-kb2117917-x64_655a21758801e9648702791d7bf30f81b58884b3.msu」を入手してインストール。再起動はしなくても大丈夫

2個目KB2506014適用

Microsoft Updateカタログで「KB2506014」を検索して「windows6.0-kb2506014-x64_e4a62be05adf6d07841dd3df49fb5d63d1d3ba05.msu」を入手してインストール。再起動はしなくても大丈夫

3個目KB971512適用

Microsoft Updateカタログで「KB971512」を検索して「windows6.0-kb971512-x64_0b329b985437c6c572529e5fd0042b9d54aeaa0c.msu」を入手してインストール。再起動はしなくても大丈夫

問題発生

これでインストールの前提条件Internet Explorer 9に書かれている前提条件をクリアしているはずなのだが、インストールが拒否される。

まだ適用が必要な更新があるらしい。

「更新プログラムの取得」をクリックするとInternetExplorer8でhttp://go.microsoft.com/fwlink/?LinkId=185111 を開こうとするが開けずエラーとなる。

再起動して、もう1回、「windows6.0-kb971512-x64_0b329b985437c6c572529e5fd0042b9d54aeaa0c.msu」をインストールすると今回はなぜか完了した。

???と思ってWindows Updateの更新履歴を確認すると「KB2999226」が追加されている・・・

これは「Windows での汎用の C ランタイムの更新プログラム」であるようで、Windows Updateによりインストールされていた模様

4個目 KB2999226適用

というわけで、Microsoft Updateカタログで「KB2999226」を検索して「windows6.0-kb2999226-x64_0befbb0b78588f7c9f17ead1da3abeda2b6f4c7f.msu」を入手してインストール。

今回は再起動は必須。

Internet Explorer 9インストール

Microsoft Updateカタログで「Internet Explorer 9 2008用」を検索して3ページ目に出てくる「x64 ベース システム Windows Server 2008 用 Windows Internet Explorer 9」から「wu-ie9-windowsvista-x64_f599c02e7e1ea8a4e1029f0e49418a8be8416367.exe」を入手してインストール。

再起動は必須。

なお、 IE9.0の日本語化を「ie9-langpack-windowsvista-x64-jpn_331d32d2b458301c359cb95b639425ff2dbaf2a1.exe」のインストールで行おうとしたのですが、実行しても何も起こらず、日本語化も行われませんでした。

ルート証明書の更新

2022/07/06時点ではWindows Server 2008 SP2に含まれているルート証明書はすべて期限切れになっています。

httpsで使うためのルート証明書がないので、最近のほとんどのWebサイトにアクセスできません。


ルート証明書の更新についての調査過程メモ

2022/07/06時点ではWindows Server 2008 SP2に含まれているルート証明書はすべて期限切れになっています。

この更新に関して調べて見ると「【Windows】オフライン環境でルート証明書更新プログラムを利用する構成について」にて KB2813430 で提供されているという話があった。

Microsoft Updateカタログで「KB2813430」で検索して適用

その後、グループポリシーエディッタを「gpedit.msc」で起動して、[コンピュータの構成]-[管理用テンプレート]-[システム]-[インターネット通信の管理]-[インターネット通信の設定]を開き、「ルート証明書の自動更新をオフにする」を「未構成」から「無効」に変更します。

これでいけるかなぁ・・・と思ったのですが、再起動したり24時間放置してみたりしても状況に変化はなし。

Microsoftのページに「リリース ノート – Microsoft の信頼されたルート証明書プログラム」というのがあり、ルート証明書更新プログラムパッケージを https://aka.ms/CTLDownload というURLで配布している。

個々にアクセスすると、authrootstl.cab がダウンロードできるのでコマンドプロンプトから「certutil -syncWithWU ~\authrootstl.cab」と実行してみたが、現状有効なルート証明書がないようで、失敗した。

Microsoft Windows [Version 6.0.6002]
Copyright (c) 2006 Microsoft Corporation.  All rights reserved.

C:\Users\Administrator>certutil -syncWithWU C:\Users\Administrator\Downloads\aut
hrootstl.cab
証明書チェーンは処理されましたが、信頼プロバイダが信頼していないルート証明書で強
制終了しました。 0x800b0109 (-2146762487) -- authrootstl.cab
CertUtil: -syncWithWU コマンド エラーです: 0x800b0109 (-2146762487)
CertUtil: 証明書チェーンは処理されましたが、信頼プロバイダが信頼していないルート
証明書で強制終了しました。

C:\Users\Administrator>

WSUS Offline Updateでルート証明書の更新をやっている部分を確認すると、win\glb\ディレクトリ内に拡張子crt(セキュリティ証明書)と拡張子crl(証明書失効リスト)のファイルがあり、certuril -addstore Root ~ という形で登録していました。

この証明書ファイル群はどこで入手?と調べたところMicrosoft Japan Windows Technology Support Blogの「ルート証明書更新プログラムの仕組みについて」にいろいろ記述を発見

信頼できるルート証明書のリスト http://ctldl.windowsupdate.com/msdownload/update/v3/static/trustedr/en/authrootstl.cab というのは、さきほどダウンロードしたやつ。

しかし、これの中を確認してもバイナリなので、リストに記載されているというルート証明書が分からない・・・

Windows Server 2008R2であれば「Support for urgent Trusted Root updates for Windows Root Certificate Program in Windows(3024777.)」でアップデートが提供されている。

Cirtixのサポート情報として「Windows Server 2008 のルート証明書の更新機能でルート証明書を自動更新できない場合に Hotfix のインストールに失敗する」(CTX130025)というのがあり、対策2が使えそうだが、初手のルート証明書入手先が現存していない。(英語版KB Hotfix Installation Fails if the Update Root Certificates Feature in Windows Server 2008 Cannot Automatically Update the Root Certificates (CTX129998)も同じ)

HPE KB「HP Insight Remote Support Advanced Software – Version A.05.50 with Windows 2008 and IE x64 and Remote Support Client RSC Fails to Register」も同じ入手先URLでアクセスできず。

McAfee Enterprise 製品のインストール/アップグレードを成功させるためにルート証明機関を更新する方法」に、バッチファイル(2022_Certificates.bat.txt)とレジストリ設定用ファイル(2022_Certificates.reg.txt)を実行することで登録される、という手法が書いてある。

いい方法ないなぁ、と思ったら https://gist.github.com/mateusaubin/3671126 のコメントで「ASHER TOOLS Root Certificate Updater」 というのが紹介されていた。

内容はPowerShellでソースコードは https://github.com/asheroto/Root-Certificate-Updater で公開されている。

「certutil -f -addstore root ファイル名」で実行すると登録できた模様。

なるほど・・・

https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-vista/cc749331(v=ws.10)?redirectedfrom=MSDN

Windows Server 2008をいまさらセットアップした(作業メモ版)

2022/07/08追記

何回か実行してみたところ、いろんな問題があったため、新しい記事「Windows Server 2008 SP2のWindows Updateがうまくいかない件への対処策 2022/07/07版」としてまとめ直しました。


とあるバックアップソフトの対象機種からWindows Server 2008が外れた。

これは「ホントにインストールできない」という意味なのか、それとも「インストールできるけどサポート対象と認定しない」という意味なのか、どちらなんだろ?と確認するため、Windows Server 2008環境を新規でセットアップした。

Windows Server 2008 SP2 のISOイメージを使ってvSphere環境でインストールを実施。

まず、VMware Toolsをインストールしようとしたら対応していないOSと言われてしまう。

調べると最後のWindows Server 2008 SP2対応はVMware Tools 11.0.6だったらしい。

このバージョンのVMware toolsダウンロードを https://packages.vmware.com/tools/releases/11.0.6/ から行ってインストールを実施。

続いて、Windows OSのアップデートは WSUS Offline Updateを使ってオフライン状態でアップデートできないかな、と確認してみると、ESR versionの 11.9.1 であればWindows Server 2008に対応していたので、ISOイメージを作成した。

が・・・ ListMissingUpdateIds.vbs で、「信頼プロバイダが信頼していないルート証明書で強制終了しました」というエラーで失敗して、パッチ適用の本編に進まない。

certmgr.mscを起動して確認してみると「証明書失効リスト」にいろいろある・・・

ListMissingUpdateIds.vbs の処理を修正しないとダメっぽいんだけど、うまくデバグできなかったので対処を諦めて普通にWindows Updateを実施。

しかし、最後10個ぐらいのところで、それ以上進まなくなる、という現象が発生。

2回実施中2回とも発生なので、特定の何かで問題が発生している模様。

この状態になると強制電源OFF/ONして、Windows Updateのロールバック処理を行うぐらいしか対処方法が無かった。

ロールバック完了後に再度Windows Updateを実行してみると半分以上がまだ未適用でした・・・面倒くさい

この後のWindows Updateはハングアップすることはなく普通に進み、とはいえ、何回か再起動とWindows Updateの再実行が必要でした。


で・・・

今回、Windows Server 2008環境を構築するきっかけとなった非対応問題ですが、「インストールできない」という状況でした。

なぜインストールできないのか、というのは前提条件である.NET Framework 4.6.2がWindows Server 2008に非対応だったから、ということでした。

なお、Windows Server 2008については古いバージョンをインストールしておけばサーバ側が新しいバージョンであってもバックアップ/リストアが問題無く動作していました。


WSUS Offline Updateを使わないでいきなりWindows Updateしてみると、Microsoftサイトにアクセスできずに終わります。

なぜかこのような状態になっているかと言えば、といえばhttpsアクセス時に使用する証明書が全て有効期限切れとなっているためですね。

これはcertmgr.mscを起動して確認出来る信頼されたルート証明書機関の有効期限を見ればわかります。

WSUS Offline Updateはルート証明書の更新はやってくれて下記の様な感じになっています。これによりhttpsによるアクセスが成功するようになっている感じですね。

Prolific社のUSBシリアルチップPL2303シリーズのWindows10/Windows11非対応問題

USBシリアルアダプタに以前はよく使われていたProlific社のPL2303シリーズ。

ある時期から偽物チップが登場して、上手く動く/動かない、という話になったことにキレたProlific社が古いチップをまとめてEOS(End of Support)したので、EOS以後にリリースしたWindows10以降で使えなくなった、なんてことがあった。

この互換性問題もあってか信頼性を求めるとFTDI社FT232シリーズ、安さを追求するとWCH社のCH340シリーズなど他社のUSBシリアルが採用されがちになってる。

で・・・このEOSに関するProlific社の公式表明としては、2012年2月に、PL-2303HX, PL-2303Xシリーズを廃盤として、PL-2303TAを後継とするアナウンスを出している。これの影響でPL-2303HXA,PL-2303XAおよびそれより古いPL2303シリーズがWindows8以降で使えなくなった。

このため該当するチップを使っているUSBシリアルをWindows10にさすと、以下のような表示となって使えない。(PL2303HXA PHASED OUT SINCE 2012, PLEASE CONTACT YOUR SUPPLIER. )

で・・・Press Releaseを見ると、2019年12月にその後継とされたPL-2303TA含めて、PL2303HXD, PL2303RA,PL2303EA, PL2303SAがEOSとなっていた。

この時点では特に問題なかったのだが、どうやらWindows11ではこのPL-2303TA採用チップなどが「PL2303TA DO NOT SUPPORT WINDOWS 11 OR LATER, PLEASE CONTACT YOUR SUPPLIER.」として使えなくなっているらしい。

Windows 10用のドライバを持ってきて強制的に適用すれば使用できるようにはなるらしいですが、Windows Update経由のドライバ更新があったりすると使えなくなったりしそうなので、あまりお薦めできなそうです。


2023/01/28追記

ツクモに行ったら ainex ADV119 v2 が500円で売ってた

メーカページを見てみると「ADV-119 ○ ドライバは従来よりウェブに公開しているもので対応します。」と書いてある。

ということはWindows 11の標準ドライバでは対応しないやつなんだな、と思い買ってみると、予想通り以下の表示

で、メーカページからリンクがはれている「PL2303 Windows Driver Download USB to UART RS232 Serial」から「Windows 10 RS3 or higher」と書かれてる方をダウンロードして「PL2303_DCHU_Win10_20H1_19H1_5_v3.8.36.2_20210315_ML_Driver」のドライバを適用すると、下記の表示となり、使用できるようになりました

2023/11/14追記

上記のProlificサイトにアクセスできない場合はMicrosoft Updateカタログで「VID_067B PID_2303 3.8.36.2」で検索して出てきた「Prolific – Ports – 3.8.36.2」のやつを使うといけるかもしれない。


2025/01/07追記

PL2303HXA をWindows 11でも使えないかを検証

普通にさしただけだと以下の認識だった

Updateカタログで「USB\VID_067B&PID_2303 XP」で検索すると出てきた「Prolific – Ports – 7/30/2019 12:00:00 AM – 3.8.31.1」を適用

が・・・Tera Termで選択すると 0x000001b1 でエラー

「Prolific – Other hardware – Prolific USB-to-Serial Comm Port」だと古すぎる2.1.51.238 だった。

ただWindowsを再起動してもドライバが古すぎるのか使用できなかった

今度は「USB\VID_067B&PID_2303 “windows 7”」で検索

一番下の「Prolific – Ports – 3/3/2017 12:00:00 AM – 3.8.12.0」が64bitドライバだったので適用したが、これもダメだった

Oracle CloudのCVE-2022-21503による認証情報流出を対処した

Oracle Cloudアカウントを作ったアドレスに「Action Required: Oracle Cloud Infrastructure Identity – Rotate Credentials for Tenant:~」というサブジェクトのメールが届いた

認証情報が流出したので、7月18日までに認証情報を再設定してね、というお知らせでした。

で・・・異なるOracle Cloudに来たメールはメールが長い・・・

・Oracle CloudのWeb Consoleのパスワード
・Oracle Cloud内部で使うSMTP認証情報
・認証トークン
・多要素認証(MFA)のワンタイプパスワード(TOTP)の乱数シード
・シークレットキー
・OAuth 2.0クライアントの認証情報
・IdPクライアントの認証情報

以上のものが盗られた可能性がある、とのこと。

このメールが届いている場合は、Oracle CloudのWebからログインした際に、パスワード変更が必須でした。

で・・・具体的に何が盗まれたのかは、Oracle CloudのWeb上からCloud Shellを起動して、「identity-audit-tool」を実行すると確認出来ます。

この場合、下記が盗難に遭っています
・Web管理画面用のユーザ「backuptest」のパスワード
・Web管理画面用のユーザ「testuser」のパスワード
・testuserに紐付いているSMTP認証情報
この3件が対象になっています。

この状態から「backuptest」ユーザのパスワードをリセット(再設定)したところ、下記のように2件に減りました。


このような形で、「roted: xx」という表示を消していき、最終的に「Found no affected credential」となるようにして対策完了となります。