mirror of
				https://github.com/linuxkit/linuxkit.git
				synced 2025-10-31 18:04:00 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			77 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # 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:
 | |
| ```sh
 | |
| 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:
 | |
| ```sh
 | |
| 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.
 |