用 Vultr 跑免費的官方正版 Windows Server
前幾天魚塔偶然發現了 微軟官方 的 Windows Server 免費版 。注意這裡的免費不是有限制的使用(如 180 天),而是無限制使用,並且 不需要啟用,免費下載 。聽到這些的你是不是激動了呢(真香!),不過這裡還是要潑個冷水:
-
該版本完全正版,無需啟用,免費下載安裝。
-
這個免費版是高度精簡的,幾乎就相當於 Ubuntu 伺服器。
-
沒有UI,進去就是命令列。
-
只帶有 Hyper-V(?)和一些其他東西
-
綜上所述,基本上和 Linux 伺服器差不多(霧
-
版本名叫 Microsoft Hyper-V Server(本文使用 2016 版)
如果能接受的話,跟著下面的 Step-by-step 教程走,即可在 Vultr 安裝這個版本。
0x00 認清形勢
(怎麼搞的跟考前學生會議似的 捂臉
先來輕點一下我們的需求:
- 用微軟官方的映象
- 在 Vultr 上安裝
- Vultr 只支援透過 HTTP(S) 連結加入自定義 ISO
- 而且需要在 ISO 內加入 Vultr 的驅動
- 所以需要修改 ISO
- 修改完需要上傳到自己的伺服器或其他地方做直鏈
- ISO 非常大
因為需要修改 ISO 並上傳,所以 強烈建議在自己的伺服器上完成這個步驟 (光速網路的使用者可以無視),因為 ISO 非常大(大概得有個 3 個多 GB),家庭網路上傳極為困難,而且容易出錯。在伺服器上完成這個操作可謂省時省力。
綜上所述,我們需要:
- 微軟官方 ISO
- Vultr 的驅動
- 一臺跑著 Linux 的伺服器(理論上 Windows 也可以)
0x01 下載映象
既然要裝系統肯定得有映象是吧(廢話),所以我們從微軟官方下載: https://www.microsoft.com/en-us/evalcenter/evaluate-hyper-v-server-2016 。填寫基本資訊之後就可以下載了,伺服器下載一般都很快,所以等個一兩分鐘就行。
之後再下載 Vultr 的驅動: https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.141-1/virtio-win-0.1.141.iso 同樣扔伺服器上。
然後我們需要 7z
軟體幫忙解壓縮 ISO 和 mkisofs
軟體幫忙打包 ISO,請自行安裝到伺服器。
最後,開啟 Vultr 的裝驅動教程,放瀏覽器備用。地址: https://www.vultr.com/docs/windows-custom-iso-with-virtio-drivers
至此準備活動已經做完,請同學們每人拿一個足球之後排成兩隊站好(霧
0x02 加入驅動
你的驅動沒裝好,你的系統兩行淚。安裝系統的時候需要建立分割槽,沒有驅動的話硬碟都找不到還建你 :racehorse:。
先在伺服器上建個資料夾,一會的 ISO 會被解壓到這裡(已經單獨放資料夾的同學請忽略):
~ $ ls -l virtio-win-0.1.141.iso 14393.0.161119-1705.RS1_REFRESH_SERVERHYPERCORE_OEM_X64FRE_ZH-CN.ISO ~ $ mkdir win/ ~ $ cd win win $ mv ../14393.0.161119-1705.RS1_REFRESH_SERVERHYPERCORE_OEM_X64FRE_ZH-CN.ISO . win $ mv ../virtio-win-0.1.141.iso.
之後開始解壓,請確保有充足的磁碟空間(把小電影刪了就夠了):
win $ 7z x 14393.0.161119-1705.RS1_REFRESH_SERVERHYPERCORE_OEM_X64FRE_ZH-CN.ISO win $ ls -l 14393.0.161119-1705.RS1_REFRESH_SERVERHYPERCORE_OEM_X64FRE_ZH-CN.ISO virtio-win-0.1.141.iso sources boot setup.exe ........(其他 ISO 內檔案)
之後建個單獨的資料夾用於存放驅動,比如叫 driver
,然後把驅動 ISO 扔裡面來解壓:
win $ mkdir driver win $ cd driver driver $ mv ../virtio-win-0.1.141.iso driver $ ls -l virtio-win-0.1.141.iso
再把驅動解壓出來:
driver $ 7z x virtio-win-0.1.141.iso driver $ ls .....(驅動檔案)
好了,到現在為止我們的 ISO 已經可以建立了,不過記得把無用檔案拿走,畢竟誰都不想 ISO 裡面套個 ISO 對吧((
driver $ cd .. win $ cd .. ~ $ ls -l win ~ $ mv win/14393.0.161119-1705.RS1_REFRESH_SERVERHYPERCORE_OEM_X64FRE_ZH-CN.ISO . ~ $ mv win/driver/virtio-win-0.1.141.iso . ~ $ ls -l win 14393.0.161119-1705.RS1_REFRESH_SERVERHYPERCORE_OEM_X64FRE_ZH-CN.ISO virtio-win-0.1.141.iso
完事了之後 win
就是要成為 ISO 的目錄,稍後我們去建立,先 calm down。
0x03 建立 ISO
先回顧下上一節:
~ $ ls -l win ... (其他 ISO)
這個 win
就是 ISO 的根目錄,它包含 Windows Server 安裝檔案和必要驅動,我們需要把它打包成 Bootable ISO。
這時候就需要 mkisofs
出場了,執行下面這個命令來建立 ISO(感謝 Telegram @XJ1qia0 巨佬的無私幫助):
~ $ genisoimage -b "boot/etfsboot.com" --no-emul-boot \ --eltorito-alt-boot -b "efi/microsoft/boot/efisys.bin" --no-emul-boot \ --udf --hide "*" -V "ISO 標題,隨便填" -o "ISO 檔名" ISO 目錄(這裡是 win)
比如說我這裡就應該是:
~ $ genisoimage -b "boot/etfsboot.com" --no-emul-boot \ --eltorito-alt-boot -b "efi/microsoft/boot/efisys.bin" --no-emul-boot \ --udf --hide "*" -V "SERVER" -o "free_windows.iso" win
按下回車,跟著 cxk 打會籃球,之後 ISO 就會躺在當前目錄。
待 ISO 建立完畢就可以把它扔到網上了,自己弄個 Nginx 啥的就行,不多說。
之後開啟 Vultr 網站,建立 ISO,填入你的連結,再打會籃球。
0x04 開機
再次 Calm down 請。
開啟 Vultr 網站並新建機器,無需多說,這裡講幾個注意事項:
- Server Type 裡面選 Upload ISO,然後選你剛上傳的 ISO。
- Server Size 個人建議至少 4G 記憶體,Windows 就別圖便宜了。
- 沒了。再說的話就是準備錢包。
之後很快就會提示你準備就緒,這時候開啟網頁版 VNC,因該會出現如下介面:
欸欸欸?不是掛了自己的 ISO 了嘛(
只能告訴你別急,急得話按幾次 Ctrl+Alt+Del
。Vultr 一會就會給你掛上然後重啟機器的,Calm down。
一會就出現了,如圖:
0x05 安裝
安裝比較簡單,按照嚮導走就行了,唯一要注意的就是驅動的安裝。
選自定義:
發現沒有分割槽,之後點 載入驅動程式:
出現下面這個介面
這時你就會發現打包驅動的作用了。挨個點 瀏覽,然後導航到 DVD / drivers(你新建的驅動資料夾),如圖所示:
然後 分別開啟每個目錄 。之後裡面可能會有很多資料夾,根據一開始你瀏覽器裡邊的 Vultr 官方驅動安裝教程走,每個資料夾都代表不同的 Windows 版本。如果你在裝 Windows Server 2016 就選 2k16
。進入後選 amd64
,點確定。如果點了確定出現了下面這個 Dialog,則說明選錯了(沒有根據 Windows 版本選資料夾不會出錯):
如果沒彈出就是選對了。如果列表裡沒有出現你的驅動沒關係,可能是不相容,可以取消勾選 隱藏與此計算機硬體不相容的驅動程式
。如果取消勾選後出現則確定是不相容,之後勾選回來。如果確定不相容可以不用管,繼續點 瀏覽
載入下一個即可。請注意,每次載入完一個驅動後都需要點 下一步
確認,才能再回來繼續載入下一個。
都載入完之後就可以看到磁碟了(我這裡載入完最後一個才看到,草):
這時候點 新建
然後無腦確定即可,之後會出現下面的樣子:
現在已經準備好安裝了,點 下一步
,等待魔法出現。上一些圖,不多說。
之後會自動重啟,不必擔心,Vultr 預設從硬碟啟動。
0x06 配置 + 體驗
(講真我不會配置的)
裝好之後應該很簡單了,按照螢幕所示配置即可。當然,我也不知道為什麼遠端桌面連不上,別問我啊,只管上圖:
好了,至此 Windows Hyper-V Server 的體驗就告一段落了,是不是準備刪機了?(霧