前置條件
-
垃圾U盤(懶得偵別是U盤、接口還是HUB問題,總之:)讀寫速度只有大概
40Mb/s,共64G。 -
正常可用的一部電腦。 Windows可以用Rufus一步到位。Linux/Mc 詳見後面。
-
Debian13-Mate-Live 鏡像。或者其他鏡像,我用過一些其他的鏡像,我覺得Deb13很好。
展開工作
Windows可以用Rufus一步到位。Linux/Mac 詳見後面。
使用 Windows 的 Rufus 一步到位
Rufus 燒錄工具(文章選取202610月最新的(2026.06.30)4.15(p)便攜版)
燒錄鏡像(Windows)
在Windows下,打開 Rufus-4.15p 開始我們的工作。它會問你是否允許它聯網檢查更新,是與否都不影響。我選擇了「否」。
之後選擇如下圖(請選擇鏡像-選擇鏡像(不要亂選那個複選框),直接選鏡像就好):

我的U盤有64G,留20G給系統就好,所以我選擇40G的持久空間。apt 等安裝,Home 數據都會在(40G)持久分區內。
它問你是否允許它上網下支援文件,選擇「是」。



進入U盤
我省略了這一段。這並非技術傲慢,而是如果你連如何進入U盤引導都不清楚,我建議你先不要往下讀。你可以先去了解「PE維護系統安裝Windows」的教學。否則你的「Linux/搞機」之旅會相當折磨,甚至乎會對你的「愛好心」產生嚴重打擊。
啟動時,選擇:「Live Mode」
進入到U盤Linux後的工作
照理來說。Rufus 不需要做更多的事,燒錄完畢,重啟入U盤。在桌面創建一個文件,重啟看看是否還在。當然你也可以看 lsblk,或者安裝一個 apt install fastfetch 試試,重啟看看它是否可以正常喚出使用。
重啟看到還在,證明是沒問題的。


