Posts Tagged With: Hyper-V

[Hyper-V] Win10 1709 執行 WinXP


公司有些舊的 VB6 程式,考慮到 DLL Hell 下,是放在 WinXP SP2 虛擬機上開發的,沒錯,SP2 ,這樣碰上 DLL Hell 的機率才能降低。

隨著 OS 演進,從 Win7 的 Virtual PC 、轉變到 Win8 的 Hyper-V ,最後到 Win10 的 Hyper-V 。

我在 Win10 1703 還用過這個 WinXP 客體,還用來做這篇的 Hyper-V Loopback 速率 10 Gbps 測試:

[Hyper-V] 在 Visual Studio Emulator For Android 我的虛擬網路設定

升級 Win10 1709 後,這兩天有需求要維護舊的 VB6 程式碼,才啟用 Hyper-V 管理員打算啟用影像檔,這算是升級 1709 後第一次開 Hyper-V。

打開 Hyper-V 管理員,居然找不到這台虛擬機?重新載入虛擬機跳錯,說原先設定檔載入失敗,反正虛擬硬碟都還在,就重新開新的虛擬機拉虛擬硬碟進來,第一次忘了 WinXP SP2 不支援 UEFI,選了第二代模擬機,一直卡在開機說不支援,只好把虛擬機砍掉重練,改用第一代模擬機,之後加入 Microsoft Loopback 虛擬網卡、ReomteFX 3D 虛擬顯卡,從 Win10 1703 遺留下來的 Microsoft Loopback 虛擬網卡加入後顯示錯誤,最後只好把這張虛擬網卡砍掉重建,重新加入虛擬機後,就能正常開機了,重建以後的虛擬機版本顯示為 8.2 ,比 1703 留下一堆 Android 虛擬機 8.0 高兩個小版本。

但是開機後,顯示有些虛擬裝置不支援,就想找出 Win8 Hyper-V 內有的 vmguest.iso 。

找到的大部份資料,是說 Win10 的 Hyper-V 已經不支援 WinXP/Win2003 了…

Hyper-V 整合元件更新 Windows 10 或 Windows 伺服器 2016年為基礎的主機上執行的 Windows 虛擬機器 https://support.microsoft.com/zh-tw/help/3071740/

ㄜ,要不是先前有寫網誌,確定我的虛擬機是在 Win10 1703 下跑,我也比對虛擬硬碟檔案最後存取日期 (我比對備份檔) ,的確是我寫網誌的那天,我都要懷疑我有老年癡呆症了,但是我還真想不起來,Win10 1703 下,我有做啥調整… (我懷疑可能沒加入 RemoteFX 3D 虛擬顯卡?)

過去不須追憶,繼續從網海翻文,找到這篇:

Manage Hyper-V Integration Services https://docs.microsoft.com/zh-tw/windows-server/virtualization/hyper-v/manage/manage-hyper-v-integration-services

看起來只要有虛擬光碟就能解決,這不廢話。

又看到這篇:

FAQ: Windows Server 2016 and Hyper-V Integration Services https://rlevchenko.com/2017/02/18/faq-windows-server-2016-and-hyper-v-integration-services/

說到,只要有 Win2012 R2 裡面的 vmguest.iso 就可以,剛好公司有台 Win2012 R2 ,從裡面抓出 vmguest.iso ,再跟這個網站的 vmguest.iso (vmguest_nov172.zip) 比對,除了網站上為英文的 setup.exe 外,其他檔案日期版本相同,當然以安全來源優先,使用公司的 vmguest.iso 。

安裝 vmguest 中

安裝 vmguest 中

然後就正常更新了…

感嘆微軟總會逼走使用者,打算把這台虛擬機遷移到 VirtualBox :

https://www.virtualbox.org/wiki/Downloads

正好碰上 5.2.8 在 4/17 釋出,Windows 版本尚未準備好:

VirtualBox

VirtualBox

算了,只好下次再搬家,反正現在能用了。

廣告
Categories: 工作點滴, 技術分享 | 標籤: | 發表留言

[WINS] 網卡內的 NetBIOS over Tcpip 無法正常啟用


