在hyper-v虛擬機中安裝並配置linux

雖然都是自己寫的,還是貼個原文鏈接吧,如果文章里的圖片錯亂了,可能就是我貼錯了,去看原文吧。
⚠ 多圖警告

WSL2真香?

WSL2相比於WSL1前者更類似於虛擬機,配合上Windoes Terminal的漂亮界面以及通過localhost直接訪問,讓人直呼真香!

那麼WSL2真香嗎?

WSL2理所當然的可以運行docker,你可以把一些mysql、redis之類的服務放在docker容器里運行。

當有一天你會發現在使用systemctl命令的時候會報這樣的錯誤:

System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down

出現這個問題是有解決方案的,去google搜索也能找到教程,但是點進教程連接我就默默地離開了頁面(完全不想看)。

既然systemctl存在這樣的問題,那其他地方也可能存在着問題,不如就直接使用虛擬機了。

Hyper-V方案

1、開啟Hyper-V功能

在這裡默認為你覺得WSL2有問題才考慮使用虛擬機的,那麼你的設備一定開啟了Hyper-V功能。

另外的,如果你沒有使用過WSL2或者電腦系統為Windows10家庭版(Windows11家庭版),那麼你需要參考下面的操作(具體操作方式請自行搜索,下面幾步並非全部都是完成)。

  1. 如果你的系統為家庭版,你可以搜索家庭版開啟Hyper-V的教程。
  2. 如果你的系統為家庭版,你可以更換系統為專業版或者使用 藍點網 的系統版本轉換工具進行轉換(不論是更換系統還是進行轉換,都會失去原來的正版系統)。
  3. 如果你的系統是專業版,僅僅需要在控制面板>程序>啟用或關閉Windows功能中打開Hyper-V功能就可以。

2、Ubuntu鏡像下載

Ubuntu Server 22.04 LTS

寫這篇博客時的,最新server lts版本是22.04,目前沒有測試18.04。

3、創建虛擬機配置(暫時不安裝操作系統)

經過前幾步的配置後應該可以在Win菜單中搜索到Hyper-V 管理器,打開後界面如下:

點擊右側操作欄目的新建>虛擬機後會出現配置引導


點擊下一步進行配置


在這裡需要制指定一下虛擬機的名稱和虛擬機的存放位置。
如果是長期使用並且安裝較多軟件的話盡量選擇一個存儲空間足夠的位置。
設置完成後點擊下一步繼續。


這裡選擇第二代,然後下一步。


內存先使用默認的1024MB動態內存,後期可以調整內存大小。


先選擇Default Switch,默認的網絡連接用來連接互聯網,後面裝完系統後需要再新增一個網卡來固定虛擬機IP用來SSH連接使用。
選擇默認後點擊下一步。


暫時選擇不添加虛擬硬盤,點擊下一步繼續。


點擊完成等待虛擬機配置創建完成。

4、添加硬盤

點擊Hyper-V管理器主界面上前面幾步創建的虛擬機


在彈出界面上依次點擊SCSI控制器>硬盤驅動器>添加


在點擊添加後我們可以看到如下的界面,可以看到能夠使用虛擬硬盤和脫機的虛擬硬盤。

當我們有空閑的硬盤時可以考慮使用物理硬盤。

這裡先選擇創建虛擬硬盤,點擊新建按鈕


接下來回進入到虛擬硬盤創建引導。

這裡可以看到有三種模式。
當想要創建一個長期使用的虛擬機時建議選擇固定大小並分配較大容量。
現在做配置演示屬於臨時性的並且硬盤IO非常低,這裡我選擇動態擴展。


給硬盤一個名稱並指定位置,建議放在創建的虛擬機目錄下。


接下來是指定硬盤大小,如果是固定硬盤大小模式,這裡指定之後硬盤就會被初始化為指定的大小。
如果是選擇的動態擴展,這裡創建的虛擬硬盤文件小於這個最大值。
當然可以選擇複製物理硬盤或其他虛擬硬盤的內容到新的虛擬硬盤。


磁盤配置完成後會看到如下信息

5、添加系統鏡像

再點擊SCSI控制器>DVD驅動器>添加>映像文件選擇下載好的Ubuntu22.04系統鏡像。

6、啟動位置

點擊固件,調整啟動順序為如圖所示:

7、關閉安全啟動

點擊安全,把啟用安全啟動去掉勾選,然後點擊確定保存。

