Home > Windows にまつわる e.t.c.

Windows Server 2016 Technical Preview 4 Hyper-V に NanoServer VM を作る


NanoServer は Server Core より更にコンパクトな Windows Server で、単体稼働するだけではなくコンテナテクノロジーにも使われています。

Windows Server 2016 Technical Preview 4(WS16TP4)になって NanoServer 環境も整ってきたので、WS16TP4 Hyper-V に NanoServer VM を作ってみましょう。

NanoServer は、OS インストーラーが準備されているのではなく、VHD を生成するコマンドレットが提供されています。
困ったことに ja-JP な TP4 環境で VHD を作ると文字化けをするので、en-US な WS16TP4 環境が必要になります。

 

ja-JP の WS16TP4 Hyper-V を構築しているからと言ってがっかりする必要はありません。VHD を作る環境に en-US が必要なだけなので、作業用の en-US WS16TP VM を作れば済みます。
VHD を作るだけなので、Nested Hyper-V にする必要もありません。

NanoServer の VHD 作成はざっくりこんな感じです。

・インストールメディアの \NanoServer をハードディスクにコピー
・VHD 作成モジュールを Import
・VHD 作成

 

インストールメディアの \NanoServer をハードディスクにコピー

VHD を作る環境が準備出来たら、en-US の Windows Server インストールメディアをマウントし、インストールメディアから \NanoServer をハードディスクにコピーします。

PS C:\> robocopy D:\NanoServer c:\NanoServer /s /e

-------------------------------------------------------------------------------
   ROBOCOPY     ::     Robust File Copy for Windows
-------------------------------------------------------------------------------

  Started : Wednesday, December 2, 2015 1:08:19 AM
   Source = D:\NanoServer\
     Dest : c:\NanoServer\

    Files : *.*

  Options : *.* /S /E /DCOPY:DA /COPY:DAT /R:1000000 /W:30

------------------------------------------------------------------------------

          New Dir          4    D:\NanoServer\
100%        New File              159928        Convert-WindowsImage.ps1
100%        New File             130.6 m        NanoServer.wim
100%        New File               74020        NanoServerImageGenerator.psm1
100%        New File                 116        ReadMe.txt
          New Dir         15    D:\NanoServer\Packages\
100%        New File              13.9 m        Microsoft-NanoServer-Compute-Package.cab
100%        New File               8.7 m        Microsoft-NanoServer-Containers-Package.cab
100%        New File              117542        Microsoft-NanoServer-DCB-Package.cab
100%        New File             124.4 m        Microsoft-NanoServer-Defender-Package.cab
100%        New File               1.6 m        Microsoft-NanoServer-DNS-Package.cab
100%        New File              512929        Microsoft-NanoServer-DSC-Package.cab
100%        New File               8.1 m        Microsoft-NanoServer-FailoverCluster-Package.cab
100%        New File              620742        Microsoft-NanoServer-Guest-Package.cab
100%        New File               1.8 m        Microsoft-NanoServer-IIS-Package.cab
100%        New File              168468        Microsoft-NanoServer-NPDS-Package.cab
100%        New File              26.0 m        Microsoft-NanoServer-OEM-Drivers-Package.cab
100%        New File               9.4 m        Microsoft-NanoServer-Storage-Package.cab
100%        New File              615099        Microsoft-OneCore-ReverseForwarders-Package.cab
100%        New File               52406        Microsoft-Windows-Server-SCVMM-Compute-Package.cab
100%        New File              881258        Microsoft-Windows-Server-SCVMM-Package.cab
          New Dir         15    D:\NanoServer\Packages\en-us\
100%        New File              344182        Microsoft-NanoServer-Compute-Package.cab
100%        New File              252904        Microsoft-NanoServer-Containers-Package.cab
100%        New File               17754        Microsoft-NanoServer-DCB-Package.cab
100%        New File                6252        Microsoft-NanoServer-Defender-Package.cab
100%        New File              133614        Microsoft-NanoServer-DNS-Package.cab
100%        New File               72789        Microsoft-NanoServer-DSC-Package.cab
100%        New File              140780        Microsoft-NanoServer-FailoverCluster-Package.cab
100%        New File               43744        Microsoft-NanoServer-Guest-Package.cab
100%        New File              126005        Microsoft-NanoServer-IIS-Package.cab
100%        New File               11293        Microsoft-NanoServer-NPDS-Package.cab
100%        New File              389506        Microsoft-NanoServer-OEM-Drivers-Package.cab
100%        New File              197535        Microsoft-NanoServer-Storage-Package.cab
100%        New File               14705        Microsoft-OneCore-ReverseForwarders-Package.cab
100%        New File                6479        Microsoft-Windows-Server-SCVMM-Compute-Package.cab
100%        New File                9597        Microsoft-Windows-Server-SCVMM-Package.cab

