偶爾會需要用到虛擬機

雖然 docker 已經很流行了

但是虛擬機還是有它的好處在

我想其中一個就是比較直覺吧

 

但是最近用 Virtualbox 裝 ubuntu 22.04 且用到 python 的 tensorflow 時候卻報錯了

 

Illegal instruction (core dumped)

 

上網查這個是 tensorflow 報錯

就是 CPU 不支援編譯 tensorflow

如何知道有沒有支援編譯 tensorflow 呢 ?

要看

https://stackoverflow.com/questions/65780506/how-to-enable-avx-avx2-in-virtualbox-6-1-16-with-ubuntu-20-04-64bit

 

可以用

cat /proc/cpuinfo

查看

如果沒有出現 avx 或是 avx2 就是不支援

 

在 Virtualbox 要支援就是要把 nested VT-x AMD-V 這選項打開

 

( 我當時忘記抓圖了,上網找圖類似這樣 )

但是突然就變成 disabled 不能打開的狀態

可以依照參考文章

https://superuser.com/questions/1734351/virtualbox-6-1x-how-enable-enable-nested-vt-x-amd-v-to-enable-kvm-virtualiza

把選項強制打開

但是會發現依舊沒用阿 ~

進去虛擬機會發現依舊沒有 avx 功能

 

 

 

 

 

但是問題是

我這個 CPU 肯定是有支援

因為前幾天還可以正常在虛擬機運作 tensorflow

怎麼今天就不行 ??

太奇怪了

我也沒有去更改 BIOS 的設定阿

 

上網查看一堆文章

https://helpdeskgeek.com/virtualization/how-to-fix-vt-x-is-not-available-verr_vmx-no-vmx-error-in-virtualbox/

大致上說的就是改 windows 設定

把 Hyper-V 移除之類

 

 

主要是這個設定

bcdedit /set hypervisorlaunchtype auto

 

 

重新開機之後就可以了

 

但是 ~~~

因為我想要在 windows 也使用 docker desktop

結果發現

docker desktop 會用到 hyper-V

就算改成 WSL2 也一樣會用到 hyper-V

如果用到 hyper-V

會造成 Virtualbox 無法使用 nested VT-x

真是暈倒

 

所以有人建議要使用 docker

可以在 Virtualbox 開 linux 虛擬機來使用 docker

https://www.reddit.com/r/docker/comments/10owarb/how_to_run_docker_without_hyperv/

 

 

 

不過這方法我之後再嘗試

給大家參考囉