---
title: "start(options:completionHandler:)"
framework: virtualization
role: symbol
role_heading: Instance Method
path: "virtualization/vzvirtualmachine/start(options:completionhandler:)"
---

# start(options:completionHandler:)

Starts the VM with the options and a completion handler you provide.

## Declaration

```swift
func start(options: VZVirtualMachineStartOptions, completionHandler: @escaping ((any Error)?) -> Void)
```

```swift
func start(options: VZVirtualMachineStartOptions) async throws
```

## Parameters

- `options`: A doc://com.apple.virtualization/documentation/Virtualization/VZVirtualMachineStartOptions object that describes controlling startup behavior of a VM using doc://com.apple.virtualization/documentation/Virtualization/VZMacOSBootLoader.
- `completionHandler`: The block to call with the results of the startup attempt. This block has no return value and has one doc://com.apple.documentation/documentation/Foundation/NSError object as its parameter:

## See Also

### Related Documentation

- [VZMacOSVirtualMachineStartOptions](virtualization/vzmacosvirtualmachinestartoptions.md)

### Starting and stopping the VM

- [start(completionHandler:)](virtualization/vzvirtualmachine/start(completionhandler:).md)
- [start()](virtualization/vzvirtualmachine/start().md)
- [stop(completionHandler:)](virtualization/vzvirtualmachine/stop(completionhandler:).md)
- [pause(completionHandler:)](virtualization/vzvirtualmachine/pause(completionhandler:).md)
- [requestStop()](virtualization/vzvirtualmachine/requeststop().md)
- [resume(completionHandler:)](virtualization/vzvirtualmachine/resume(completionhandler:).md)
- [pause()](virtualization/vzvirtualmachine/pause().md)
- [resume()](virtualization/vzvirtualmachine/resume().md)
- [VZVirtualMachineStartOptions](virtualization/vzvirtualmachinestartoptions.md)