------------------------------------------------------------------------------

               Total    Copied   Skipped  Mismatch    FAILED    Extras
    Dirs :         3         3         0         0         0         0
   Files :        34        34         0         0         0         0
   Bytes :  329.64 m  329.64 m         0         0         0         0
   Times :   0:00:01   0:00:01                       0:00:00   0:00:00


   Speed :           272599534 Bytes/sec.
   Speed :           15598.270 MegaBytes/min.
   Ended : Wednesday, December 2, 2015 1:08:20 AM

 

VHD 作成モジュールを Import

必要モジュールをコピーしたら、NanoServer VHD を作成するモジュールを Import します。

PS C:\> Import-Module "C:\NanoServer\NanoServerImageGenerator.psm1" -Verbose
VERBOSE: Loading module from path 'C:\NanoServer\NanoServerImageGenerator.psm1'.
VERBOSE: Importing function 'Edit-NanoServerImage'.
VERBOSE: Importing function 'Get-NanoServerPackages'.
VERBOSE: Importing function 'New-NanoServerImage'.

 

VHD 作成

モジュールのインポートが出来たら、NanoServer VHDを作成します。

作成時に設定するパスワードを聞かれますが、パスワードなしにします。
こうすると、VM 起動時にパスワード設定が出来ます。

PS C:\> md c:\work


    Directory: C:\


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       11/28/2015  10:26 PM                work


PS C:\> New-NanoServerImage -MediaPath D:\ -BasePath C:\work\wim -TargetPath C:\work\NanoServer01VM.vhdx -ComputerName NanoServer01 -GuestDrivers

cmdlet New-NanoServerImage at command pipeline position 1
Supply values for the following parameters:
AdministratorPassword:

Windows(R) Image to Virtual Hard Disk Converter for Windows(R) 10
Copyright (C) Microsoft Corporation.  All rights reserved.
Version 10.0.10586.0.amd64fre.th2_release.151029-1700

INFO   : Looking for the requested Windows image in the WIM file
INFO   : Image 1 selected (ServerTuva)...
INFO   : Creating sparse disk...
INFO   : Attaching VHDX...
INFO   : Initializing disk...
INFO   : Creating EFI system partition...
INFO   : Formatting system volume...
INFO   : Setting system partition as ESP...
INFO   : Creating MSR partition...
INFO   : Creating windows partition...
INFO   : Formatting windows volume...
INFO   : Windows path (F:) has been assigned.
INFO   : System volume location: E:
INFO   : Applying image to VHDX. This could take a while...
INFO   : Image was applied successfully.
INFO   : Making image bootable...
INFO   : Drive is bootable.  Cleaning up...
INFO   : Closing VHDX...
INFO   : Closing Windows image...
INFO   : Done.
Done. The log is at: C:\Users\ADMINI~1\AppData\Local\Temp\NanoServerImageGenerator.log

 

-MediaPath インストールメディアの Path
-BasePath Wim の出力先
-TargetPath VHD の出力先
-ComputerName hostname

 

出来上がった VHD

 

VM 作成

VHD は en-US で作る必要がありましたが、VM は ja-JP Hyper-V 環境で問題なく稼働するので、VHD をコピーし、Gen 2 VM を作成します。

 

VM 起動時にパスワード設定ができるので、F11 でパスワード設定します。

 

リカバリーコンソールで IP やファイアウォール設定が出来ますが、操作性は PowerShell の方が良いので、PowerShell Direct でIP設定がおすすめです。

 

PS C:\> Enter-PSSession -VMName NanoServer01 -Credential Administrator
[NanoServer01]: PS C:\Users\Administrator\Documents> cd \
[NanoServer01]: PS C:\> Get-NetAdapter | New-NetIPAddress -AddressFamily IPv4 -IPAddress 192.168.33.15 -PrefixLength 24 -DefaultGateway 192.168.33.254


