Windows Vistaで4KセクタディスクにシステムコピーしたらWindows Updateなどがエラーになる


Windows VistaのThinkCentreのHDDに不良セクタが発生し始めた。

仕方がないので新しいディスクを買い、CloneZillaを使い、不良セクタがあっても無視して次へ進む、というオプションを選んでデータ移行を行った。
(ちなみに、320GB HDD→1TB HDD)

移行後、新しいディスクから起動はしたものの、Windowsのアプリケーションログに以下のエラーが・・・

エラー 2014/11/23 10:45:12 ESENT 412 Logging/Recovery
wuaueng.dll (1416) SUS20ClientDataStore: ログ ファイル C:\Windows\SoftwareDistribution\DataStore\Logs\edb.log のヘッダーを読み取れません。エラー -546 が発生しました。

エラー 2014/11/23 10:43:16 ESENT 412 Logging/Recovery
InputPersonalization (3844) InkStore: ログ ファイル C:\Users\liliy\AppData\Local\Microsoft\InputPersonalization\edb.log のヘッダーを読み取れません。エラー -546 が発生しました。

また、Windows Updateを実行しても、Windows Updateサービスが起動していない、と修正プログラムが適用できない。

いろいろ調べてみると、どうやら、「Applications that are built on ESENT and that run on a Windows Vista-based or Windows Server 2008-based computer may not work correctly after the reported physical sector size of the storage device changes 」らしい。

旧来の512バイトセクタのディスクではなく、4Kバイトセクタのディスクに変えたことによる問題らしく、Windows VistaとWindows Server 2008では発生する事象らしい。
修正は、上記のページで配布されている修正プログラムを適用すること。

問題は、現象が発生してからでは修正プログラムが適用できない、ということ。(Windows Updateサービスが正常に起動しないため、適用できない)

なので、ディスクコピーを行う前に、修正プログラムを適用する必要がありました。

適用後、再度ディスクコピーを行うことで、エラーは解消されました。

