Win10 開啟 Hyper-V 安裝 CentOS 7 minimal
日常使用的 PC 環境一般都是 Windows 環境,如果需要偶爾使用 Linux 環境,一般情況下,大家的選擇是安裝虛擬機 VMWare 或者 Virtual Box。
但如果只是輕度使用,而你恰好使用的又是 Win10 ,在不需要純粹 Linux 環境的情況下,其實可以選擇 bash on win10 (bash on win10 的安裝方法此處不表),其基本可以提供接近 Linux 的環境。
但是 bash 環境畢竟不是純粹的 Linux 環境,如果要在工作中使用難免會遇到一些問題,這時候就不得不選擇虛擬機了。而虛擬機的選擇,除了上面提到的 VMWare 和 Virtual Box,其實還有一種 Windows 原生提供的虛擬技術——Hyper-V,可以選擇。
Hyper-V 可以在 Win7 及以上的桌面系統上運行,網上有一大堆文章可以介紹其各種優點,比如輕量,又或者可以直接與底層交互,等等……
但是我選擇它主要是因為我不喜歡虛擬機那種窗口里面套一個桌面的感覺,而 Hyper-V 由於是 Windows 原生支持的虛擬技術,我可以把虛擬機完全丟到后台執行,然后直接使用 ssh 連接虛擬機,就像開啟了一個 Linux terminal 一樣,在 Windows 下就可以直接使用原生 Linux。而且 VMWare 和 Virtual Box 每次關機前都需要對虛擬機做保存操作,而 Hyper-V 關機的時候則不需要任何操作便可自動保存工作狀態,而且可以設置為自動啟動,就可以跟隨宿主機關機開機,完全不需要額外操作。
當然網上也會有各種文章說它哪里哪里不好,比如有人吐槽它系統支持不夠全面,或者在 SSD 磁盤上無法完全發揮出 SSD 的性能,以及圖形化界面的支持簡直是渣渣,等等……但是這些缺點並不在我的關注列表,所以倒是不影響我的選擇。
此處記錄一下我在開啟 Hyper-V 安裝 Linux 環境時遇到的一些問題,算是一篇筆記吧。
我的 PC 環境是 Win10 ,需要專業版或企業版才支持開啟 Hyper-V ,我在家里自己的電腦是自己安裝的系統,裝的是專業版,所以可以直接開啟 Hyper-V。而公司的電腦由於是筆記本,購買的時候原生系統是 Win10 家庭版,不支持 Hyper-V ,所以只能在網上找秘鑰升級到專業版或企業版,然后再開啟 Hyper-V。!!注意,網上找到的秘鑰升級系統后是非激活狀態,如果你沒有手段激活自己的系統,又很在意不願意使用非激活系統,請不要隨意嘗試。!!
這里說一下 Win10 下的一個小技巧,按快捷鍵
Win+s,或者你在任務欄開啟了 Cortana ,可以直接點擊 Cortana 打開搜索欄,這里可以直接輸入想運行的程序的名字,完成快速啟動。對於有桌面潔癖,不願意放很多快捷方式,或者嫌軟件路徑太繁瑣的時候可以靈活使用這種方式。
打開 Cortana 搜索 Hyper-V ,由於默認沒有安裝 Hyper-V ,這時搜索欄出現的應該是 啟用或關閉 Windows 功能。打開 啟用或關閉 Windows 功能,對於 Win10 來說,在一級目錄樹下就可以看到 Hyper-V ,勾選它,然后確定,系統會自動安裝並提示你重啟。
重啟完成后按剛才的辦法搜索 Hyper-V ,現在可以看到 Hyper-V 管理器,打開管理器,右側可以新建虛擬機。
此時就可以選擇要安裝的系統了,我選擇的是 CentOS 7 minimal ,因為我使用 ssh 連接不需要圖形界面,而且 Hyper-V 對 Linux 的圖形界面支持也並不好,不像 VMWare 和 Virtual Box 那樣的黑科技可以做到桌面大小隨窗口大小自適應,所以干脆就最小化安裝了。
去官網下載好 ISO 映像,在 Hyper-V 管理器 下新建虛擬機,填好各種參數,其中名稱隨意,虛擬機存儲位置自行選擇,虛擬機代數我選的第二代,內存默認,網絡先不連接,虛擬硬盤新建一個,然后在安裝選項中選擇從可啟動的 CD/DVD-ROM 安裝操作系統,再選擇剛才下好的 ISO 映像,點擊完成。
由於剛才的網絡沒有連接,所以先為虛擬機創建一張網卡。在 Hyper-V 管理器 頁面,右側選擇 虛擬交換機管理器,然后 新建虛擬網絡交換機 ,設置好名字,並選擇外部網絡,網卡選擇實體網卡,然后確定,新建網卡完成。然后在 Hyper-V 管理器 右擊虛擬機,選擇 設置 打開設置頁面,在左側選 網絡適配器 項,右側 虛擬交換機 選擇剛才新建的網卡,然后確定。
雙擊新建的虛擬機,然后啟動虛擬機安裝系統。安裝的時候遇到一個問題,剛開啟的時候屏幕提示
PXE Network Boot using IPv4 ( ESC to cancel )
Performing DHCP Negotiation.......
稍后屏幕跳轉,提示
Virtual Machine Boot Summary
1. SCSI DVD (0,1) The image's hash and certificate are not allowed (DB).
2. Network Adapter (00155D0A6500) DHCP failed.
3. SCSI Disk (0,0) No UEFI-compatible file system was found.
No operating system was loaded. Press a key to retry the boot sequence...
Note: Configuration changes may require the virtual machine to be reset.
映像無法啟動,安裝失敗。
強制關閉虛擬機,打開虛擬機 設置 頁面,在左側選 安全 項,關閉右側的 啟用安全啟動 然后重新啟動,問題解決。
系統的安裝基本傻瓜操作,大部分都按默認配置就好,設置好用戶,安裝完成后重啟,並在虛擬機的 設置 頁面取消掉 SCSI 控制器 - DVD驅動器 的映像文件,就可以順利進入系統。
由於是最小安裝,系統沒有圖形化界面,且網絡不通。登錄用戶,打開網卡配置文件,設置好網卡,再重啟網絡
打開網卡配置文件
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0然后找到
NOBOOT將no改為yes,保存退出后重啟網卡sudo service network restart由於最小安裝沒有
ifconfig,可以使用ip addr查看網絡狀態,是否獲取到 IP ,然后ping www.baidu.com看網絡是否通暢。
如果要使用ifconfig,可以安裝網絡工具sudo yum install net-tools安裝成功后,就可以使用
ifconfig了。
至此,虛擬系統就可以正常使用了。但是最小安裝的虛擬系統不支持鼠標,不可與 Windows 互通粘貼板,且窗口大小固定不可調節,而我希望的是可以在 Windows 下無縫使用,所以我還需要開啟 ssh 服務,然后才能在 Windows 下使用 ssh 連接,無縫使用。
首先修改 yum 的安裝源為國內鏡像,可以提高 yum 安裝時的下載速度,這里隨便從網上找一段復制粘貼過來了(沒有 wget 工具可以使用 sudo yum install wget 來安裝):
以下片段截取自修改CentOS默認yum源為國內yum鏡像源
1、首先備份系統自帶yum源配置文件/etc/yum.repos.d/CentOS-Base.repo
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup2、下載ailiyun的yum源配置文件到/etc/yum.repos.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo3、運行yum makecache生成緩存
yum makecache4、這時候再更新系統就會看到以下mirrors.aliyun.com信息
yum -y update已加載插件:fastestmirror, refresh-packagekit, security 設置更新進程Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com
然后安裝 openssh :
查找工具
yum search ssh已加載插件:fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com ================================================ N/S matched: ssh =================================================fence-agents-ilo-ssh.x86_64 : Fence agent for HP iLO devices via SSH ksshaskpass.x86_64 : A KDE version of ssh-askpass with KWallet support libssh.x86_64 : A library implementing the SSH protocol libssh-devel.x86_64 : Development files for libssh libssh2.i686 : A library implementing the SSH2 protocol libssh2.x86_64 : A library implementing the SSH2 protocol libssh2-devel.i686 : Development files for libssh2 libssh2-devel.x86_64 : Development files for libssh2 libssh2-docs.noarch : Documentation for libssh2 openssh.x86_64 : An open source implementation of SSH protocol versions 1 and 2 openssh-askpass.x86_64 : A passphrase dialog for OpenSSH and X openssh-clients.x86_64 : An open source SSH client applications openssh-keycat.x86_64 : A mls keycat backend for openssh openssh-ldap.x86_64 : A LDAP support for open source SSH server daemon openssh-server.x86_64 : An open source SSH server daemon openssh-server-sysvinit.x86_64 : The SysV initscript to manage the OpenSSH server. pam_ssh_agent_auth.i686 : PAM module for authentication with ssh-agent pam_ssh_agent_auth.x86_64 : PAM module for authentication with ssh-agent sshpass.x86_64 : Non-interactive SSH authentication utility ansible.noarch : SSH-based configuration management, deployment, and task execution system jsch.noarch : Pure Java implementation of SSH2 openssh-cavs.x86_64 : CAVS tests for FIPS validation python-paramiko.noarch : SSH2 protocol library for python python-paramiko-doc.noarch : Docs and demo for SSH2 protocol library for python 名稱和簡介匹配 only,使用“search all”試試。查看列表,需要安裝的應該是 openssh ,這里也不管服務端還是客戶端了,一次都裝了吧
sudo yum install openssh openssh-server openssh-clients然后啟動 ssh 服務
systemctl start sshd在 Windows 下使用 ssh 客戶端連接虛擬機
我在 Windows 下使用的是 cmder ,一個模擬了 Linux 命令行的終端ssh -l 用戶名 虛擬機IP連接成功,提示輸入密碼,輸入密碼后操作正常,實現在 Windows 下無縫使用 Linux 終端
最后打開虛擬機的 設置 頁面,在左側的 自動啟動操作 標簽下,選擇自動啟動,並根據需要設置延遲多久啟動。這樣,只要不主動關閉虛擬機,虛擬機就可以隨着 Win10 宿主機關機開機,無縫體驗。
至於 ssh 的證書登錄以及 Linux 與 Windows 的文件交互后面再慢慢折騰吧。
最后說一下筆記本在使用 Hyper-V 的時候遇到的坑,由於筆記本沒有有線網卡,使用的是 Intel(R) Dual Band Wireless-AC 8265 的無線網卡,Hyper-V 在使用無線網卡創建虛擬網卡的時候會自動在無線網卡與虛擬網卡之間建立一個網橋,然后只要虛擬網卡是開啟狀態,網速就會奇慢無比,關閉虛擬機,禁用虛擬網卡后網速又可以恢復。這個問題在網上查了好久,看到有說法是需要關掉物理網卡的什么校驗,但是也有人發帖物理網卡里面並沒有這些功能,我嘗試着找了一下,確實沒有找到與校驗有關的功能,反倒是在家里的有線網卡上找到了這幾個配置。本來都有點想要放棄了,但是想着要不死馬當成活馬醫吧,改幾個配置試一下,然后在網卡的 屬性 -> 配置 -> 高級 里面恰好看到了兩個屬性 喚醒幻數據包 以及 喚醒模式匹配 ,突然想起來安裝系統還是創建網卡的時候隱約好像有看到過一句與網絡喚醒什么之類的有關的一個提示,將這兩個關掉后果然網速恢復。不太清楚里面到底發生了什么,反正問題解決了就好。
