Skip to content

Latest commit

 

History

History
76 lines (53 loc) · 2.47 KB

platform-hyperv.md

File metadata and controls

76 lines (53 loc) · 2.47 KB

LinuxKit with Hyper-V

LinuxKit supports running LinuxKit created VMs on Hyper-V on Microsoft Windows. linuxkit must be run from an elevated command prompt, typically a elevated Powershell and utilises Powershell scripting to manage the Hyper-V VMs.

Example:

linuxkit.exe run -disk size=1 linuxkit-efi.iso

The Hyper-V VM, by default, is named after the prefix of the ISO, ie with .iso and -efi stripped. Note, You may only have one VM for a given name. You can specify an alternative name using the -name command-line option.

Boot

Currently, the Hyper-V backend only supports booting EFI ISO images created with LinuxKit. linuxkit create a Generation 2 VM and disables secure EFI boot for booting.

In the future, we may add support for legacy BIOS ISOs, booting from disks, and enable secure boot.

Console

The serial port of the VM is configured to redirect to a Named Pipe, and when the linuxkit command is executed an interactive console is provided in the same window. The serial console may also be redirected to a file.

Note: The connection to the Named Pipe sometimes seems to be a bit racey, though the code itself should be fine. You may have to try again if the connection to the serial console fails.

If the main console is configured within the VM, one can also connect to it using the Hyper-V manager, or from the command-line:

vmconnect.exe localhost linuxkit

Disks

The Hyper-V backend supports multiple disks to be attached to the VM using the standard linuxkit -disk syntax. While Hyper-V typically stores disk images under a default location, if the VM is created with linuxkit, by default, new disks are created in the current directory.

Networking

By default, the Hyper-V backend will try to find an external switch configured by the user and use this for network connectivity for the VM. This means that DHCP will be provided by the normal DHCP server on your network. Depending on your firewall settings, you may be able to access the VM directly via its IP address.

Alternatively, you can specify a Hyper-V switch to use using the -switch command-line option. In this case it is the user's responsibility to provide a DHCP server or to configure the VM's IP address by some other means.

Integration services and Metadata

LinuxKit does not yet have packages for Hyper-V integration agents (KVP and VSS daemons). We plan to add them soon.

The Hyper-V backend currently does not support passing metadata/userdata to the VM.