Windows Server 2016 10.0.14393 に付属しているNanoServerを試しているのですが、
このNanoHyperを用いて構築したHyper-Vで、仮想マシンのIDEコントローラやSCSIアダプタにVHD/VHDXではない「物理ハードディスク」を接続することができません。 ディスクをオフラインにしても設定画面で選択欄がグレーアウトしたままになってしまいます。
「物理ハードディスク」の使用手順: https://blogs.technet.microsoft.com/askcore/2008/10/24/configuring-pass-through-disks-in-hyper-v/
※画像が貼り付けできませんでしたのでこちらに掲載しております:
https://fud.community.services.support.microsoft.com/Fud/FileDownloadHandler.ashx?fid=13f5469e-4e47-42a5-969d-722c1220880c
■再現手順
・NanoServerをHyper-Vを有効にしたうえでインストールする。
(例)
Import-Module .\NanoServerImageGenerator -Verbose
New-NanoServerImage -DeploymentType Host -Edition Datacenter -MediaPath <DVDパス> -TargetPath <出力.vhdx> -ComputerName "TEST" -OEMDrivers -Compute -Storage
→できたvhdxの中身をHDDに書き込む or -DeploymentType を Guest に変更したうえでHyper-V上にインストールする。
----- ※ -----
・管理PCからそのNanoServerにPowerShellで接続する
Enter-PSSession <NanoServer FQDN>
・「物理ハードディスク」機能をテストするために(物理ディスクの代わりに)vhdxを作成する。
New-VHD -Path C:\TEST.vhdx -SizeBytes (1024*1024*1024)
Mount-VHD -Path C:\TEST.vhdx
・前ステップで作成したvhdxまたは本当のHDDをオフラインにする
Get-Disk
Set-Disk 1 -IsOffline $true
・ディスクがオフラインなことを確認
Get-Disk
0 S Healthy Online
1 M Healthy Offline
・管理PCから「Hyper-V マネージャー」を使ってNanoServerにログイン
・右側メニュー「新規」→「仮想マシン(M)」を使用して適当な仮想マシンを作成。
・作成した仮想マシンを右クリックし「設定(B)」
・左側の画面で「IDE Controller 0」を選択、右側の画面にメディアの選択画面が表示される。
→ここで本来であれば選択可能なはずの「物理ハードディスク(Y)」がグレーアウトしてしまい、選択できない
また、この状態で一度「OK」を押して保存した後、もう一度NanoServerにPowershellで接続し、
Set-VMHardDiskDrive -VMName <仮想マシンの名前> -DiskNumber <オフラインにしたディスクの番号>
としても、
Set-VMHardDiskDrive : Unable to find a physical hard drive matching the given criteria.
+ CategoryInfo : ObjectNotFound: (:) [Set-VMHardDiskDrive], VirtualizationException
+ FullyQualifiedErrorId : ObjectNotFound,Microsoft.HyperV.PowerShell.Commands.SetVMHardDiskDrive
のようにエラーになってしまい、同じく設定することができません。
■質問したいこと
NanoServerではなく、通常のWindows Server 2016やWindows 10のHyper-Vでは上記と同じ動作を行っても一切エラーは発生せず、この機能を使用することができました。(この手順のように物理HDDの代わりにvhdxを使っていてもです。)
これは操作手順がNanoServerの場合は異なるということなのでしょうか?
もしくはNanoServerのバグなのでしょうか…?
■その他気になる点
正常に動作するWindows Server 2016やWindows 10から、
・「%SystemRoot%\System32\Drivers\passthruparser.sys」を削除する
・その他何らかの方法で「passthruparser」サービス・ドライバーを起動しなくする
ことで、今回のNanoServerと同じ状態が発生する事がわかりました。
これを元に、NanoServerのほうで「passthruparser」サービスが起動していないのかと思い、PowerShellにて
net start passthruparser
と実行したところ、
net : System error 87 has occurred.
+ CategoryInfo : NotSpecified: (System error 87 has occurred.:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
The parameter is incorrect.
とエラーになってしまいました。
しかし、何らかのきっかけで開始されるようで、
net : The requested service has already been started.
+ CategoryInfo : NotSpecified: (The requested s...y been started.
:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
More help is available by typing NET HELPMSG 2182.
に変わることもありました。しかし、この状態になっても使用できないことに変わりはありませんでした。