Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux 區塊級複製神器:dd 參數詳解、備份分區/整顆硬碟、ISO 寫入與資料銷毀實戰

編輯:Linux 教學

dd(Data Duplicator/Data Destroyer)是位元組級複製工具,無視檔案系統結構,直接操作區塊裝置。威力極大,**一行指令可毀滅所有資料**,務必三思再執行。本文詳解參數、四大實戰場景、進度監控與安全原則。

一、 核心參數語法

dd if=輸入來源 of=輸出目標 bs=區塊大小 count=區塊數量 [其他選項]
參數功能預設值
if=FILE輸入檔案/裝置stdin
of=FILE輸出檔案/裝置stdout
bs=BYTES同時設定 ibs/obs(讀/寫區塊大小)512 bytes
count=N複製 N 個區塊全部
skip=N跳過輸入前 N 區塊0
seek=N跳過輸出前 N 區塊0
conv=NOTRUNC,SYNC,NOERROR轉換選項:不截斷/填充零/忽略錯誤繼續-
status=progress顯示進度(GNU dd 8.24+)-

二、 四大實戰場景

1. 單一檔案備份/還原


dd if=/etc/inittab of=/opt/inittab.bak
# 3+1 records in/out (3 個 512B 完整區塊 + 1 個不足區塊)
ls -l /etc/inittab /opt/inittab.bak
# 大小完全一致 1666 bytes

2. 整個分區備份/還原(離線操作)


# 備份 /dev/sda2 至檔案
dd if=/dev/sda2 of=/opt/sda2.back bs=4M status=progress
# 還原(目標分區必須卸載!大小需 ≥ 來源)
umount /dev/sda2
dd if=/opt/sda2.back of=/dev/sda2 bs=4M status=progress
mount /dev/sda2

關鍵:bs=4M(或 1M/8M/64K)大幅提升吞吐;輸出路徑**不能**在來源分區內。

3. 整顆硬碟克隆/備份


# 克隆 sda 到 sdb (sdb ≥ sda)
dd if=/dev/sda of=/dev/sdb bs=4M status=progress conv=noerror,sync
# 備份 MBR + 分區表 (前 512 bytes)
dd if=/dev/sda of=/backup/mbr_backup bs=512 count=1
# 備份前 1MB (含 MBR + GPT 頭部)
dd if=/dev/sda of=/backup/disk_header.img bs=1M count=1

4. ISO 寫入 USB / 建立空檔 / 資料銷毀


# 寫入 ISO 至 USB (USB 為 /dev/sdX,確認無誤!)
dd if=linux.iso of=/dev/sdX bs=4M status=progress conv=fsync
sync

# 建立 1GB 空檔 (測試/交換檔)
dd if=/dev/zero of=/swapfile bs=1M count=1024

# 寫入隨機資料銷毀磁碟 (單遍)
dd if=/dev/urandom of=/dev/sdX bs=4M status=progress
# 多遍銷毀 (DoD 5220.22-M 3 遍)
for i in {1..3}; do dd if=/dev/urandom of=/dev/sdX bs=4M status=progress; done

三、 進度監控與效能調優

  • status=progress(現代 GNU dd 內建)
  • pv 管線監控:dd if=/dev/sda | pv | dd of=/dev/sdb
  • kill -USR1 $(pidof dd):傳送 USR1 訊號觸發進度列印(舊版)
  • bs 調優:SSD/NVMe 用 1M-16M,HDD 用 4M-64M,磁帶用 64K-256K

四、 安全鐵律

  1. 輸入輸出反向 = 資料毀滅:dd if=/dev/zero of=/dev/sda 瞬間清空硬碟。
  2. 執行前三確認:lsblk、fdisk -l、掛載點檢查。
  3. 目標裝置必須卸載:掛載狀態寫入會導致檔案系統損毀。
  4. 備份 MBR/GPT:重大操作前先 dd if=/dev/sdX of=/backup/mbr bs=512 count=1。

五、 結語

dd 是「區塊層手術刀」,精準、無情、不可逆。備份分區用 bs=4M status=progress、克隆硬碟加 conv=noerror,sync、銷毀資料用 /dev/urandom 多遍。**永遠在 LiveCD/救援模式下操作生產磁碟,並在腦中預演「輸入輸出反向」的後果**。

Copyright © Windows教程網 All Rights Reserved