mirror of https://github.com/docker/docs.git
46 lines
1.0 KiB
Go
46 lines
1.0 KiB
Go
package virtualbox
|
|
|
|
import (
|
|
"bytes"
|
|
"io/ioutil"
|
|
|
|
"github.com/docker/machine/libmachine/log"
|
|
)
|
|
|
|
// IsVTXDisabled checks if VT-X is disabled in the BIOS. If it is, the vm will fail to start.
|
|
// If we can't be sure it is disabled, we carry on and will check the vm logs after it's started.
|
|
// We want to check that either vmx or svm flags are present in /proc/cpuinfo.
|
|
func (d *Driver) IsVTXDisabled() bool {
|
|
cpuinfo, err := ioutil.ReadFile("/proc/cpuinfo")
|
|
if err != nil {
|
|
log.Debugf("Couldn't check that VT-X/AMD-v is enabled. Will check that the vm is properly created: %v", err)
|
|
return false
|
|
}
|
|
return isVTXDisabled(cpuinfo)
|
|
}
|
|
|
|
func isVTXDisabled(cpuinfo []byte) bool {
|
|
features := [2][]byte{
|
|
{'v', 'm', 'x'},
|
|
{'s', 'v', 'm'},
|
|
}
|
|
for _, v := range features {
|
|
if bytes.Contains(cpuinfo, v) {
|
|
return false
|
|
}
|
|
}
|
|
return true
|
|
}
|
|
|
|
func detectVBoxManageCmd() string {
|
|
return detectVBoxManageCmdInPath()
|
|
}
|
|
|
|
func getShareDriveAndName() (string, string) {
|
|
return "hosthome", "/home"
|
|
}
|
|
|
|
func isHyperVInstalled() bool {
|
|
return false
|
|
}
|