close
[root@linux ~]# dd if="input_file" of="output_file" bs="block_size" \
count="number"

參數:
if :就是 input file 囉~也可以是裝置喔!
of :就是 output file 喔~也可以是裝置;
bs :規劃的一個 block 的大小,如果沒有設定時,預設是 512 bytes
count:多少個 bs 的意思。
範例:


範例一:將 /etc/passwd 備份到 /tmp/passwd.back 當中
[root@linux ~]# dd if=/etc/passwd of=/tmp/passwd.back
3+1 records in
3+1 records out
[root@linux ~]# ll /etc/passwd /tmp/passwd.back
-rw-r--r-- 1 root root 1746 Aug 25 14:16 /etc/passwd
-rw-r--r-- 1 root root 1746 Aug 29 16:57 /tmp/passwd.back
# 仔細的看一下,我的 /etc/passwd 檔案大小為 1746 bytes,因為我沒有設定 bs ,
# 所以預設是 512 bytes 為一個單位,因此,上面那個 3+1 表示有 3 個完整的
# 512 bytes,以及未滿 512 bytes 的另一個 block 的意思啦!
# 事實上,感覺好像是 cp 這個指令啦~


範例二:備份 /dev/hda 的 MBR
[root@linux ~]# dd if=/dev/hda of=/tmp/mbr.back bs=512 count=1
1+0 records in
1+0 records out
# 這就得好好瞭解一下囉~我們知道整顆硬碟的 MBR 為 512 bytes,
# 就是放在硬碟的第一個 sector 啦,因此,我可以利用這個方式來將
# MBR 內的所有資料都紀錄下來,真的很厲害吧! ^_^


範例三:將整個 /dev/hda1 partition 備份下來。
[root@linux ~]# dd if=/dev/hda1 of=/some/path/filename
# 這個指令很厲害啊!將整個 partition 的內容全部備份下來~
# 後面接的 of 必須要不是在 /dev/hda1 的目錄內啊~否則,怎麼讀也讀不完~
# 這個動作是很有效用的,如果改天你必須要完整的將整個 partition 的內容填回去,
# 則可以利用 dd if=/some/file of=/dev/hda1 來將資料寫入到硬碟當中。
# 如果想要整個硬碟備份的話,就類似 Norton 的 ghost 軟體一般,
# 由 disk 到 disk ,嘿嘿~利用 dd 就可以啦~厲害厲害!
你可以說, tar 可以用來備份關鍵資料,而 dd 則可以用來備份整顆 partition 或 整顆 disk ,很不錯啊~不過,如果要將資料填回到 filesystem 當中, 可能需要考慮到原本的 filesystem 才能成功啊!
arrow
arrow
    全站熱搜

    Felix 發表在 痞客邦 留言(1) 人氣()