https://blog.gtwang.org/linux/dd-command-examples/
基本使用方式
dd 常用的參數如下:
if=FILE:指定輸入檔案名稱(input file)為FILE。of=FILE:指定輸出檔案名稱(output file)為FILE。ibs=BYTES:指定輸入區塊大小(input block size),一次讀取BYTES位元組的資料,預設為 512 位元組。obs=BYTES:指定輸出區塊大小(output block size),一次寫入BYTES位元組的資料,預設為 512 位元組。bs=BYTES:指定 block size,一次讀取與寫入BYTES位元組的資料,此選項會覆蓋ibs與obs的設定。cbs=BYTES:一次轉換BYTES位元組的資料。count=N:只處理N個輸入區塊,每個區塊的大小為ibs。seek=N:在輸出時跳過輸出檔案的前N個區塊,每個區塊的大小為obs。skip=N:在輸入時跳過輸入檔案的前N個區塊,每個區塊的大小為ibs。conv=CONVS:指定資料的轉換選項,如果一次要指定多種轉換,則以逗點分隔。
以下是各種可用的轉換:
ascii:EBCDIC 轉 ASCII。ebcdic:ASCII 轉 EBCDIC。ibm:ASCII 轉 alternate EBCDIC。block:將每一個區塊的資料結尾的換行字元替換為空白,並以空白將整個區塊補足cbs位元組。。unblock:將每個區塊結尾的空白字元替換為換行字元。lcase:將大寫字母轉換成小寫。ucase:將小寫字母轉換成大寫。swab:將每一對輸入的位元組交換。sync:將每一個輸入的區塊以NUL補足至ibs位元組的大小,如果是在block或是unblock的轉換中,則以空白字元來補足。nocreat:不要建立輸出檔案。notrunc:不要將輸出檔案截短。noerror:發生錯誤時還是繼續執行。fdatasync:讓資料同步實體寫入硬碟,不要留在緩衝區中
備份整顆硬碟
將 /dev/sda 所有的資料寫入 /dev/sdb:
sudo dd if=/dev/sda of=/dev/sdb
if 參數指定的是輸入檔案(input file),而 of 參數指定的是輸出檔案(output file),這行指令會將 /dev/sda 這顆硬碟的資料讀出來,然後寫進 /dev/sdb這顆硬碟。
在整個過程中如果出現讀取錯誤的話,dd 就會停止執行,如果想要讓 dd 在出現讀取錯誤時還是繼續拷貝資料的話,就要加上 conv=noerror 參數,這個選項通常在備份資料時會使用到,另外加上 sync 可以讓 dd 以 synchronized I/O 的方式備份資料:
sudo dd if=/dev/sda of=/dev/sdb conv=noerror,sync
建立硬碟的備份影像檔
備份硬碟資料除了拿兩顆硬碟對拷之外,也可以直接將整顆硬碟的資料製作成影像檔,以這種方式備份資料會更有彈性:
sudo dd if=/dev/hda of=~/hdadisk.img
這行指令會將 /dev/sda 這顆硬碟的資料讀出來,儲存至 ~/hdadisk.img 這個影像檔中。
從備份影像檔回復硬碟資料
如果要以影像檔回復硬碟的資料,就執行:
sudo dd if=hdadisk.img of=/dev/hdb
這樣就會把 hdadisk.img 影像檔中的資料回復至 /dev/sdb 這顆硬碟(原本 /dev/sdb 硬碟中的所有資料會被覆蓋掉,請小心使用)。
http://wanggen.myweb.hinet.net/ech3/ech3.html
產生一個虛擬硬碟
# dd if=/dev/zero of=200M-image bs=200M count=1 ←產生一個 200M 的內容是空的映像檔 # mkfs 200M-image ←格式化此映像檔 mke2fs 1.40.2 (12-Jul-2007) 200M-image is not a block special device. ←會出現此檔非〝block device〞(儲存裝置)的警告 Proceed anyway? (y,n) y ←不管警告按<y>繼續格式化 # mount -t ext2 -o loop 200M-image /mnt ←掛載此虛擬 partition
https://blog.gtwang.org/linux/linux-ram-disk/
RAM Disk
建立資料夾 並 MOUNT RAM DISK
mkdir /tmp/ramdisk chmod 777 /tmp/ramdisk mount -t tmpfs -o size=4G tmpfs /tmp/ramdisk/
文章標籤
全站熱搜
