2021年9月25日 星期六

(在 Windows 底下) 製作 UEFI 版 「貴哥實驗室」 開機隨身碟 (救命碟)

現在大部分的電腦都支援 UEFI 開機, 所以新版的貴哥實驗室開機光碟也跟著配合支援 UEFI。 拿它來製作開機隨身碟的過程可以全程在 Windows 底下完成。

感謝蘇浚緯助教製作以上教學影片。 (2021/9/20)

  1. 這裡這裡 下載最新的ISO檔, 還有對應的 uefi 開機檔。 [2024/9/15] 以目前最新的版本來說, 就是要下載 24/gx24B-debian-trixie.iso 跟 24/g24B-1-uefi-boot-files.tgz 這兩個檔案。 從今年開始, 檔案名稱改成 「版本字串放在前面」, 比較容易一眼就找到最新版。
  2. 在 Windows 底下打開檔案總管、 確認你的隨身碟採用的是 fat32 而不是 exfat 格式、 確認隨身碟還有足夠的空間 (至少要有 6G)
  3. 安裝解壓縮工具 7-zip, 用它把ISO檔的內容以及 *-*-uefi-boot-files.tgz 兩者都 解開來 放到隨身碟的根目錄。 (不是把整個很大的 iso 檔直接複製過去!)
  4. 隨身碟上應有的一些資料夾 確認隨身碟上的目錄長得類似右圖這樣。 (目前可能沒有 live-save/stux.img 這個檔。 沒關係, 這是等一下才要手動產生的。) 其中最重要的就是 EFI 資料夾, 在開機過程當中, 最早取得控制權的就是這裡面的幾個檔案, 包含 BOOT*.EFI 及設定檔 extlinux.conf。 電腦會根據 extlinux.conf (只是一個文字檔, 可以用記事本或更好用的 geany 打開它檢視/編輯) 裡面的設定, 再到隨身碟的某處尋找核心 vmlinuz* 及初始檔案系統 initrd* 兩個重要開機檔案。 在某個資料夾裡, 有一個超級大的檔案 *.squashfs 複製的時間特別久, 它就是 (經過壓縮,變成唯讀的) 整個 linux 作業系統的 root file system。 (就是類似於 windows c: 儲存 windows 系統相關檔案的那個檔案系統。)
  5. 進入隨身碟上的 live-save 資料夾, 把一個空的檔案 stux.img 刪掉。 從 persistence-*.img.gz 裡面 [根據你希望保留給 Linux的空間大小來決定] 挑一個檔案把它複製成 stux.img.gz 然後用 7-zip 把它解壓縮, 最後會產生一個新的、 很大的 stux.img 。 有了它, 等一下開機選單底下的 "persistence" 選項才會生效, 你在 linux 底下做的事 (例如換桌面背景圖等等) 才會被記錄進隨身碟裡面。
  6. 電腦關機、 再重新開機, 並且按 Del 進入 UEFI。 在某處找到 secure boot 選項, 把它關掉。 (這樣安全嗎? 安全開機的真相 Will your computer's "Secure Boot" turn out to be "Restricted Boot"?) 在另外某處找到 boot order 把 「某某隨身碟的 UEFI」 選項放到第一個。 按下 「儲存並離開 UEFI」 。 接下來開機流程應該要進入貴哥版隨身碟的開機選單, 它提供以下幾個選項:
    1. forgetful [遺忘版] : 每次重新開機都像喝過孟婆湯一樣, 不記得以前發生過什麼事。
    2. persistence [有記憶版] : 這顆隨身碟就是你的筆記電腦, 借用任何一部電腦 (外國人的電腦也可以) 你都可以延續先前的工作階段。 這個是很實用的選項, 但是開機之後要開一個終端機、 下 df 指令, 確認一下你的 persistence 設定確實成功。 應該要看到這一列: /dev/loop1 ... /persistence/loop1 如果沒有這一列, 那麼就是 stux.img 設定失敗, 目前其實仍舊以 forgetful 的模式在執行。
    3. boot to ram [狂吃記憶體版] : 如果你的記憶體至少有 16G, 可以試這個選項。 開機時會花很多時間把整個 Linux 作業系統載入記憶體。 開完機之後, 就算把隨身碟拔掉、 硬碟光碟通通拔掉也都沒有關係。 你的電腦就算沒有任何儲存裝置, 照樣可以豪邁帥氣裸奔上網/聽音樂/看影片/...!

linux 開機流程 成功之後可以回到 Windows 底下用 geanynotepad++ 編輯 \EFI\BOOT\extlinux.conf 這個設定檔。 例如預設的設定是: 開機選單的游標停在遺忘版、 採用 alien-city.jpg 作為背景圖, 而它的解析度是 800x600:

default forgetful
menu background alien-city.jpg
menu resolution 800 600

這些都可以改。 當然也必須把你選定的背景圖放進這個資料夾, 還有, 圖片的解析度一定要正確填寫, 因為 開機載入程式 (boot loader) extlinux 在執行的時候, 還沒有作業系統或完整的函式庫可以幫它, 所以需要給它多一些提示。

下圖展示隨身碟上的設定檔 EFI\BOOT\extlinux.conf 裡面的設定如何對應到開機畫面的選單文字, 還有按下選項之後最先載入的兩個檔案。 開機時如果沒有看到左下角這兩個檔案, 那就是設定檔指定的位置跟你實際放置檔案的位置不一致。 [注意: 這只是示範! 你不應該一邊編輯隨身碟上的檔案, 一邊用隨身碟啟動虛擬機。 應先「退出隨身碟」或「安全移除隨身碟」。 我這裡用的其實是 extlinux.conf 的另一個 copy。 ]

extlinux.conf 裡面的設定值與開機畫面的對應關係

然後就可以跳到 從零開始的 linux 學習指南 的第二節, 開始學用 GNU/linux。

隨身碟可以當成筆記電腦; 從此以後全世界的電腦都是你的電腦! Windows 壞掉了也可以拿它來救援資料。 這麼好用的東西為什麼以前你都不知道? 恭喜你終於撕下眼罩, 歡迎你加入自由軟體社群, 睜開你的雙眼跟我們一起探索主流媒體和主流教育體系不希望人們看到的豐富世界。 歡迎來到可以自由研究甚至拆解玩具的玩具烏托邦!

沒有留言:

張貼留言

因為垃圾留言太多,現在改為審核後才發佈,請耐心等候一兩天。