Windows 重裝系統,配置 WSL,美化終端,部署 WebDAV 伺服器,並備份系統分區
最近發現我 Windows11 上的 WSL 打不開了,一直提示我虛擬化功能沒有打開,但我看了下配置,發現虛擬化功能其實是開著的。然後試了各種方法,重裝了好幾次系統,我一個軟體一個軟體的試,最後發現是 Spacedesk 與 WSL2 不兼容,只要不裝 Spacedesk 就行了。我也正好趁這個機會,配置了一些其他的東西,比如終端的美化,WebDAV 伺服器的搭建,硬碟分區的備份等。
大體思路
先做個U盤啟動盤來裝 Windows 11 系統,然後配置一下系統和安裝各種軟體。之後用 Oh My Posh 來美化 PowerShell 和 Linux 終端。然後在區域網內的另一台 Windows 上部署兩個 WebDAV 服務,其分別掛載在本地以及阿里雲盤。最後再備份了一下系統分區,作用和一鍵還原備份差不多。
用到的東西
配置時最好參考官方的教程
-
簡單來說,Ventoy 是一個製作可啟動U盤的開源工具。
有了 Ventoy 你就無需反覆地格式化U盤,你只需要把 ISO/WIM/IMG/VHD(x)/EFI 等類型的文件直接拷貝到U盤裡面就可以啟動了,無需其他操作。
你可以一次性拷貝很多個不同類型的鏡像文件,Ventoy 會在啟動時顯示一個菜單來供你進行選擇。
安裝之後,同一個U盤可以同時支援 BIOS 和多種 UEFI 模式。
支援大部分常見類型的作業系統
-
WSL:(Windows Subsystem for Linux)
適用於 Linux 的 Windows 子系統可讓開發人員按原樣運行 GNU/Linux 環境 – 包括大多數命令行工具、實用工具和應用程式 – 且不會產生傳統虛擬機或雙啟動設置開銷。
-
Oh My Posh is a custom prompt engine for any shell that has the ability to adjust the prompt string with a function or variable.
Oh My Posh 是一個可自定義終端提示符的軟體,它支援任何種類的命令行環境,並能通過函數或變數來配置提示符的字元顯示
-
Cloudreve 可以讓您快速搭建起公私兼備的網盤系統。Cloudreve 在底層支援不同的雲存儲平台,用戶在實際使用時無須關心物理存儲方式。你可以使用 Cloudreve 搭建個人用網盤、文件分享系統,亦或是針對大小團體的公有雲系統
-
阿里雲盤 WebDAV 服務,主要使用場景為配合支援 WebDAV 協議的客戶端 App 如 Infuse、nPlayer 等實現在電視上直接觀看雲盤影片內容, 支援上傳文件,但受限於 WebDAV 協議不支援文件秒傳。
-
DiskGenius 是一款專業級的數據恢復軟體;支援文件恢復、分區恢復;文件預覽、扇區編輯、加密分區恢復、Ext4分區恢復、RAID恢復等高級功能
DiskGenius 是一款經典的硬碟分區工具 。創建分區、刪除分區、格式化分區、隱藏分區、分配盤符等基本功能外,DiskGenius 還提供快速分區、無損調整分區大小,分區表備份恢復等更多高階功能。支援GPT分區格式,支援EXT4文件系統。
DiskGenius 還是一款強大的備份軟體,可以方便的備份或克隆硬碟或分區;支援增量備份及多點還原、熱備份、系統備份等眾多特性。
系統重裝
先做個U盤啟動盤出來重裝系統,順便在U盤裡放個 PE 系統鏡像,方便以後配置電腦。
製作 Ventoy U盤
安裝U盤啟動盤時,整個U盤會被格式化,有重要數據的話,記得提前保存
安裝完成之後,可以把 Ventoy U盤當成一般的U盤來使用,不會影響U盤的引導。
配置 Ventoy 插件( VentoyPlugson )
Ventoy 支援許多的插件,這裡我只配置了「指定搜索目錄」,主要是為了加快鏡像的搜索速度。當然你也可以不配置,一般搜索鏡像的速度都是比較快的。
指定搜索ISO文件的根目錄。默認Ventoy會搜索U盤上的所有目錄和子目錄,當你U盤上有海量的文件時,這個過程會很慢。
這種情況下你可以把ISO文件單獨放在某個目錄下,然後通過這個變數來指定搜索路徑,此時Ventoy就只會搜索該目錄及其子目錄。
Ventoy 插件裡面有一個數據持久化插件,如果想在 Linux LiveCD 中保存數據的話,可以試試這個插件。
下載系統鏡像
Windows 和 Linux 的鏡像都可以,不過如果要在 Windows 11 上用 QQ 的話,要用簡體中文版的鏡像。我開始用的英文版鏡像,QQ 就一直說我文件損壞,後來改用簡體中文版後才正常。
下完了鏡像後,就直接把鏡像文件複製到U盤裡(任意位置都行),當然也可以在U盤裡放一些軟體安裝包,方便裝完系統後安裝。
製作 PE 鏡像
這裡我做了個 PE 的鏡像文件,放到U盤裡,方便以後電腦有什麼問題時,可以用U盤進 PE 系統解決。比如,可以用 PE 來修復系統引導,或者恢復系統盤數據等。
做好 PE 的 ISO 鏡像後,和系統鏡像一樣,放到U盤裡就行。
安裝系統
- 插上U盤,重啟電腦,進入 BIOS 選擇U盤啟動。
- 然後選擇要安裝的鏡像,電腦問你要系統激活碼可以跳過,我選的是 Windows 11 的 Pro 工作站版,感覺這個版本的功能要全一點。
- 然後就是選擇要裝到哪個地方,可以先刪除之前的分區,然後選擇整個硬碟或者某個未分配的區域,來安裝系統。
- 之後就是電腦開始從U盤安裝系統了,在電腦讀取完了U盤的數據之後,就可以拔掉U盤了,然後等它重啟。
- 之後進入了設置介面,按步驟走就好,唯一要注意的就是帳號的登陸。我這選擇的是離線登陸,如果你這裡選的是在線帳號登陸的話,系統用戶名就會變成你登陸帳號的前幾位,以後進命令行也是這個名字。離線登陸的話,進入系統後顯示的用戶名則是自己輸入的名字。
配置系統
進了系統就是配置各種 Windows 設置裡面的東西了,比如改改任務欄軟體圖標或者刪一些不用的軟體,最重要的是記得更新系統。當然你也可以對硬碟進行分區,我一般用 DiskGenius 來進行硬碟操作。
我之後重定位了,文檔、下載、音樂、圖片、影片的文件夾位置,這樣就不用以後一個一個更改瀏覽器或者下載軟體里的下載位置了
安裝軟體
然後就是安裝軟體了,比如 7z,運行庫,Clash(代理軟體),Docker 等。有些軟體可能需要我們進 Windows 商店裡面下載(比如,Ubuntu),我發現如果要進商店的話,要先把 Clash 代理關了,不然進不去。
要想添加開機自啟程式的話,可以在文件瀏覽器的地址欄中輸入 startup
,會自動跳轉到開機自啟文件夾,我的位置是 C:\Users\Admin\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
這裡要特別注意某些軟體可能和 WSL2 不兼容,比如 Spacedesk。如果想要用 WSL2 的話,就不要裝 Spacedesk(我現在目前 Spacedesk 的最新版為 Beta RC v1.0.29)
安裝 WSL
這裡我是通過安裝 docker 來安裝 WSL 的, 不過 docker 安裝的是 WSL1,在安裝時 docker 會提示你需要升級到 WSL2,官方有教程。
以管理員身份打開 PowerShell 並運行:
-
啟用適用於 Linux 的 Windows 子系統:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
-
啟用虛擬機功能:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
-
將 WSL 2 設置為默認版本:
wsl --set-default-version 2
-
安裝所選的 Linux 分發,我這選的是 Ubuntu,安裝好後打開,設置一下用戶名和密碼,就可以正常使用 WSL 了。
配置終端
這裡我用的終端是系統自帶的 Windows Terminal,然後通過 Oh My Posh 來配置終端,主要是因為它同時支援 Windows 和 Linux。
先裝一個 Nerd Font 字體 防止裝完 Oh My Posh 後出現亂碼,我裝的是 Hack Nerd Font,然後記得更改一下 Windows Terminal 的默認字體就行了。
Windows 終端配置
Oh My Posh | Installation | Windwos
-
安裝 Oh My Posh :
winget install JanDeDobbeleer.OhMyPosh
-
替換現有提示符,先用
$PROFILE
找到 PowerShell 啟動時的腳本(沒有就在對應位置新建一個同名文件)。比如我的:PS C:\Users\Admin> $PROFILE D:\Document\PowerShell\Microsoft.PowerShell_profile.ps1
-
在
Microsoft.PowerShell_profile.ps1
腳本文件中添加一行命令 :oh-my-posh --init --shell pwsh --config ~/jandedobbeleer.omp.json | Invoke-Expression
之後重啟終端,就能看見新的提示符了。
-
不過我這裡自己更換了另一個更喜歡的主題 craver,如果你不換主題的話,這一步就不用看了。我把剛剛那個
Microsoft.PowerShell_profile.ps1
腳本里的~/jandedobbeleer.omp.json
更改為了~\AppData\Local\Programs\oh-my-posh\themes\craver.omp.json
,然後再重啟終端就行了。或者直接下載網上 json 文件並配置。
WSL 終端配置
WSL 的配置大體和 PowerShell 一樣,不過我是在 oh-my-zsh 的基礎上配置的,主要是為了加強終端的功能,這裡我用的是 Ubuntu。
-
先更新一下 Ubuntu 系統:
sudo apt update -y && sudo apt upgrade -y
-
安裝 zsh, git, vim, unzip:
sudo apt install zsh git vim unzip -y
-
設置 zsh 為默認 shell:
chsh -s $(which zsh)
(或 chsh -s zsh) -
設置 WSL2 代理,後面從 Github 下載文件時可能會有 HTTP 的 443 錯誤,需要我們使用代理,這裡我用的是 Clash,埠號默認為 7890。如果不使用代理的話,從 Github 上下載文件可能會很慢。
在
~/.zshrc
文件最後添加如下腳本程式碼,以後每次 zsh 啟動時都會執行下面的程式碼,可以用剛剛安裝的 Vim 打開~/.zshrc
並添加程式碼。export hostip=$(cat /etc/resolv.conf |grep -oP '(?<=nameserver\ ).*') export https_proxy="//${hostip}:7890" export http_proxy="//${hostip}:7890"
-
安裝 oh-my-zsh:
sh -c "$(curl -fsSL //raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
-
配置 oh-my-zsh 插件,比如:
安裝 zsh-autosuggestions (可以自動提示以前輸過的命令):
git clone //github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
安裝 zsh-syntax-highlighting(可以使命令行的命令高亮):
git clone //github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
然後在
~/.zshrc
文件已有的 plugins 的欄位中添加插件名稱,例如plugins=( git zsh-autosuggestions zsh-syntax-highlighting )
-
同樣的安裝 Oh My Posh,就直接跟著官網的教程走就行。
Oh My Posh | Installation | Linux
下載 oh my posh:
sudo wget //github.com/JanDeDobbeleer/oh-my-posh/releases/latest/download/posh-linux-amd64 -O /usr/local/bin/oh-my-posh sudo chmod +x /usr/local/bin/oh-my-posh
下載主題:
mkdir ~/.poshthemes wget //github.com/JanDeDobbeleer/oh-my-posh/releases/latest/download/themes.zip -O ~/.poshthemes/themes.zip unzip ~/.poshthemes/themes.zip -d ~/.poshthemes chmod u+rw ~/.poshthemes/*.json rm ~/.poshthemes/themes.zip
-
替換現有提示符,在
~/.zshrc
最後添加下面的程式碼:eval "$(oh-my-posh --init --shell zsh --config ~/jandedobbeleer.omp.json)"
當然也可以把
jandedobbeleer
改成其他喜歡的主題,比如我改成了:eval "$(oh-my-posh --init --shell zsh --config ~/.poshthemes/craver.omp.json)"
然後重啟終端就行了
部署區域網 WebDAV 伺服器
我用區域網內的另外一台 Windows 來做下載器,在其上安裝了 Cloudreve 以及 aliyundrive-webdav 來實現 Webdav,操作則用 Windows 自帶的遠程桌面來控制。cloudreve 主要是用來在兩台 Windows 之間傳輸文件的,aliyundrive-webdav 則是部署阿里雲盤的 webdav 服務。webdav 的客戶端的話,我則是用的是 Raidrive
配置 Windows 遠程桌面
先在被控制的電腦上打開遠程控制,然後找到其的 IP 地址。比如我用 ipconfig
找到本地的 IPv4 地址為 192.168.1.7
。當然,你也可以不用遠程控制,直接在另一台 Windows 電腦面前操作。
這裡最好配置一下路由器的 DHCP ,為其靜態分配一個固定的 IP 地址,以後連的時候就不用再看地址了。然後在控制端打開遠程桌面連接,輸入被控制電腦的 IP 地址,連上就行了。
配置 Cloudreve
在被控制的電腦中打開 cloudreve.exe
即可,第一次啟動時會提示一次用戶名和密碼,以後啟動時就沒有提示了,所以要注意保存。
然後在瀏覽器打開 localhost:5212
就能看見 Cloudreve 的前端網頁了,之後添加一個 WebDAV 帳號,它默認使用的是本地(被控制設備)存儲,這樣就能在兩台電腦之間傳輸文件了。其實遠程桌面連接,支援直接複製粘貼文件,不過每次都要打開遠程桌面手動複製粘貼,有點麻煩。
Cloudreve 默認每個用戶的容量為 1G,可以進 cloudreve 的後台更改用戶組的容量設置。
之後就是在主控制端的 Windows 上裝 Webdav 客戶端了,我用的是 Raidrive 因為其可以掛載 One Drive 和 Google Drive 等的其他存儲方式,而且配置功能也比較豐富。下面是剛剛配置的 Cloudreve 的 raidrive 配置,比如,埠 5212
,路徑默認/dav
,用戶名默認 [email protected]
,密碼則是剛剛創建的 Webdav 新帳號的密碼
配置 aliyundrive-webdav
我把阿里雲盤的 webdav 服務放在了被控制的 windows 上一直開著,比較方便,而且區域網內的其他設備也可以用。下面跟著 Github 上的說明走就行,我是用 docker 部署的服務:
docker run -d --name=aliyundrive-webdav --restart=unless-stopped -p 8080:8080 -v /etc/aliyundrive-webdav/:/etc/aliyundrive-webdav/ -e REFRESH_TOKEN='your refresh token' -e WEBDAV_AUTH_USER=admin -e WEBDAV_AUTH_PASSWORD=admin messense/aliyundrive-webdav
等同於在 Powershell 中的
docker run -d --name=aliyundrive-webdav --restart=unless-stopped -p 8080:8080 `
-v /etc/aliyundrive-webdav/:/etc/aliyundrive-webdav/ `
-e REFRESH_TOKEN='your refresh token' `
-e WEBDAV_AUTH_USER=admin `
-e WEBDAV_AUTH_PASSWORD=admin `
messense/aliyundrive-webdav
-
-v
:綁定的卷,這裡的這個卷主要是用來存放阿里雲盤的 refresh_token。前面的那個
/etc/aliyundrive-webdav/
是 windows 里的地址(我隨便改了個~/
地址)後面的那個
/etc/aliyundrive-webdav/
是 docker 容器里的地址 -
-e
:環境變數REFRESH_TOKEN
:阿里雲盤 refresh_token (獲得方法的話,作者在 Github 上有說)WEBDAV_AUTH_USER
:想要設置的 WebDAV 服務的用戶名(我直接默認的)WEBDAV_AUTH_PASSWORD
:想要設置的 WebDAV 服務的密碼(我直接默認的)
被控制的 Windows 上的 docker 運行正常後,就可以在主控制端配置 webdav 了,我順便還連上了 OneDrive 和 Google Drive
備份分區/磁碟
這次配置系統,不知道出了多少的問題(主要是因為 Spacedesk 和 WSL2 不兼容的問題),還把機械硬碟弄成了動態卷,然後又一不小心把機械硬碟的分區弄壞了。後來用 DiskGenius 重建分區表都只恢復了部分分區,感覺以後隨時都要注意備份分區和硬碟了。我前面弄的那個阿里雲盤 webdav 主要也是為了方便保存一些數據和系統備份鏡像,以免本地電腦出問題後花時間來重新配置系統。
這裡備份的時候,有兩種主要的方式:備份與克隆
備份只是生成一個鏡像文件,不會覆蓋其他分區的數據,而且鏡像文件移動起來也比較方便。如果還嫌麻煩的話,就直接用各種一鍵還原的軟體,還能自動的幫你裝啟動項和做U盤啟動盤,貌似 DiskGenius 官方就有一個叫易數一鍵還原的工具。
克隆則是直接把一個分區(或硬碟)的所有數據複製到另一個分區(或硬碟),而且會覆蓋掉另一個分區原有的數據。所以我個人認為,分區備份要方便一點,當然如果要進行系統遷移的話,還是最好用克隆硬碟的方式。
這以後如果在雲端能做的事情,我就盡量在線上操作算了,這樣就不用注意本地備份的問題了。
本文由 Tsanfer’s Blog 發布!