在先前的

[Hyper-V] 在 Visual Studio Emulator For Android 我的虛擬網路設定
https://tlcheng.wordpress.com/2017/08/03/hyper-v-%e5%9c%a8-visual-studio-emulator-for-android-%e6%88%91%e7%9a%84%e8%99%9b%e6%93%ac%e7%b6%b2%e8%b7%af%e8%a8%ad%e5%ae%9a/

我的無線網卡在測試 Hyper-V 的虛擬交換器建立中,解除虛擬交換器後,忽然發生無法正常使用網路芳鄰,經檢視網卡後,發現我的 [IPv4 WINS 伺服器] 設定沒有顯示,[NetBIOS over Tcpip 已啟用] 顯示為 否。

下圖為修好後的截圖。

NetBios Over Tcpip 是否啟用

NetBios Over Tcpip 是否啟用

公司有架設兩台 WINS 伺服器,所以所有公司及 VPN 內都會設定 WINS ,在 [進階 TCP/IP 設定] 可正常顯示,但在 網路連線詳細資料 或是 ipconfig/all 就是無法顯示。即使試著強制啟用,如下圖,設定為 [啟用 [NetBIOS over TCP/IP](N)] 也沒有作用 (這邊 WINS IP 被我遮掉)。

進階 TCP/IP 設定

進階 TCP/IP 設定

我測試多種情形,包含從裝置管理員移除裝置時,同時刪除驅動程式,讓他自動新增時,使用 Win10 1703 內建驅動程式,但是還是沒用。

經過 google 網海後,我靠下面論壇這篇解決。
https://social.technet.microsoft.com/Forums/windowsserver/en-US/f3a909c8-04e8-485d-894c-3f92683c0fd7/can-not-enable-netbios-over-tcpip-on-shared-network-interface

首先,需要知道問題網卡的 GUID ,若是所有網卡都是預設值,可以將問題網卡上圖設定為 [啟用 [NetBIOS over TCP/IP](N)] ,然後到機碼:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Interfaces

找 [NetbiosOptions] 為 1 的,如下圖的項目:

登錄編輯程式

登錄編輯程式

記下這位置的 GUID ,為了確保這張是你的問題卡號,先選到這張卡,回到 [進階 TCP/IP 設定] 改設定為 [預設值(F)] ,回到先前 GUID 檢視 [NetbiosOptions] 是否變成 0 ?若是,這就是你問題網卡的 GUID 。

依序到下面五個機碼下:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Linkage
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Linkage
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBIOS\Linkage
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Linkage
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Linkage

底下的三個多字串值 (REG_MULTI_SZ)
Bind
Export
Route

加入你的網卡。
操作上我建議先複製其他網卡的片段來改 GUID ,再於最後一行貼入,大部分的情況都有多行要貼入。

編輯多字串

編輯多字串

修改完成後,重新開機,讓服務跟網卡都重新啟用就可以恢復正常了。

我另一個同事跟我一樣,在測試 Hyper-V @ Win10x64 時,因為同時 [乙太網路] 跟 [WiFi] 兩張網卡同時加入 Hyper-V 的 虛擬交換機管理員 內,造成兩張網卡的 NetBIOS over Tcpip 都無法啟用,也利用此方法恢復了,我是懷疑可能是 Hyper-V 加入虛擬網卡,移除實體網卡 NetBIOS 能力,當解除虛擬網卡時,未正確自動恢復實體網卡的 NetBIOS 能力。

最後,依據上述關鍵字,在手動修復前或許可以先測試這篇:

如何使用 NetShell 公用程式重設 TCP/IP
https://support.microsoft.com/zh-tw/help/299357/how-to-reset-tcp-ip-by-using-the-netshell-utility

用內建工具程式修看看。

Categories: 工作點滴, 技術分享 | 標籤: | 1 則迴響

[WiFi] 無線網路無法列舉搜尋附近的無線訊號


我的 NB 因為前一篇

