[教學] 製作 USB Bootable Linux 手指並可以 Persistence 有儲存功能

本帖最後由 javacomhk 於 2022-4-15 12:21 編輯

Ventoy 教學可以製作多個 ISO USB Multi Bootable 手指如下,但這教學沒有提供方法如何製作可儲存 Linux ISO Persistence 內容儲存功能的 USB 手指。Ventoy 支持 Boot 起 Linux 的 ISO / Windows 的 ISO 並同時可以支持 Boot 起 Windows 的 VHD/VHDX files 去實現 Windows 儲存功能,但請注意 Boot 起 Windows 的 ISO 是沒有儲存功能的。
https://www.gdaily.org/23174/ventoy-iso

(1) Linux 的 ISO 除了可以用 USB 手指 Multi-boot 起,還可以有 Persistence (儲存內容)功能。即 USB 可以從多個 ISO 中選擇 boot 起個 Linux ISO 並可以在某些支持的 Linux ISO 在該 USB 手指儲存修改後的設定內容,例如時區,輸入法,wifi 設定及保留安裝一些常用 packages 或例如 Google Chrome Browser。此方法可以不用將 Dual Boot  / grub 菜單及 Linux partition 安裝在固定 Windows 電腦內,並可使用此 USB 手指在其他 Intel/AMD 電腦上,同時具備儲存內容功能在 USB 內。具體可以安裝多少個 ISO 或多少 persistence 內容就視乎你的 USB 手指容量,一般 8GB 的 USB 手指或以上就可以安裝一 個 Ubuntu ISO 加 4GB 左右 的 persistence 內容。但 persistence 功能亦有限制就是不能更新 kernel 或安裝 driver。

(2) 要實現 Linux ISO 的 Persistence 功能,可參考官方的文檔 Ventoy Persistence Plugin

(3) 以下教學,提供其中 Ubuntu 20.04 ISO 在 USB 手指實現 Persistence 的方法作例子:

(4) 安裝 ventoy 前要查看你的電腦是否有 Secure Boot enabled 及是否用 GPT 啟動方式,並選擇相應的設定安裝,否則該 USB 手指是啟動不了的。比較舊式的電腦是沒有 Secure Boot 及使用 MBR 啟動方式的,ventoy 的默認安裝也是這樣設定。新 一點的電腦是用GPT 啟動方式但可能沒有啟動 Secure Boot,詳情要在啟動電腦時進入 BIOS (例如按著 F2) 查看相關設定。安裝好 ventoy 在 USB 手指後(例如 ventoy 是在 E Drive),在 USB 手指創建以下 Folders,"E:\iso", "E:\persistence", "E:\ventoy"後,並將已下載的 Ubuntu ISO 抄到USB 手指內為 "E:\iso\ubuntu-20.04.4-desktop-amd64.iso"。

如果 Mac 機要裝 ventoy 就要用佢個 Live CD ISO 裝落 USB 手指,然後 boot 起隻 USB 手指後安裝落另一隻 USB 手指。

(5) 下載 persistence image, 從 https://github.com/ventoy/backend/releases 下載 images.zip,解壓後再解壓其中的一個檔案 persistence_ext4_4GB_casper-rw.dat.7z (可以用 pkunzip或winzip或winrar 解壓 7z檔案) 後抄到USB 手指內為 "E:\persistence\persistence_ext4_4GB_casper-rw.dat"

(6) 用 notepad 創建 "E:\ventoy\ventoy.json",內容如下, "persistence" 的內容主要是第一個菜單可以支持多個 ISO 的 images 及對應的 persistence 儲存文檔, "conf_replace" 的內容是當選擇了第一個 ISO 菜單後進入第二個 Grub 菜單時替換原裝 ubuntu iso 的 grub menu 的 boot option, 替換後令到 Ubuntu 開始時不需要花時間去  checking disk 及去除 "Try Ubuntu" 的重覆提示。請留意字母的大細寫與上面的目錄及檔案名稱要一致,所以最好全部都是 lowercase, Windows 的 \ 就是 Linux 的 / 。
  1. {
  2.     "persistence": [
  3.         {
  4.             "image": "/iso/ubuntu-20.04.4-desktop-amd64.iso",
  5.             "backend": [
  6.                 "/persistence/persistence_ext4_4GB_casper-rw.dat"
  7.             ],
  8.             "autosel": 1,
  9.             "timeout": 5
  10.         }
  11.     ],

  12.     "conf_replace": [
  13.         {
  14.             "iso": "/iso/ubuntu-20.04.4-desktop-amd64.iso",
  15.             "org": "/boot/grub/grub.cfg",
  16.             "new": "/ventoy/ubuntu.cfg"
  17.         }
  18.     ]
  19. }
複製代碼
(5) 用  Windows File Explorer 打開 ubuntu ISO 下的 /boot/grub/grub.cfg 抄到為 "E:\ventoy\ubuntu.cfg", 並用 notepad 修改第一段  menuentry 內容
"Ubuntu 20.04"
maybe-ubiquity fsck.mode=skip
以下為修改後的第一段  menuentry 內容
  1. menuentry "Ubuntu 20.04" {
  2.         set gfxpayload=keep
  3.         linux        /casper/vmlinuz  file=/cdrom/preseed/ubuntu.seed fsck.mode=skip quiet splash ---
  4.         initrd        /casper/initrd
  5. }
複製代碼
(6) 儲存修改後,重啟電腦,進入 BIOS (例如按著 F2,可以是 F1,F10,F12,Esc 或 Shift 鍵,視乎你的電腦/底板製造商),在 BIOS 內選擇優先用 USB boot 機。

(7) 如果 persistence_ext4_4GB_casper-rw.dat 有 4GB不夠用,而你的 USB手指仍有空位,可參考 官方文檔的第 5 點 Extend persistent dat file 去擴大容量。例如在 Windows WSL2 或 Linux 系統中的指令是
  1. # 下載 ExtendPersistentImg.sh
  2. wget https://www.ventoy.net/download/ExtendPersistentImg.sh
  3. # 擴大 2GB persistence image 容量
  4. sudo ./ExtendPersistentImg.sh persistence_ext4_4GB_casper-rw.dat 2048
複製代碼
(8) 如果是 Kali Linux,persistence.dat 類型需要是 ext3, 例如在 Windows WSL2 或 Linux 系統中的創建指令是
  1. # 下載 CreatePersistentImg.sh
  2. wget https://www.ventoy.net/download/CreatePersistentImg.sh
  3. # 製作 8GB Kali Linux 的 ext3 persistence image
  4. sudo ./CreatePersistentImg.sh -t ext3 -l persistence -c persistence.conf -s 8192 -o persistence_ext3_8GB_kali.dat
複製代碼

本帖最後由 javacomhk 於 2022-4-7 11:25 編輯

如果要加隻例如 Debian ISO,就要去下載 nonfree 嘅 ISO, 一般都有較多 driver 。
例如 : debian-live-11.2.0-amd64-kde+nonfree.iso

(1) 將 debian-live-11.2.0-amd64-kde+nonfree.iso 放入去 "E:\iso"

(2) 將 "persistence_ext4_4GB_persistence.dat.7z" 解壓為"persistence_ext4_4GB_persistence.dat"  放入去 ""E:\persistence""

(3) 修改 ""E:\ventoy\ventoy.json"" 為
  1. {
  2.     "persistence": [
  3.         {
  4.             "image": "/iso/ubuntu-20.04.4-desktop-amd64.iso",
  5.             "backend": [
  6.                 "/persistence/persistence_ext4_4GB_casper-rw.dat"
  7.             ],
  8.             "autosel": 1,
  9.             "timeout": 5
  10.         },
  11.         {
  12.             "image": "/iso/debian-live-11.2.0-amd64-kde+nonfree.iso",
  13.             "backend": [
  14.                 "/persistence/persistence_ext4_4GB_persistence.dat"
  15.             ],
  16.             "autosel": 1,
  17.             "timeout": 5
  18.         }
  19.     ],

  20.     "conf_replace": [
  21.         {
  22.             "iso": "/iso/ubuntu-20.04.4-desktop-amd64.iso",
  23.             "org": "/boot/grub/grub.cfg",
  24.             "new": "/ventoy/ubuntu.cfg"
  25.         },
  26.         {
  27.             "iso": "/iso/debian-live-11.2.0-amd64-kde+nonfree.iso",
  28.             "org": "/boot/grub/grub.cfg"",
  29.             "new": "/ventoy/debian-kde.cfg"
  30.         }
  31.     ]
  32. }
複製代碼
(4) 用 Windows File Explorer 打開 debian-live-11.2.0-amd64-kde+nonfree.iso 將 /boot/grub/grub.cfg 抄去成為 "E:\ventoy\debian-kde.cfg"

(5) 修改 "E:\ventoy\debian-kde.cfg" 並增加以下 2 項 menuentry
  1. menuentry 'Run with persistence' {
  2.   linux  /live/vmlinuz-5.10.0-10-amd64 boot=live components persistence splash quiet "${loopback}"
  3.   initrd /live/initrd.img-5.10.0-10-amd64
  4. }
  5. menuentry 'Run and reset persistence' {
  6.   linux  /live/vmlinuz-5.10.0-10-amd64 boot=live components persistence persistence-reset splash quiet "${loopback}"
  7.   initrd /live/initrd.img-5.10.0-10-amd64
  8. }
複製代碼
(6) 儲存完成修改後便可重啟電腦,boot 起 USB 使用。debian username "user", password "live"

TOP

得閒搵隻舊 USB HDD 試試先, thx

TOP

留名學野

TOP