噂のNano Serverを触ろうとおもいとりあえずセットアップしてみました。基本的には
の2つを参照して進めればよいかと思います。というか公式、このページしかドキュメントない気がするんですが。
- Windows Server Technical Preview 2のISOイメージを取得する
- ISOをZドライブとかに適当にマウントしてISO内のNanoServerフォルダにあるWIMファイルとSources以下の指定されたファイルをコピーしときます。
C:\temp\nanoserver> Z:\NanoServer\NanoServer.wim C: C:\temp\nanoserver> mkdir dism C:\temp\nanoserver> copy Z:\sources\api*downlevel*.dll .\dism\ C:\temp\nanoserver> copy Z:\sources\dism* .\dism\ C:\temp\nanoserver> copy Z:\sources\*provider* .\dism\ C:\temp\nanoserver> mkdir mountdir
- あとはWIMファイルをDISMでカスタマイズしていく感じ。最初にmountdirにマウントします。
C:\temp\nanoserver> copy nanoserver.wim nanoserver_custom.wim C:\temp\nanoserver> dism\dism /Mount-Image /ImageFile:.\nanoserver_custom.wim /Index:1 /MountDir:.\mountdir
- Nano Serverに必要なロールとファイル(パッケージ)を追加していきます。ISOのNanoServerフォルダにpackageフォルダあるのでそこから必要なcab(en-usフォルダ以下のも含めて2個づつ)DISMで適用していきます。
C:\temp\nanoserver> dism\dism /Add-Package /PackagePath:.\packages\Microsoft-NanoServer-Compute-Package.cab /Image:.\mountdir C:\temp\nanoserver> dism\dism /Add-Package /PackagePath:.\packages\en-us\Microsoft-NanoServer-Compute-Package.cab /Image:.\mountdir C:\temp\nanoserver> dism\dism /Add-Package /PackagePath:.\packages\Microsoft-NanoServer-OEM-Drivers-Package.cab /Image:.\mountdir C:\temp\nanoserver> dism\dism /Add-Package /PackagePath:.\packages\en-us\Microsoft-NanoServer-OEM-Drivers-Package.cab /Image:.\mountdir C:\temp\nanoserver> dism\dism /Add-Package /PackagePath:.\packages\Microsoft-NanoServer-Guest-Package.cab /Image:.\mountdir C:\temp\nanoserver> dism\dism /Add-Package /PackagePath:.\packages\en-us\Microsoft-NanoServer-Guest-Package.cab /Image:.\mountdir
ロールおよびフィーチャーは以下の通り
Hyper-Vロール … Microsoft-NanoServer-Compute-Package.cab
フェイルオーバークラスタリング … Microsoft-NanoServer-FailoverCluster-Package.cab
仮想マシン上での実行時に使うNano Server用ドライバ … Microsoft-NanoServer-Guest-Package.cab
基本的なNICやストレージのドライバ … Microsoft-NanoServer-OEM-Drivers-Package.cab
ファイルサーバーロールとストレージのコンポーネント … Microsoft-NanoServer-Storage-Package.cab - 3rd Party製ドライバなども必要であれば追加しておきます。(注:USBのNIC使ってたせいか動かなかったけど一応)
C:\temp\nanoserver> dism\dism /Image:.\mountdir /Add-Driver /Driver:ドライバフォルダのパス
- 初期パスワード書いたunatttend.xmlファイルを置いておきます。まずXMLファイルを以下のように作ります
<?xml version='1.0' encoding='utf-8'?> <unattend xmlns="urn:schemas-microsoft-com:unattend" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <settings pass="offlineServicing"> <component name="Microsoft-Windows-UnattendedJoin" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> <ComputerName>NanoServer1503</ComputerName> </component> </settings> <settings pass="oobeSystem"> <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> <UserAccounts> <AdministratorPassword> <Value>PASSWORD</Value> <PlainText>true</PlainText> </AdministratorPassword> </UserAccounts> <TimeZone>Pacific Standard Time</TimeZone> </component> </settings> <settings pass="specialize"> <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> <RegisteredOwner>My Team</RegisteredOwner> <RegisteredOrganization>My Corporation</RegisteredOrganization> </component> </settings> </unattend>
ちなみにパスワードは設定したものになったけどコンピューター名などは変わりませんでした。謎。作成後、\windows\pantherフォルダにコピーしておきます。(DISM使う方法はエラーになったので無視。これのせいかもしれない)
c:\temp\nanoserver> md .\mountdir\windows\panther c:\temp\nanoserver> copy .\unattend.xml .\mountdir\windows\panther
- 最初の初期起動時にIPアドレスなどわからないと不便なので表示するようにします。(適当にコマンドいじればいろいろできそうです)
ipconfig
とだけ書いたSetupComplete.cmdファイルを作成してWindows\Setup\Scriptsフォルダにコピーします。
c:\temp\nanoserver> md .\mountdir\Windows\Setup c:\temp\nanoserver> md .\mountdir\Windows\Setup\Scripts c:\temp\nanoserver> copy .\SetupComplete.cmd .\mountdir\Windows\Setup\Scripts
- 最後は変更をコミットしてアンマウントします。
C:\temp\nanoserver> dism\dism /Unmount-Image /MountDir:.\MountDir /Commit
- あとはWindows Server Technical Preview2なISOを使ってブート後、Shift+F10でコマンドプロンプトを出してDISMで作ったカスタムのWIMを適用します。
X:\Sources> DISKPART DISKPART> list disk (インストール先のディスク番号(例:1)の確認) DISKPART> select disk 1 DISKPART> create partiton primary DISKPART> format quick FS=NTFS LABEL="System" DISKPART> assign letter=S DISKPART> active DISKPART> exit X:\Sources> dism /apply-image /imagefile:USBのドライブ文字:\nanoserver_custom.wim /index:1 /ApplyDir:S:\ X:\Sources> bcdboot C:\Windows /l en-us /s S:
ちなみに物理環境だとbcdbootでBFSVC Error: BcdOpenSystemStore failed with unexpected error code, Status = [c000015c]とか出力されてエラーになります。謎。まあ頑張って\efi\microsoft\boot\フォルダでbootrec /fixbootするなりいろいろやってブートするようにしましょう。(追記:もともと違うOSがインストールされてたりした環境だからでした。ちゃんとMBRやBCD整理してあげれば大丈夫です。)
- しばらく初期化頑張ったら起動するはずです。おめでとう。IPアドレスの把握が難しいのなら DHCPサーバー上でMACアドレスに対して固定IPアドレスを割り当てるようにしておくと起動後IPアドレス調べなくていいので便利です。
- あとはPowerShellのリモートセッションなどでつなげばOKです。噂通り(?)フットプリントは軽そうです。
必要なドライバは対象マシン上でDouble Driverなど使ってコピーすると便利かもしれません。
しかし、これ以降どうしていいかさっぱりですね。Hyper-Vは動いてそうなんですけどまともに管理する手段があるのだろうか。。ちなみにWindows 10 Build 10074とかWindows Server Technical Preview2のHyper-Vマネージャーは他のサーバーへの接続時に認証情報を渡せるようになりました。あのごにゃごにゃしたDCOMやらの設定しなくても済むので超楽です。
今時点だと苦行もいいところです。