[Hyper-V] 在 Visual Studio Emulator For Android 我的虛擬網路設定
https://tlcheng.wordpress.com/2017/08/03/hyper-v-%e5%9c%a8-visual-studio-emulator-for-android-%e6%88%91%e7%9a%84%e8%99%9b%e6%93%ac%e7%b6%b2%e8%b7%af%e8%a8%ad%e5%ae%9a/

被我玩傻了。

一下把 WiFi 加入虛擬交換器,一下退出,不然就是移除裝置重新掃描。

最後發生奇怪的事,無線網卡正常狀態,但是附近的無線訊號就是不會出現可以點選。

查了半天,是這個服務:
WLAN AutoConfig

狀態為 正在停止中 ,從服務管理無法啟動或停用,因為卡在正在停止中。

只能透過 [工作管理員] ,先從 [服務] 找 WLAN AutoConfig 的 [PID] ,再到 [詳細資料] 依 [PID] 找到對應的 svchost.exe 選 [結束工作] ,最後再回到 [服務] 對 WLAN AutoConfig 選 [啟動]。

如果不會操作的話,最簡單就是重新開機。

Categories: 工作點滴, 技術分享 | 標籤: | 發表留言

[Hyper-V] 在 Visual Studio Emulator For Android 我的虛擬網路設定


我在 Win81 時的 Hyper-V 中,透過 Loopback 網卡來分享 WiFi 給虛擬機用:

[Hyper-V] 我 NB 用的虛擬網卡
https://tlcheng.wordpress.com/2016/02/22/hyper-v-%e6%88%91-nb-%e7%94%a8%e7%9a%84%e8%99%9b%e6%93%ac%e7%b6%b2%e5%8d%a1/

當時的 NB 是效能不是很好,所以一直沒考慮使用 Hyper-V 跑 Android 模擬機,一直用 VirtualBox 來跑 Android 模擬機。

Visual Studio 2015 (VS) 以後,微軟推出了整合 VS IDE 開發環境與模擬機的架構,提高 Android 行動軟體開發速度,沒有安裝 VS 的電腦也可以安裝來跑 Android 模擬機:

Visual Studio Emulator For Android (以下簡稱模擬器)
https://www.visualstudio.com/zh-hant/vs/msft-android-emulator/

當然有安裝 VS 2017 的有內建,VS 2017 內建的版本比上述網站下載的還新。

我開始在 Hyper-V 測試模擬器,一開始就卡在開機中的畫面,不知道啥原因:

卡在開機中的畫面

卡在開機中的畫面

 

Terry Lin 建議我依照下面這篇除錯:

Visual Studio Emulator for Android 疑難排解
https://msdn.microsoft.com/zh-tw/library/mt228282.aspx#NoStart

無法解決問題,之後 Ian Chen 建議我把所有 Virtual Switch 全部砍掉一預設值重建,砍掉前我有看了一下設定後,砍掉重建,重建後我的模擬機就能完成開機,但卻出現不能上網。

Windows Phone Emulator Internal Switch

Windows Phone Emulator Internal Switch

註:後來是因為我的 Windows Phone Emulator Internal Switch 內不知道為啥預設是 169.* 開頭的 IP ,這裡必須是動態取得 IP

一開始無法上網,我依據先前跑 Windows VM 的慣例,把 Microsoft Loopback 網卡設定給 Android 模擬器,但是還是無法上網,Aska Su 建議我用 Hyper-V 建一個 Hyper-V Loopback 內部虛擬網路:

Hyper-V Loopback

Hyper-V Loopback

再把 WiFi 分享給 Hyper-V Loopback 虛擬網卡:

共用 WiFi 給 Hyper-V Loopback

共用 WiFi 給 Hyper-V Loopback

 

我用 Windows VM 測試,也可正常成功。

Hyper-V Loopback 速率 10 Gbps

Hyper-V Loopback 速度

Hyper-V Loopback 速度

比 Microsoft Loopback 網卡 1.2 Gbps 快。

Microsoft Loopback 速度

Microsoft Loopback 速度

 

但是 Android 模擬器仍無法上網。測試各種方案,Android 模擬機都會自動把 Windows Phone Emulator Internal Switch 虛擬網卡自動加入,若是參數不正確,還會自動把前次設定錯誤的網卡刪除。

