什麼是 dd?
dd 被稱為 'Data Description' 或 'Disk Dump' 的縮寫。與一般複製 (`cp`) 不同,它用於直接操作硬體設備(磁碟、USB)或以位元(Bit)為單位精確複製原始數據。
核心語法結構
它不使用選項前的破折號 (-),而是以 `鍵=值` 的形式使用。
- if (輸入檔案): 輸入目標。(原始文件、ISO 映像、要讀取的磁碟設備等)
- of (輸出檔案): 輸出目標。(複製位置、USB 設備、備份文件等)**這是最需要注意的選項。**
- bs (塊大小): 一次讀寫的數據量。(例如:4M, 1G)。影響速度。
⚠️ 警告:使用前務必確認
如果不小心將 `of=`(輸出目標)指定為系統硬碟,作業系統和數據將會瞬間消失。務必使用 `lsblk` 命令確認設備路徑(例如:`/dev/sdb`)。
主要選項 (Shell)
dd 的選項順序並不重要,但通常按照 `if` > `of` > `bs` > `status` 的順序編寫。
1. 指定輸入/輸出 (必選)
2. 大小和速度控制
3. 數據轉換與控制
生成的命令:
請試著組合命令。
這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。
`dd` 執行命令。
請將上述選項組合在一起,與 AI 一同虛擬執行命令。
使用情境範例
實務中常用的 dd 命令模式。
製作可啟動 USB
sudo dd if=ubuntu-22.04.iso of=/dev/sdb bs=4M status=progress
將 ISO 文件燒錄到 USB 設備(假設為 `/dev/sdb`)。`bs=4M` 是為了提高速度。
備份整個磁碟 (創建映像)
sudo dd if=/dev/sda of=~/backup.img bs=64K status=progress
將整個 `/dev/sda` 磁碟製作成 `backup.img` 文件。
完全擦除磁碟 (Wiping)
sudo dd if=/dev/urandom of=/dev/sdX bs=1M status=progress
用隨機數據覆蓋磁碟(`/dev/sdX`),使其無法恢復。
創建指定大小的空文件
dd if=/dev/zero of=testfile_1GB bs=1G count=1
創建一個用於測試的 1GB 空文件(用 0 填充)。
提示與注意事項
實用提示
- sudo 權限: 操作硬體設備(/dev/...)時,必須使用 `sudo`。
- /dev/zero 和 /dev/urandom: `if=/dev/zero` 會無限輸出 0,而 `if=/dev/urandom` 會無限輸出隨機數據,它們是特殊文件。
- 尋找 USB 設備: 插入 USB 前後,請輸入 `lsblk` 命令,以準確識別新出現的設備名稱(例如:sdb, sdc)。