IPAddress         : 192.168.33.15
InterfaceIndex    : 3
InterfaceAlias    : Ethernet
AddressFamily     : IPv4
Type              : Unicast
PrefixLength      : 24
PrefixOrigin      : Manual
SuffixOrigin      : Manual
AddressState      : Tentative
ValidLifetime     : Infinite ([TimeSpan]::MaxValue)
PreferredLifetime : Infinite ([TimeSpan]::MaxValue)
SkipAsSource      : False
PolicyStore       : ActiveStore

IPAddress         : 192.168.33.15
InterfaceIndex    : 3
InterfaceAlias    : Ethernet
AddressFamily     : IPv4
Type              : Unicast
PrefixLength      : 24
PrefixOrigin      : Manual
SuffixOrigin      : Manual
AddressState      : Invalid
ValidLifetime     : Infinite ([TimeSpan]::MaxValue)
PreferredLifetime : Infinite ([TimeSpan]::MaxValue)
SkipAsSource      : False
PolicyStore       : PersistentStore

[NanoServer01]: PS C:\> Get-NetAdapter | Set-DnsClientServerAddress -ServerAddresses 192.168.33.1,192.168.33.2

 

en-US 環境なので、タイムゾーンは太平洋標準時間になっています。これを日本時間に変更します。
その後、設定を有効にするために一度 VM を再起動します。

[NanoServer01]: PS C:\> tzutil /g
Pacific Standard Time
[NanoServer01]: PS C:\> tzutil /s "Tokyo Standard Time"
[NanoServer01]: PS C:\> Restart-Computer; exit

 

Enter-PSSession でリモート接続する

ここまで設定できれば、GUI を持たない Windows なので、Enter-PSSession や Invoke-Command でリモート操作が可能になります。

初めてリモート操作するのであれば、接続元で winrm quickconfig -force と Set-Item WSMan:\localhost\Client\TrustedHosts * -Force でリモート操作を許可します。

PS C:\> winrm quickconfig -force
WinRM サービスは、既にこのコンピューターで実行されています。
WinRM は、管理用にこのコンピューターへのリモート アクセスを許可するように設定されていません。
次の変更を行う必要があります:

ローカル ユーザーにリモートで管理権限を付与するよう LocalAccountTokenFilterPolicy を構成してください。

WinRM はリモート管理用に更新されました。

ローカル ユーザーにリモートで管理権限を付与するよう LocalAccountTokenFilterPolicy を構成しました。
PS C:\> Set-Item WSMan:\localhost\Client\TrustedHosts * -Force

 

NanoServer は、デフォルトで Enable-PSRemoting されているので、いきなり Enter-PSSession 出来ます。

Get-WindowsFeature が無いので、デフォルトで役割を Get-WindowsOptionalFeature を見ると、以下のようになっていました。

PS C:\> Enter-PSSession 192.168.33.15 -Credential administrator
[192.168.33.15]: PS C:\Users\Administrator\Documents> cd \
[192.168.33.15]: PS C:\> Get-WindowsOptionalFeature -Online


FeatureName : FileAndStorage-Services
State       : Enabled

FeatureName : Storage-Services
State       : Enabled

FeatureName : File-Services
State       : Disabled

FeatureName : CoreFileServer
State       : Disabled

FeatureName : File-Services-Search-Service
State       : Disabled

FeatureName : SmbDirect
State       : Enabled

FeatureName : MicrosoftWindowsOneCorePowerShellRoot
State       : Enabled

FeatureName : MicrosoftWindowsOneCorePowerShell
State       : Enabled

FeatureName : ServerManager-Core-RSAT
State       : Disabled

FeatureName : ServerManager-Core-RSAT-Role-Tools
State       : Disabled

FeatureName : ServerManager-Core-RSAT-Feature-Tools
State       : Disabled

 

デフォルトだと思った以上にロールが無いですね。

メモリー要求は 199 MB ととても少ないです。

 

ディスクの使用量を確認しようとしたのですが、Get-PSDrive では使用量が確認でき無かったので、起動後の VHD サイズを見ると、708 MB と通常の Windows に比べてはるかにフットプリントは小さいです。

 

NanoServer は Server Core よりさらにコンパクトなので、全てのコマンドレットがサポートされているわけではありませんが、Get-Command で確認すると、思いのほか多くのコマンドレットがサポートされてるのにびっくりします。

また、ipconfig 等の基本コマンドもサポートされているので、CUI での操作性が著しく落ちるといった事は無さそうです。

 

back.gif (1980 バイト)

home.gif (1907 バイト)

Copyright © MURA All rights reserved.