CSuploadなんて無かった!(Azureに仮想マシンイメージをアップロードする方法


Microsoft Azureに仮想マシンイメージをアップロードしようとした。
ぐぐったら、CSUploadというコマンドを使うらしく、Azure SDKをインストールすればいいらしい・・・

Azure SDKをインストールして、実行!

PS C:\> CSupload
CSupload : 用語 'CSupload' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラ
れません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確
てください。
発生場所 行:1 文字:1
+ CSupload
+ ~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (CSupload:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

PS C:\>

そんなコマンドは無いらしい。

気を取り直して公式系情報を探す。

Create and upload a Windows Server VHD to Azure

「Add-AzureVhd」コマンドを使うようだ。

固定長で作成したWindows7 64bit評価版のインストール済みvhdファイルを指定して実行。

PS C:\> add-azurevhd

コマンド パイプライン位置 1 のコマンドレット Add-AzureVhd
次のパラメーターに値を指定してください:
(ヘルプを表示するには、「!?」と入力してください。)
Destination: http://~.blob.core.windows.net/images/win7-64.vhd
LocalFilePath: C:\Users\Public\Documents\Hyper-V\Virtual hard disks\win7-64.vhd
MD5 hash is being calculated for the file  C:\Users\Public\Documents\Hyper-V\Virtual hard disks\win7-64.vhd.
MD5 hash calculation is completed.
Elapsed time for the operation: 00:07:35
Creating new page blob of size 21474836992...
Detecting the empty data blocks in the local file.
Detecting the empty data blocks completed.
Elapsed time for upload: 00:32:17

LocalFilePath                                               DestinationUri
-------------                                               --------------
C:\Users\Public\Documents\Hyper-V\Virtual hard disks\win... http://~.blob.core.windows.net/images/win7-6...


PS C:\>

ネットワークの転送量を見ていると、「Detecting the empty data blocks in the local file.」から「Detecting the empty data blocks completed.」までが案外長い。
動いてるのかなぁ?と悩むぐらいに。(注:転送前にローカルのVHDファイル内の空きブロック検出して、送らなくてもいい部分を探しているので、時間がかかっている)

転送終了後、無事、仮想マシンの新規作成にこのイメージが使用できる、ということを確認できました。

Windows上でX-Windowアプリを表示するためのXサーバ VcXsrv


Windows上でX-Windowsアプリを表示させるために使うXサーバソフトウェアとして、「Xming」が有名である。

しかし、Xmingの最近のバージョンは寄付者向けリリースのみとなっている。
他にないものか、と探してみると「VcXsrv Windows X Server」というものがあった。

こちらは、Visual Studio 2013 Express Editionでコンパイルされており、64bit版バイナリも提供されている。
また、sourceforgeにて、ソースコードも公開されているので改造することもできる。

とりあえず、インストールしてみて、Xmingと使い比べてみたところ、思いの外、VcXsrvは好成績だった。

比較手法としては、VcXsrvを:0で起動し、Xmingを:1で起動し、他のLinuxサーバ上から、同じアプリをそれぞれ表示させる、というものを取ってみた。

「gnome-terminal」
terminal
左:VcXsrv、右:Xming

Xmingは小さく表示されてしまっている。
また、タスクバーの表示は下記のようになる。
taskbar
左:VcXsrv、右:Xming、(真ん中:コマンドプロンプト)

VcXsrvはアプリのアイコンがきちんと表示されるが、xmingでは「X」のアイコンで代用される。

「firefox」
VcXsrvの場合
vc-firefox

Xmingの場合
xming-firefox

VcXsrvの場合、タイトルバーもきちんと表示されている。
Xmingでは表示できていない。


2024/08/22追記

githubでの公開に切り替わっていた https://github.com/marchaesen/vcxsrv

Windows10,Windows11のwingetコマンドでもインストールできるようになっているので「winget install marha.VcXsrv」でインストールすることもできる。

C:\Windows\System32>winget search vcxsrv
名前   ID           バージョン ソース
--------------------------------------
VcXsrv marha.VcXsrv 1.20.14.0  winget

C:\Windows\System32>winget install  marha.VcXsrv
見つかりました VcXsrv [marha.VcXsrv] バージョン 1.20.14.0
このアプリケーションは所有者からライセンス供与されます。
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
ダウンロード中 https://sourceforge.net/projects/vcxsrv/files/vcxsrv/1.20.14.0/vcxsrv-64.1.20.14.0.installer.exe/download
  ██████████████████████████████  40.8 MB / 40.8 MB
インストーラーハッシュが正常に検証されました
パッケージのインストールを開始しています...
インストールが完了しました

C:\Windows\System32>

Windows Serverを複数ユーザで利用時、各ユーザ毎にXmingを起動しTeraTermを使う手法


Windows Serverにリモートデスクトップ(RDP)でログインし、そこからTeraTermを使ってLinuxサーバにログインする、って運用をしてるところは結構あると思います。

で、X-Windowのアプリを表示したい時に、フリー版のXmingを使おうとしたら、思うように使えない、という事態になったりします。

フリー版のXming ver6.9.0.31を普通にインストールすると、そのショートカットは、全ユーザ共通で、Xサーバを「:0」で起動する設定になっています。

このため、Windows Server上で誰かがXmingを起動すると、他の人は番号競合のためXmingを起動できなくなってしまいます。

回避方法は簡単で、番号が被らないようにXmingを起動する、ということです。

Xmingの標準ショートカットは以下のものです。

"C:\Program Files (x86)\Xming\Xming.exe" :0 -clipboard -multiwindow

これを、例えば「:1」で起動する様に変更します。

"C:\Program Files (x86)\Xming\Xming.exe" :1 -clipboard -multiwindow


(ちなみに、「:51000」とかでも起動し動作しました)

また、この設定の場合、SSHを使ったX11 forwardingを使った場合は表示できますが、Linuxサーバ上で「export DISPLAY=WindowsサーバIP:1.0」といったような形で表示させようとした場合、拒否されてしまいます。

そういった場合は下記の様な形で「-ac」オプションをつけます。

"C:\Program Files (x86)\Xming\Xming.exe" :1 -clipboard -multiwindow -ac


(-acは、アクセスコントロールをしない、という設定なので、予期しないホストからXアプリが飛んでくる可能性はありますが、まぁ、気にしない、ということでこの設定にしています。)

なお、最近、一般向けには公開されていないXmingではなく、VcXsrvを使う場合でも、オプションは同様になります。(VcXsrvについては「Windows上でX-Windowアプリを表示するためのXサーバ VcXsrv」を参照のこと)

で・・・これで解決かといえば、そうでもありません。

Tera TermのSSHポート転送の機能に、「Xクライアントアプリケーションの転送」という項目があります。
これは、SSH X11 forwardingとも呼ばれる機能で、Linuxサーバ上ではlocalhost扱いなんだけど、実際には、SSHを使用してWindows上に表示される、というものです。

Tera Termの場合、下記の様にON/OFFのみが選択できます。
teraterm

この場合、Tera Termでは、Windows上のXサーバの「:0」に対して画面を出力しようとします。

このため、せっかくXming側を複数立てても、「:0」を起動させている人のところにXアプリの画面が集まってしまいます。

(以下は、2015/03/02に修正)

回避方法は3つ。

その1:指定できるputtyを使う
出力先をGUIで設定できるputtyを使用する。
設定は下記のX display locationに例えば「:1.0」と入力します。
putty

その2:環境変数でDISPLAYを指定してTeraTermを起動する
version 4.86(2015/02/28リリース)より前のTera Termの場合、TeraTermの起動方法を工夫することで指定ができます。

標準の設定GUIでは設定できませんが、Windowsのコマンドプロンプトで環境変数DISPLAYを設定することによって、出力先を指定することができるようになっています。
(機能追加要望を出したら教えてもらった)

なので、以下のようなバッチファイルを書くと、指定したところにXアプリが出力できるようになります。

@echo off
set DISPLAY=:1.0
"C:\Program Files (x86)\teraterm\ttermpro.exe" Linuxサーバ名 /ssh-X

その3:TeraTermの起動オプションで指定する(ver4.86以降)
TeraTerm ver 4.86から、/ssh-Xオプションが拡張され、DISPLAYを指定できるようになりました。
(TeraTermのマニュアル)

以下の様な形で「/ssh-X」の後にスペースを入れず、連続して出力先を記述します。

"C:\Program Files (x86)\teraterm\ttermpro.exe" Linuxサーバ名 /ssh-Xlocalhost:1.0

VMware toolsの配布場所:Windows&Linux&Solaris 2024/05/21版


2024/05/21修正 Broadcom移管に伴うURL修正など反映
2022/11/15修正 最近のVMware Toolsのサポート状況についてまとめ直した

Windows編

Windows Server 2008R2 SP1~Windows Server 2022 / Windows 7 SP1~Windows 11 12.44.0(随時更新中,最新ESXi同梱版?)
 ReleaseNote:
 https://customerconnect.vmware.com/ja/downloads/details?downloadGroup=VMTOOLS1240&productId=742 ← Broadcom移行に伴い代替URLが不明
 https://packages.vmware.com/tools/releases/12.4.0/windows/

Windows Server 2008 SP2 / Vista SP2用 11.0.6(最終)
 ReleaseNote:
 https://customerconnect.vmware.com/ja/downloads/details?downloadGroup=VMTOOLS1106&productId=742 ← Broadcom移行に伴い代替URLが不明
 https://packages.vmware.com/tools/releases/11.0.6/windows/

Linux編

RHEL7以降はopen-vm-toolsを使う
 VMware support for open-vm-tools (VMware KB:2073803)(Broadcom KB:313456)

RHEL6/CentOS6用 10.3.26(随時更新中,最新ESXi同梱版?)
 ReleaseNote:
 https://customerconnect.vmware.com/ja/downloads/details?downloadGroup=VMTOOLS10326&productId=974 ← Broadcom移行に伴い代替URLが不明
 https://packages.vmware.com/tools/releases/10.3.26/rhel6/

RHEL5/CentOS5用 10.3.22(最終)
 ReleaseNote:
 https://customerconnect.vmware.com/en/downloads/details?downloadGroup=VMTOOLS10322&productId=1072 ← Broadcom移行に伴い代替URLが不明
 https://packages.vmware.com/tools/releases/10.3.22/rhel5/
 なお、RHEL5はSSL1.2に非対応のため、2022年11月現在RHEL5サーバ上からhttpsアクセスがほぼ不可能になっていることに注意

Ubuntu 14.04以降はopen-vm-toolsを使う
 VMware support for open-vm-tools (VMware KB:2073803)(Broadcom KB:313456)

Ubuntu 10.04/11.04/11.10/12.04用 10.3.26(随時更新中)
 ReleaseNote:
 https://customerconnect.vmware.com/ja/downloads/details?downloadGroup=VMTOOLS10326&productId=974 ← Broadcom移行に伴い代替URLが不明
 https://packages.vmware.com/tools/releases/10.3.26/ubuntu/dists/
 なお、SSL1.2に非対応であるなら2022年11月現在サーバ上からhttpsアクセスがほぼ不可能になっていることに注意
 (Ubuntuの対応について調べていない)

Solaris x86編

Solaris 10 x86用 10.3.10(最終)
 ReleaseNote:
 https://customerconnect.vmware.com/ja/downloads/details?downloadGroup=VMTOOLS10310&productId=742 ← Broadcom移行に伴い代替URLが不明
 https://packages.vmware.com/tools/frozen/solaris/


↓は参考用の過去の記録

古いOSだとSSL1.2非対応のため、httpsアクセスができなくなっていることに注意のこと


VMware toolsのダウンロードURLを調べていたら、Linuxディストリビューションの一部では、yumコマンドでダウンロードできるようなレポジトリファイルも配布されているのを発見したのでメモ書き。

バージョンごとの配布場所:
 https://packages.vmware.com/tools/releases

VMwareにあるvmware-tools配布場所:「https://packages.vmware.com/tools/esx/latest/index.html

Linux向けvmware-toolsについて

Linux向けレポジトリのファイル置き場:

vSpehre 6.7向け: https://packages.vmware.com/tools/esx/6.7latest/repos/
vSphere 7.0向け: https://packages.vmware.com/tools/esx/7.0/repos

レポジトリファイルは、上記4つの他に、SLES11.0, SLES11.1, SLES11.2, SLES11.3, Ubuntu10.04, Ubuntu11.10, Ubuntu12.04が公開されている。

RHEL/CentOSのyumコマンドでインストールする場合、
必要なドライバを一通りインストールする「yum install vmware-tools-esx-nox 」でインストールされるパッケージ

vmware-tools-esx-nox         
vmware-tools-core            
vmware-tools-foundation      
vmware-tools-guestlib        
vmware-tools-libraries-nox   
vmware-tools-plugins-autoUpgrade
vmware-tools-plugins-deployPkg
vmware-tools-plugins-guestInfo
vmware-tools-plugins-hgfsServer
vmware-tools-plugins-powerOps
vmware-tools-plugins-timeSync
vmware-tools-plugins-vix     
vmware-tools-plugins-vmbackup
vmware-tools-services

最小限ってことで「yum install vmware-tools-thinprint」でインストールされるパッケージ

vmware-tools-thinprint
vmware-tools-core
vmware-tools-foundation
vmware-tools-guestlib
vmware-tools-libraries-nox
vmware-tools-services

+追加でOSパッケージがいくつか
vmxnet3,vmw_pvscsi,vmware_balloonがインストールされるけど、vmware-tools-esx-noxでインストールした方がいい。

X-Windowsドライバを含めたインストールを行う「yum install vmware-tools-esx」でインストールされるパッケージ

vmware-tools-esx
vmware-tools-core         
vmware-tools-esx-nox      
vmware-tools-foundation   
vmware-tools-guestlib     
vmware-tools-libraries-nox
vmware-tools-libraries-x  
vmware-tools-plugins-autoUpgrade
vmware-tools-plugins-deployPkg
vmware-tools-plugins-desktopEvents
vmware-tools-plugins-guestInfo
vmware-tools-plugins-hgfsServer
vmware-tools-plugins-powerOps
vmware-tools-plugins-resolutionSet
vmware-tools-plugins-timeSync
vmware-tools-plugins-unity
vmware-tools-plugins-vix
vmware-tools-plugins-vmbackup
vmware-tools-services
vmware-tools-user

+追加でOSパッケージがいくつか

RHEL7/CentOS7など最近のLinuxでは、open-vm-toolsでのサポートになっているため、上記のモノは使用しない。

open-vm-tools に対する VMware のサポートについて (2074713)(英語の原文:VMware support of open-vm-tools (2073803))

具体的には以下のOSが対象となる。
・Fedora 19 and later releases
・Debian 7.x and later releases
・openSUSE 11.x and later releases
・Recent Ubuntu releases (12.04 LTS, 13.10 and later)
・Red Hat Enterprise Linux 7.0 and later releases
・SUSE Linux Enterprise 12 – available Q4 2014

RHEL5向けのvmware toolsの最終版は VMware Tools 10.3.22
また、RHEL5/CentOS5はTLS1.2に対応していない(TLS1.0/1.1のみ)ため、最近のWebサイトからwget/curlおよびyumコマンドでのアクセスができないことに注意
ISOファイルは Download Product:VMware Tools 10.3.22 から入手できる


Windows向けvmware-toolsについて

Windows版vmware-tools配布場所:https://packages.vmware.com/tools/esx/latest/windows/index.html

Windows Server 2008 SP2 / Windows Vista SP2の最終サポート: VMware Tools 11.0.6 (ダウンロードURL VMware Tools 11.0.6)

VMware tools 12.0.0以降からネットワークアダプタ VMXNet2(拡張)が使えなくなりました。いまだに使っている場合はVMXNet3に変更する必要がある(VMwware Tools 12.0.5リリースノートより)


Solaris x86向けvmware-toolsについて

Solaris x86をインストールした時に、VMware-toolsを探したのでメモ書きとして追加

公式文書としては「Installing and upgrading the latest version of VMware Tools on existing hosts (2129825)」が出てくるんだけど、Solaris用のVMware-toolsがどこから入手できるのかMy VMwareからダウンロードできるよ、しか書いてない。

[Product Download]-[VMware vSphere]で「Drivers&Tools」を選択し、「VMware Tools」のツリーを開く

いろいろ表示されている中の「VMware Tools 11.0.6」か「VMware Tools 11.1.0」を選択

するとリンク先には「Solaris用はVMware Tools 10.3.10が最後」と誘導されているので、そのリンクを飛ぶと、「VMware Tools packages for Solaris and OS X」がダウンロードできる。

これを展開して、ESXiの /usr/lib/vmware/isoimages に配置する。

といってもこれは /productLocker/vmtools/ へのシンボリックリンクになっている。

この「/productLocker」をさす先は、ESXiの設定でUserVars.ProductLockerLocation を使って指定する。

指定したディレクトリ内に「vmtools」というディレクトリを作成し、その中にisoイメージなどを展開しておくと、これを使ってVMware toolsのインストールをすることができるようになる。