協同設計室

2018 年春天, 在電腦輔助設計室旁一間約十坪大小的空間, 成立了所謂的協同設計室, 希望透過多人協力一同, 解決與電腦及網路軟硬體相關問題.

Windows 10 的更新之罪

Windows 10 自推出以來, 每一次的更新都掀起論戰, 連最近的 1803 升級, 也不例外.

許多網站更教導使用者如何阻止 Windows 10 更新, 因為微軟多多少少藉著更新, 強力放送自家相關產品與服務.

儘管這些置入性行銷不怎麼討喜, 但是從 Windows 7 到目前的 Windows 10, 微軟加諸在這一系列產品的用心, 令人印象深刻, 因此在這個階段, 協同設計室反而建議大家照單全收 Windows 10 的各項網路服務, 再過一段時間, 當大家都明確感受到 AI 人工智慧組態設定的貼心之後, 應該對於 Windows 10 緊密透過網路提供的各項置入性行銷, 就不會再有排拒之想了.

如何與還原卡共存

一旦決定與 Windows 10 的密集更新政策和好, 接下來電腦輔助設計室所面臨的問題是: 該如何與還原卡共存?

理論上, 作為每一學年有將近千人入學的機械工程群, 在新生報到時直接發給一台完整裝載合法套件, 並且至少保用四年的 17 吋筆電, 應該是最理想的規劃, 因為如此, 每一門課都可以沉浸在數位整合環境之中 (意思是學生除了上課滑手機之餘, 還可以滑筆電:-), 只是事與願違, 這個理想與貼在四週牆上的"禁止使用非法軟體"標語一樣, 超級與現實脫節 (這一定是玩笑話了).

在無法每位學員人手一台筆電的情況下, 幾乎每一時段都有兩門至四門的必修電腦課程時, 一個系所就必須維護大約 180 台 Windows 10, 總共四間 電腦教室, 而這些電腦都分別使用群準 EVOsys Pro v6 與 UEFI v8 還原卡, 因此接下來的議題是, 為數不少的 Windows 10 電腦該如何與還原卡共存?

除了勤作網路拷貝之外, 目前還找不到答案, 大家不要忘記: 我們已經決定舉雙手, 完全接受微軟 Windows 10 操作系統的各種密集更新!

電腦分類

目前電腦輔助設計室所使用的還原卡為 Evo Pro v6, 採 MBR (Master Boot Record) 分割硬碟, 而協同設計室則使用 Evo UEFI v8, 採用 GPT (GUID Partition Table) 格式分割硬碟. 其中, 電腦輔助設計室的電腦皆為 client, 而協同設計室則有 client 與 Virtualbox 上的 Ubuntu 18.04 LTS (Long Term Support) Server + ubuntu-desktop.

電腦輔助設計室共 65 台電腦的規格為: 華碩 Skylake MD790/I7-6700, Intel 第六代 Core i7/3.4GHz/8M CPU, 採用 Intel Q170 晶片組, 搭載 16GB DDR4/2133/288 Pin 記憶體 (8 GBx2), 2 TB-SATA3 硬碟, Asus MINI-GTX950-2G 顯示卡 (支援 PCIE 3.0, OpenGL 4.5, 768 個CUDA 核心數), 500瓦電源供應器, USB 3.1x2 (10GB/s) , USB 3.0x6 (5GB/s), USB 2.0x2 (480MB/s), 以及 群準的 EVOsys PRO v6 還原卡, 可同時支援 D-sub、HDMI 及 DisplayPort 三台獨立顯示器多工作業.

這批華碩電腦在安裝群準的 EVOsys PRO v6 還原卡之前, 必須先將 Asus UEFI BIOS Utility 中 Boot 功能表下的 secure boot 中的 OS Type, 由內建的 Windows UTFI OS 改為 Other OS, 否則無法在開機後導引到 EVOsys PRO v6 還原卡功能選項.

進入 EVOsys PRO v6 還原卡選項後, 以全新安裝分割硬碟, 一般 Windows 7 與 10 操作系統的資料類別為 A, Ubuntu 選 B, 而 swap 磁區則選擇 P, 分割完成後, 透過 EVOsys 所規劃的開機表單, 選擇 Windows 10 後按下 Enter, 可以進入該硬碟分隔磁區, 但是尚未安裝操作系統, 因此會出現無法開機提示, 這時以 Ctrl+Alt+Del 重新開機後, 可以透過 F8 導引到光碟機開機後進行 Windows 10 操作系統安裝, 這點與 EVOsys UEFI v8 版本功能有明顯差異, 因為 EVOsys UEFI v8 版本提供選擇開機表單中的操作系統選項後, 可以透過 Ctrl+i 執行操作系統安裝, 系統會直接導引到光碟機或 USB 開機選項.

至於協同設計室中的 CD06 電腦充作伺服器使用, 實體操作系統為 Windows 10, 內部則有兩台 Virtualbox 虛擬 Ubuntu 18.04 server + ubuntu-desktop, 虛擬主機與 Windows 10 同步啟動服務採用 vboxvmservice, /etc/netplan 中 IPv6 固定 IP YAML 檔案設定如下:

network:
    ethernets:
        enp0s3:
            addresses: 
                - 2001:288:6004:17:0811::cd06/64
            gateway6: 2001:288:6004:17::254
            nameservers:
                addresses:
                    - 2001:b000:168::1

    version: 2

虛擬 Ubuntu 18.04 中的 Fossil SCM

Stunnel 與 Fossil SCM 安裝

sudo apt update
sudo apt install stunnel4 -y
sudo apt install fossil

環境變數與開機啟動設定

/etc/environment 設定:
HTTPS=on
/etc/default/stunnel4 檔案設定:
ENABLED=1

Stunnel 設定並執行 fossil http 指令

首先在 /etc/stunnel 目錄中建立 localhost.key 與 localhost.crt:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout localhost.key -out localhost.crt

/etc/stunnel/stunnel.conf 設定檔案, 可同時支援 IPv4 與 IPv6 協定:

[https]
accept = your_IPv4_ip:443
accept = :::443
cert = /etc/stunnel/localhost.crt
key = /etc/stunnel/localhost.key
exec = /usr/bin/fossil
execargs = /usr/bin/fossil http /home/cdlab/repository/cdlab.fossil --https --nojail

其中 --nojail 目的在 drop the root privilege but do not enter the chroot jail

重新啟動 stunnel4 則使用 /etc/init.d/stunnel4 restart

建立 cdlab.fossil 則進入 /home/cdlab/repository 目錄後, 執行 fossil init cdlab.fossil

上述設定完成後, 重新開機即可以 https://[2001:288:6004:17:0811::cd06] 連結至 cdlab.fossil 網際管理介面.