重置(創建)root的密碼
如果你有 ssh 的需求,請用下面命令創建一個 root 的密碼
sudo passwd root
Linux/Mac 系統
你可以通過 BalenaEtcher APP 燒錄鏡像入U盤,也可以用 DD命令 成為老一輩藝術家。
前者是傻瓜式操作,所以我們專注於後者。
燒錄鏡像(Linux/Mac)
Mac 好像沒有 lsblk 命令的,並且為了避免DD出現問題,Mac 用戶還是乖乖用 BalenaEtcher APP 吧。讓我們保持 kiss 原則。
DD 命令(Linux/Mac用BE App跳過)
我們輸入下面的命令,就可以看到類似的輸出
lsblk
# 輸出如下
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 1 58.6G 0 disk
└─sda1 8:1 1 58.6G 0 part
nvme0n1 259:0 0 238.5G 0 disk
├─nvme0n1p1 259:1 0 300M 0 part
├─nvme0n1p2 259:2 0 16M 0 part
├─nvme0n1p3 259:3 0 188.5G 0 part
├─nvme0n1p4 259:4 0 2G 0 part /efi
└─nvme0n1p5 259:5 0 47.7G 0 part /
每個人的電腦,因為存儲介質的不同,上面的輸出都會不盡相同。我們要記住的是 NAME 這一項。而我只有一個 64G 的U盤設備,所以很好分辨。如果你恰巧有兩個同樣大小同樣介質(都是U盤)的設備,你可以通過 拔掉/插入 兩次的 lsblk 來找到誰是誰。
而我的設備,很明顯,是 sda 。記住,在Linux下,無論你是 sda、adb、sdd 還是什麼,在我們輸入命令時,都是通過 /dev/sd某個英文 來區分的,前面有一個 /dev 。它是 Device 的縮寫。是Linux約定的。Mac則是 Volumes。扯遠了。
注意:
-
/dev/sda是整隻 U 盤。(我們要選這個) -
/dev/sda1是 U 盤的一個分區而已。 -
燒錄 ISO 時,目標應該是整隻裝置
/dev/sda,而不是/dev/sda1。
並且!你必須按自己電腦的實際輸出判斷,不能直接照抄 /dev/sda。以你自己 lsblk 輸出的內容為準。 下面內容有幾次修訂,最終Shell Return以中文譯文呈現。
1. 先取消掛載
可以看到我的 MOUNPOINTS 項是空的,證明設備是沒有掛載的,但是我帶你們走一趟流程:
sudo umount /dev/sda1
我的因為沒掛載,所以直接返回了
umount: /dev/sda1: 未挂载.
如果你的沒有返回,估計是成功 取消掛載 了 輸入 lsblk 看看設備的 MOUNTPOINTS 項是不是空了
2. 使用 DD 命令寫入鏡像到U盤
假設 Debian ISO 放在 ~/Downloads/debian-live.iso
之後執行下面命令來寫入鏡像。/dev/sdx 不要跟填我的:
sudo dd if=~/Downloads/debian-live.iso of=/dev/sda bs=4M status=progress conv=fsync
輸出
1287651328 字节 (1.3 GB, 1.2 GiB) 已复制,16 s,35.5 MB/s
下面是完成後
输入了 945+1 块记录
输出了 945+1 块记录
3964551168 字节 (4.0 GB, 3.7 GiB) 已复制,266.019 s,14.9 MB/s
擴展DD命令知識:
| 參數 | 意義 |
|---|---|
if= | 輸入檔案,即 ISO |
of= | 輸出目標,即整隻 U 盤 |
bs=4M | 每次讀寫 4 MiB |
status=progress | 顯示進度 |
conv=fsync | 完成前將資料同步到裝置 |
寫入完成後再執行下面命令來同步一下操作(類似安全推出,但我們不推出):
sync
DD 完成後,建立持久分區
使用 fdisk 創建新分區
sudo fdisk /dev/sda
進入交互界面後,依次輸入以下字母(其實默認過一次就好了):
-
輸入
n(新建分區) -
輸入
p(創建主分区,如有提示,直接確認) -
分區編號:會自動分配為下一個可用數字(例如
3),直接確認 -
起始扇區:直接確認(使用默認的剩餘起始位置)
-
結束扇區:直接確認(默認使用剩餘的所有空間)
-
輸入
w(保存配置並退出fdisk)
輸出大致如下:
欢迎使用 fdisk (util-linux 2.42.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
设备已包含一个 'iso9660' 签名,写入命令会将其移除。请参见 fdisk(8) 的手册页和 --wipe 选项以了解更多细节。
命令(输入 m 获取帮助):n
分区类型
p 主分区 (2个主分区,0个扩展分区,2空闲)
e 扩展分区 (逻辑分区容器)
选择 (默认 p):
将使用默认回应 p。
分区号 (3,4, 默认 3):
第一个扇区 (7743264-122879999, 默认 7743488):
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (7743488-122879999, 默
认 122879999):
创建了一个新分区 3,类型为“Linux”,大小为 54.9 GiB。
分区 #3 包含一个 ext4 签名。
您想移除该签名吗?是[Y]/否[N]:Y
写入命令将移除该签名。
命令(输入 m 获取帮助):w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。
[root@dinmi-pc ~]#
格式化新分區並命名
格式化並且掛上「persistence」的標籤。
sudo mkfs.ext4 -L persistence /dev/sda3
Ubuntu有所不同,好像是 casper-rw ,具體請查閱 Official Docs。
它應該會返回
mke2fs 1.47.4 (6-Mar-2025)
创建含有 14392064 个块(每块 4k)和 3604480 个 inode 的文件系统
文件系统 UUID:c9391316-1870-4387-add7-aafef2685275
超级块的备份存储于下列块:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424
正在分配组表:完成
正在写入 inode表:完成
创建日志(65536 个块):完成 (這裡需要一些時間,請等等)
写入超级块和文件系统账户统计信息:已完成
只有標籤還不行,Debian 要求你必須在該分區的根目錄下建立一個規則文件,告訴系統哪些目錄需要被持久化保存。
sudo mount /dev/sda3 /mnt
# 寫入全局保存規則(把整個根目錄下的修改都持久化)
echo "/ union" | sudo tee /mnt/persistence.conf
sudo umount /mnt
注意:基本上做完這一步,你已經無法正常引導到你DD完畢的U盤下的 Debian Boot 選單了。後面說
固定啟動參數 (GG)
sudo mkdir -p /tmp/usb_boot
sudo mount /dev/sdb1 /tmp/usb_boot
# 修改 GRUB 配置文件
# 使用 sed 命令在引導參數(boot=live 後面)追加 persistence 關鍵字
sudo sed -i 's/boot=live/boot=live persistence/g' /tmp/usb_boot/boot/grub/grub.cfg
但是,不出意外的話,應該會返回:
mount: /tmp/usb_boot: 警告:设备写保护,使用只读方式挂载.
sed: 无法打开临时文件 /tmp/usb_boot/boot/grub/sedm2rvAI: 只读文件系统
這是因為,dd 燒錄出來的 Debian 鏡像分區格式是 ISO9660(光盤文件系統)它唯讀 XD
DD.. 很神奇吧。但是到了這裡,恭喜你學會了使用 dd、fdisk 等命令。
而且,你DD的U盤,在完成 echo "/ union" 後,估計也進不去 Debian Boot Menu 了,而是會直接進入 GNU GRUB 的維護介面。剛剛改一些東西改壞了。
所以,剛剛不應該改那麼多,應該是 DD 完畢後。每次開機進 GRUB 時按 e 鍵來編輯 Debian Boot Grub Configuration,手動加一次 persistence

人生苦短,為什麼不用工具?
DD 的坑,粗心的坑,還有千千萬萬個莫名其妙的小問題。本文已經修訂了3次有餘。所以我,真诚建议直接上 Ventoy 或者用 Rufus(Windows下)/ Mkusb(Linux下)来做持久化,能省去无数排查 Bug 的时间。

