背景
- 機房電腦每次重啟還原
- 機房電腦有一個不還原盤
- 機房電腦每晚拉閘
- 機房電腦安裝了虛擬機器
- 機房電腦有 usb3.0
- 機房電腦記憶體還行,有 8GB
外設
強烈推薦購買一個行動硬碟,能上移動固態硬碟更好。絕對不要幻想機房電腦的儲存有多好。
加密
VeraCrypt 可以用來用於加密資料,這個非常重要。機房電腦終究是公共的,如果你把一些重要檔案或隱私檔案存到了非還原盤,那就存在被他人讀取的可能。這些檔案包括但不限於:
- 你的瀏覽器配置檔案,其中包括了你的 cookies,歷史記錄等
- 你的 ssh 金鑰
- 你的 gpg 金鑰
- 你的 v2ray 及其他翻牆軟體的配置檔案
- 你的各種 api token
- 你的部落格草稿
VeraCrypt 的使用十分簡單,並且全平臺通用。你可以選擇建立一個存在檔案中的加密卷,因為你不太可能對整個硬碟加密。記得設一個強密碼。比較推薦每隔一個星期就把整個加密硬碟備份到你的行動硬碟上,或者直接在行動硬碟上工作。USB2.0 傳輸速度最多就 60MB/s,備份一個 8GB 的加密卷就需要兩分多鐘。如果是 USB3.0 的話會快一些,但是也受限於機房的硬碟和你的行動硬碟的讀寫速度。
虛擬機器
系統
我們學校電腦裝了 vmware 虛擬機器,本來是用於裝 NOI Linux 的。如果你的機房電腦比較好,可以考慮裝 Windows 虛擬機器,不過 Windows 虛擬機器至少都要 40GB 硬碟,非常重,備份也比較麻煩,不推薦。可以使用一些更輕量的 Linux 系統(按照字典序排序):
- Arch Linux,如果你喜歡永遠更新到最新軟體,並且極大限度的自定義
- Debian,如果喜歡 Ubuntu 但你不喜歡 Ubuntu 的爹 Canonical
- Manjaro,如果你喜歡 Arch Linux 並且懶得自定義
- NOI Linux,如果你希望擁有和考場一致的虛擬機器環境
- Ubuntu,如果你不想要被 CCF 魔改過的系統,並且喜歡穩定且不需要更新的系統
Linux 的發行版多如牛毛,除此之外還有 Fedora, OpenSUSE,Deepin 等等。建議是在虛擬機上多試一試,再說了,你在機房也就寫寫程式碼,有個好用的編輯器就夠用了,大不了還可以自己編譯一個。
你可能需要在虛擬機器安裝的軟體:
- clang-format
- clangd
- firefox / chromium
- g++
- git
- make
- python
- v2ray
- vim / neovim
- vscode / vscodium
除了 vscode / vscodium 和 v2ray 可能需要自己下載,大部分發行版都提供了這些軟體包,沒必要糾結於發行版的選擇。
加密
虛擬機器最好也經過加密,可以直接放到 VeraCrypt 的加密硬碟中,但感覺效能不行,也可以用 Linux 的 dm_crypt 和 cryptsetup。有些發行版安裝時就提供了加密選項,非常方便。
備份
Linux 虛擬機器的話一般 20GB 左右就夠了,演算法競賽這麼多年寫的程式碼也而也沒多少,佔不了多大硬碟。也是推薦至少每週備份一次。
優勢
首先,使用虛擬機器可以輕鬆的備份,移動。如果需要換座位的話可以直接把虛擬機器複製下來。其次,虛擬機器可以放到非還原盤,每次走人時把虛擬機器 hibernate,回來時可以直接恢復工作狀態。但是注意,恢復工作狀態後要重新同步時間。
遠端桌面
雖然我不這樣幹,但還是提一嘴。可以再家裡架設一個伺服器,內網穿透一下,或者組個 VPN,就可以遠端桌面,但使用體驗和網路質量掛鉤,而且一定要注意安全。
雲盤
比較小的檔案,比如老師下發的課件,一些重要的程式碼可以用雲盤備份。國內的服務沒啥好的,就堅果雲還行,支援 WebDAV。國外的速度有不太好,免費的有 Onedrive,如果能翻牆可以用 Dropbox 和 Google Drive。還有一些物件儲存有免費額度,如 Cloudflare R2,BackBlaze B2,等。如果你願意,你還可以把檔案上傳到 ipfs 上,只不過上傳了就不太可能刪掉了。有錢的可以買雲廠商的儲存服務,但有點暴殄天物。
當然第三方服務從某種意義上來說都是公開給別人的(ipfs 是完全公開的),所以一定要加密。用雲廠商的儲存隱私性可能會好一點,畢竟是企業產品。不過最好還是能自己架設一個 NAS。
rclone 是比較通用的網盤同步工具,支援儲存服務極多。rclone 可以把配置檔案進行加密,可以(比較)放心地把網盤的 api-token 配置檔案存到機房。