2019-02-27
Hyper-V 的虛擬機中再安裝 Hyper-V
markdown
Windows 10 中使用 Hyper-V 架設虛擬機(Windows Server 2019),然後再虛擬機中再安裝 Hyper-V。
# Windows 10 宿主系統使用 Hyper-V,加一台 Windows Server 2019 的 Guest,再Guest系統中再安裝 Hyper-V。
## 環境
Host: Windows 10; 此篇文章後面簡稱 Win10
Guest: Windows Server 2019; 此篇文章後面簡稱 WinServer2019
已在 Hyper-V 中安裝好 Windows Server 2019 Standard 版本,虛擬機的名稱為 `win2019`
新增角色和功能
安裝角色為主的功能
選擇目前這台 Win2019 虛擬伺服器
找到 `Hyper-V` 勾選它
會詳細顯示要安裝的功能,按下「加入功能(Add Features)」
因為是在 win2019 裡面安裝 Hyper-V 時會出現錯誤,訊息如下:「Hyper-V cannot be installed: The processor does not have required virtualization capabilities.」,提示沒有辦法使用硬體支援虛擬化技術。
為了讓 Guest 虛擬機 win2019 能夠再安裝上 Hyper-V,需要在宿主系統啟用 ExposeVirtualizationExtensions 給 win2019 的虛擬機。
將 win2019 關機
回到宿主系統,以管理者權限開啟 powershell,會透過以下二行指令操作改變 ExposeVirtualizationExtensions 的設定值。
```text
Get-VMProcessor -VMName | fl *
Set-VMProcessor -VMName -ExposeVirtualizationExtensions $true
```
我這裡的 Guest(Target VM's name) 名稱是 `win2019`
```
Get-VMProcessor -VMName win2019 | fl *
Set-VMProcessor -VMName win2019 -ExposeVirtualizationExtensions $true
```
執行 `Get-VMProcessor -VMName win2019 | fl *`,列出 win2019 虛擬機的設定,可以看到 ExposeVirtualizationExtensions 目前的狀態是 false
執行 `Set-VMProcessor -VMName win2019 -ExposeVirtualizationExtensions $true`,將 ExposeVirtualizationExtensions 啟用。
完成上述操作後,再次啟動 win2019 ,再加入 Hyper-V 的功能,即可將 Hyper-V 功能加入 win2019 虛擬機中。
## 資料參考
* [Creating Nested Hyper-V machines with Windows Server 2016 ](https://www.altaro.com/hyper-v/creating-nested-hyper-v-windows-server-2016/)
2019-02-18
在 ubuntu, kali 系統安裝 Golang
markdown
# 在 ubuntu, kali 系統安裝 Golang
## 下載安裝檔
到[Go Programming Language下載頁](https://golang.org/dl/)下載 go1.11.5.linux-amd64.tar.gz。
```sh
curl -O https://dl.google.com/go/go1.11.5.linux-amd64.tar.gz
```
解壓縮到 /urs/local 資料夾,/urs/local 需要 sudo 權限
```sh
tar -C /usr/local -xzf go1.11.5.linux-amd64.tar.gz
```
將 /usr/local/go/bin 加入 PATH,編輯 `~/.profile` 加入下面這行
```text
export PATH=$PATH:/usr/local/go/bin
```
重載設定
```
source ~/.profile
```
可以使用 go 的版本查詢指令確認是否安裝成功
```bash
go version
```
顯示結果
```
go version go1.11.5 linux/amd64
```
查看環境設定
```
go env
```
```
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/cww/.cache/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/cww/go"
GOPROXY=""
GORACE=""
GOROOT="/usr/local/go"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build806834644=/tmp/go-build -gno-record-gcc-switches"
```
GOROOT 是主程式的安裝路徑
GOPATH 是集中管理 code, package 和執行檔的目錄
若要更改 GOPATH 可以用下面指令更改
```
export GOPATH=$HOME/golang
```
通常在 GOPATH 中會有三個資料夾
* src - 放Go程式碼的地方
* pkg - 放Go package的地方
* bin - 編譯好的執行檔會放在這裡
訂閱:
文章 (Atom)