概述
dd 通常被稱為「disk dump」或「data duplicator」,它以區塊為單位讀寫資料。它從輸入檔案 (if) 讀取資料並將其複製到輸出檔案 (of),在此過程中可以應用各種轉換 (conv) 和區塊大小 (bs) 選項。
主要功能
- 磁碟/分割區映像的建立與還原
- 建立可開機媒體
- 調整檔案大小與初始化內容
- 資料轉換 (例如:大小寫轉換)
主要選項
dd 命令透過各種選項實現精確的資料操作。指定輸入 (if) 和輸出 (of) 檔案至關重要,並透過區塊大小 (bs) 和要複製的區塊數 (count) 來控制操作範圍。
輸入/輸出指定
區塊大小與數量
轉換與狀態
生成的命令:
請試著組合命令。
這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。
`dd` 執行命令。
請將上述選項組合在一起,與 AI 一同虛擬執行命令。
使用範例
dd 命令功能強大,但錯誤使用可能導致嚴重的資料遺失。以下範例展示了常見用法,但在實際系統磁碟上操作時,務必先進行備份並謹慎操作。
建立 100MB 的虛擬檔案
dd if=/dev/zero of=dummy.img bs=1M count=100
從 /dev/zero 讀取 100 個 1MB 的區塊,建立名為 'dummy.img' 的檔案。
備份磁碟分割區 (需謹慎)
dd if=/dev/sda1 of=sda1_backup.img bs=4M status=progress
將 /dev/sda1 分割區的全部內容備份到 'sda1_backup.img' 檔案。使用 'status=progress' 顯示進度。**請非常仔細地檢查目標裝置路徑。**
用 0 填充檔案內容 (安全刪除)
dd if=/dev/zero of=myfile.txt bs=1M count=1 conv=notrunc
用 0 覆寫現有的 'myfile.txt' 檔案內容。'conv=notrunc' 會保持檔案大小。
從 ISO 映像建立可開機 USB 磁碟機 (非常謹慎)
dd if=ubuntu.iso of=/dev/sdb bs=4M status=progress conv=fsync
將 'ubuntu.iso' 檔案複製到 '/dev/sdb' USB 磁碟機,使其可開機。**請務必確認 'of' 指定的裝置路徑。錯誤指定可能損壞系統磁碟。** 'conv=fsync' 會確保所有資料完全寫入磁碟。
複製檔案的特定部分
dd if=input.txt of=output.txt bs=1 count=100 skip=50 seek=0
從 'input.txt' 檔案讀取從第 51 個位元組開始的 100 個位元組,並將其複製到 'output.txt' 檔案的開頭。 (由於 bs=1,skip/seek 是以位元組為單位)
提示與注意事項
dd 命令非常強大,使用時需要格外小心。特別是如果為 `if` 和 `of` 選項指定了錯誤的裝置或檔案,可能會損壞系統資料。
重要注意事項
- **確認目標**:請多次檢查 `if` 和 `of` 中指定的路徑。特別是像 `/dev/sda` 這樣的裝置檔案可能具有毀滅性後果。
- **進度顯示**:使用 `status=progress` 選項以即時查看操作進度。這對於處理大量資料非常有用。
- **區塊大小**:`bs` 選項對效能有重大影響。通常,1M、4M 或 8M 是比較有效率的。
- **資料遺失風險**:`dd` 會在沒有警告的情況下覆寫資料,因此在使用包含重要資料的磁碟或分割區時,務必先進行備份。
與 pv 命令一起使用
`dd` 命令本身提供的進度顯示有限。與 `pv` (Pipe Viewer) 命令一起使用,可以查看更詳細的進度、傳輸速率和預計完成時間。如果尚未安裝 `pv`,請先安裝它。 (例如:`sudo apt install pv` 或 `sudo yum install pv`) **使用範例:** `dd if=/dev/sda | pv -pteb | dd of=/dev/sdb`