苦無對策,拜了 google 大神,一般解決方案都是將無線網卡加入第二張 Android 模擬機網卡,這表示我得放棄不將 WiFi 加入虛擬交換器,必須將 WiFi 加入到 Hyper-V 內。

虛擬交換器管理員

虛擬交換器管理員

WiFi 一加入虛擬交換器就會組成網路橋接器,這讓網路管理複雜很多:

網路橋接器

網路橋接器

加入到 Android 模擬機第二張網卡:

WiFi 加到第二張網卡

WiFi 加到第二張網卡

就可正常上網了:

從無線基地台取得實體 IP

從無線基地台取得實體 IP

註:若網路設定錯誤,Android 模擬機仍會自動將無線網卡刪除

成功上網後,摸清楚特性,就測試改用 Hyper-V Loopback 網卡,由於 Hyper-V Loopback 網卡為內部網卡,只要一設定 IP ,例如共用網路變成 192.168.137.1 ,就會造成模擬機無法開機,只有外部網卡能設 IP。因此又回頭使用 Microsoft Loopback 網卡加入虛擬交換器:

Microsoft Loopback 加入第二張網卡

Microsoft Loopback 加入第二張網卡

再將 WiFi 分享給 Microsoft Loopback 虛擬網卡

WiFi 分享給 Microsoft Loopback

WiFi 分享給 Microsoft Loopback

一樣自動被設定為 192.168.137.1

虛擬網段 IP

虛擬網段 IP

讓網路設定變得比較乾淨:

實體網卡好管理

實體網卡好管理

終於,可以把先前的 Microsoft Loopback 網卡分享給 Android 模擬機。

透過 Microsoft Loopback 取得虛擬 IP

透過 Microsoft Loopback 取得虛擬 IP

平常沒有使用 Hyper-V 的時候,我就會停用不相關的網卡,另外重新把 Windows VM 網卡設給 Microsoft Loopback ,反正 1.2 Gbps 也夠我用了,平常就懶得動,直接用同一張須擬網卡就可以,這樣在外沒有無線基地台的情況下,模擬器也可以透過 192.168.137.* 網段與 NB 溝通,恢復到我的習慣工作環境了。

Categories: 工作點滴, 技術分享 | 標籤: | 7 則迴響

[Hyper-V] 我 NB 用的虛擬網卡


這篇純粹是個人經驗,沒有好壞問題,是喜好問題。
話說,用 NB 開發或測試的人, NB 可以接多種網路,而各種網路要切換對外或是在無網路時,要自用時,Hyper-V 的網路就很煩人。
此外,TeamViewer 只啟用無線網路下,是可以不記憶 ID 的,因此不用擔心 5 分鐘問題。

[遠端] TeamViewer 7 不記憶 ID 的示範影片

因此我延續以前 Vitural Server 時期,德瑞克教我的撇步,使用內建的虛擬網卡,再用網路共用方式,將網路分享給虛擬網卡,所以 PC 端的 Loopback 網卡設為 192.168.137.1 ,讓虛擬機透過虛擬網卡自動取得 IP 進而連線到網路。

在 Win8 以後,Loopback 網卡速度為 1.2G。

我的網路連線前面的部分如下圖,大部分情形下,我會只有啟用 Wi-Fi ,要使用虛擬機之前,先啟用 Loopback 網路,再啟用 Hyper-V 自動建立的 vEthernet 網卡,其他實體網卡的都會被我刪除。

Win81_Hyper-V_network

要加入 Loopback 網卡需要手動加入。

首先透過裝置管理員 新增傳統硬體

AddNewHardware

依下面畫面逐步操作。

CustomSelect

NetworkInterface

SelectLoopBack

由於 Hyper-V 的顯卡只有 65536 色,大部分情況我會改用遠端桌面操作 虛擬機 。

臨時要用 TeamViewer 時,我會停用 Loopback 網卡,避免 TeamViewer 記憶 ID 。

Categories: 工作點滴 | 標籤: | 2 則迴響

在WordPress.com寫網誌.

%d 位部落客按了讚: