Nano – drivers and drive setup

@Foxdeploy and I were chatting about my Nano/Lab setup and he asked me if I had any driver issues with my setup and Nano. The short answer is no…not with this build. But earlier builds (TP1 I think) I did have issues. Here’s how I dealt with that:

I dual boot (as stated in my previous post) to a FULL version of Windows Server 2016 – I consider that my “get out of jail” card just in case things don’t go as planned (as they sometimes do). With a full OS installed I can then use the Device Manager to clearly see what driver is not working properly. With my first build of Nano in the lab I had a NIC driver (ugh). In the early builds of Nano you had to use full OS and Device Manager to get the driver’s inf and other data to import the driver via dism:

dism\dism /Add-Driver /image:.\mountdir /driver: C:\Windows\System32\DriverStore\FileRepository\nic.inf_amd64_23224432324

Luckily that is not needed any longer 🙂 . To add “custom drivers” to a Nano build simply add the option “DriversPath” to the New-NanoServerImage command and point the option to the appropriate folder for the driver(s) you needed add.

As for setting up a dual boot – here’s the method I used:

I booted my system with Windows install media and at the “Windows Setup” screen press Shift+F10

Type diskpart and use the commands listed below
List disk ….and verify which disk you intend to install the OS onto (usually “0”…in the example below I only have a single disk)
  • Select disk 0
  • clean
  • create partition primary
  • format quick fs=ntfs label=boot
  • create vdisk file=c:\Win2016.vhd maximum=50000 type=expandable
  • attach vdisk
  • exit (to exit diskpart) then exit (to exit command prompt)
  • Now continue with Windows Setup and when prompted select “Custom: Install Windows only (advanced)”
  • The drive (vdisk) previously created is displayed – Click Next to install
  • Complete the install as normal

Now that the GUI OS is installed, the Nano VHDX can be added to the boot configuration:

  • Mount the Windows Server 2016 ISO and note the drive letter (in my case it was F:)
  • From an elevated PowerShell console run the following commands

    [code language=”powershell”]
    Import-Module f:\NanoServer\NanoServerImageGenerator -Verbose

    New-NanoServerImage -Edition Standard -DeploymentType Host -MediaPath f:\ -BasePath D:\temp -TargetPath D:\Temp\Nano.vhd -ComputerName Nano -OEMDrivers -Compute
    #Create an djoin file:
    djoin.exe /provision /domain thenewtonlab.com /machine "Nano" /savefile c:\temp\objBlob
    [/code]

    The above command will prompt for an administrator password to assign to the new VHDx image

    • Copy the VHDX over to the server and place on the “Boot” partition created earlier
    • From an elevated command prompt create a new boot entry via BCDEDIT (the last command set the new entry as the default boot entry):

Bcdedit /copy {current}

Copy the GUID that is returned

bcdedit /set {GUID} device vhd=[c:]\NanoServer.vhd

bcdedit /set {GUID} osdevice vhd=[c:]\NanoServer.vhd

bcdedit /set {GUID} path \windows\system32\boot\winload.exe

bcdedit /default {GUID}

Next step in the process is to finalize the Nano configuration:

Logon as Administrator with the password assigned during the New-NanoServerImage command.

Configure the IP and firewall:

Enter administrator for user and the appropriate password:

Press Select Networking and press Enter

Press Enter to configure the NIC

Select F11 and then F4 to toggle DHCP off and then enter a static IP

Press Enter to save the configuration and then ESC back to the main menu

Next the server needs to added to the domain – within PowerShell run the following:

[code language=”powershell”]
$ip = "192.168.1.200"
Set-Item WSMan:\localhost\Client\TrustedHosts $ip
$user = “thenewtonlab\dan”
Enter-PSSession -ComputerName $ip -Credential $user
netsh advfirewall firewall set rule group="File and Printer Sharing" new enable=yes
$ifa = Get-NetAdapter -Name Ethernet
netsh interface ipv4 add dnsserver "Ethernet" address=192.168.1.20 index=1
[/code]

Copy the djoin blob file:

[code language=”powershell”]
#map drive
net use z: \\192.168.1.200\c$
copy c:\temp\objBlob z:\temp\objBlob
#reboot the server
shutdown /r /t 5
[/code]

We now have a dual boot system that is ready to host Hyper-v guests.  While the overall process might seem tedious, it is a process the is done very seldom (gratefully). I hope you find this information helpful.  Do you have a test lab?  How do you like to setup your lab?  I’d love to hear how others are working these issues out.

Regards and happy labbing,

D

Nano – drivers and drive setup

Leave a Reply

Your email address will not be published. Required fields are marked *

Scroll to top