到這裡虛擬機的基本配置已經完成了,接下來就是啟動安裝系統了。

8、安裝系統

在主界面上選中我們創建的虛擬機右擊連接,在彈出窗口中點擊啟動。


等待幾秒後會出現選擇菜單,這裡我們選擇第一項安裝系統。


經過等待幾十秒後出出現語言選擇界面,然後選擇English


選擇正常安裝


網絡配置我們默認使用DHCP,這裡不要修改否則可能安裝完成後無法連接互聯網。

這個eth0網卡就的Hyper-V的Default Switch,它的IP地址是系統開機自動分配的,我們無法固定這個IP,後面將通過再添加一個網卡的方式實現固定IP連接SSH。


代理設置和源設置默認就可以


硬盤分區選擇,第一個方案,繼續。想自定義分區可以參考:UbuntuServer2204分區


這是默認提供的分區方案,我們可以看到free space還有60G+的空間。

選擇中free space後回車,選擇Create Logical Volume

設置如下配置後選擇Create繼續

設置完成後選擇Done繼續,會有一個確認提示,選擇Continue。


接下來就是常見的用戶信息設置了,設置完成後繼續。


這裡要選擇上ssh服務,如圖所示。


這一步是Snaps軟件安裝,一個都不要選,後面自己安裝需要的軟件。


接下來會進入安裝階段,等待出現Reboot Now選項。

選中reboot now,進行重啟,這裡一定會出錯,不過沒有關係,直接強制關機虛擬機就可以了。


接下來我們再次啟動虛擬機就可以進入系統了。

9、配置固定IP

在Hyper-V管理器主界面點擊右側的虛擬交換機管理器,點擊新建虛擬網絡交換機>內部>創建虛擬交換機

按照如圖所示的進行配置:


關閉虛擬機的系統,點擊選中虛擬機進行設置。
選中添加硬件>網絡適配器>添加

虛擬交換選中上面創建的10.10.10.254。

完成後保存虛擬機配置。


控制面板>網絡和Internet>網絡連接里可以看到上面配置的虛擬網卡。

需要給這個網卡配置固定的IP地址


啟動虛擬機的系統,進入系統後切換到root用戶

sudo su

更新軟件源

apt update

安裝net-tools

apt install net-tools

編輯/etc/netplan下的唯一一個yaml文件

vi /etc/netplan/00-installer-config.yaml

文件默認內容為:

# This is the network config written by 'subiquity'
network:
  ethernets:
    eth0:
      dhcp4: true
  version: 2

這裡的網卡不一定都是eht,也可能是ens

需要添加一個網卡eth1,修改這個文件內容為:

# This is the network config written by 'subiquity'
network:
  ethernets:
    eth0:
      dhcp4: true
    eth1:
      dhcp4: false
      addresses: [10.10.10.1/24]
  version: 2

應用配置

netplan apply

如果配置沒有錯誤,在windows實體機器上ssh [email protected]就可以連接到虛擬機的Ubuntu了。

10、優化虛擬機訪問

修改C:\Windows\System32\drivers\etc\hosts文件,在文件末尾添加

10.10.10.1 vmlinux1

在命令行中ssh ubuntu@vmlinux1就可以連接到系統了。

打開windows terminal,到設置中添加一項配置。
這裡我沒有設置圖標,如果需要的話可以自行設置。

這樣每次連接僅輸入密碼就可以了,如果覺得輸入密碼比較麻煩可以配置一下RSA密鑰。

如果想要像WSL一樣在資源管理器里就可以瀏覽linux文件,可以參考:sftp映射為win磁盤

11、掛載物理硬盤

要掛載物理硬盤必要條件是電腦是雙硬盤的,這裡要注意掛載的是硬盤不是分區。

首先將要掛載的物理硬盤清空所有分區(推薦使用 DiskGenius 來操作):

右擊磁盤選擇脫機。

得到如下狀態的磁盤:

在虛擬機設置窗口依次點擊SCSI控制器>硬盤驅動器>物理硬盤

只有存在脫機的物理硬盤這裡才能識別到具體的硬盤

完成後確定保存配置。

需要注意的是掛載了物理磁盤後就不能再使用檢查點了,需要關閉檢查點後才能啟動開機。

需要注意系統安裝到物理硬盤上後,如果BIOS的第一啟動項是這個硬盤的話,是完全可以啟動的。

所以要設置一下BIOS讓這個硬盤不會在第一啟動位

最終解決方案

Buy a Mac

Tags: