(我實際操作經驗是在FreeBSD10.3,轉移windows,HDD→SSD,HDD已4k對齊)
dd if=/dev/資料來源 of=/dev/備份碟
選用FreeBSD的原因是:在安全前可以選擇傻瓜安裝或是進Shell
個人常用參數:
- bs=?? 調整一次讀寫的量(block size) (有ibs,obs可供if,of各別設定之用)
- count=?? 調整要幾個 block size, 預設是if全部,或是沒辦法寫入of了
- skip 略過 if 幾個 block size 才開始讀取資料
- seek 從 of 幾個 block size 才開始寫入資料
硬碟沒壞掉的話這樣就夠了,但不幸壞掉的話,可以加
conv=
- noerror 遇到錯誤繼續執行
- sync 對齊。原本有noerror的話,會略過爛掉的部分,直接接上沒爛掉的部分。但通常直接接上的話硬碟的底層邏輯就亂了,加上sync可以在爛掉的補0
- fillchar 更換補上的字元,sync預設補0
其他可能會有用的conv參數:nonblocking,nocache,notrunc
// 以上參數都不限於壞掉時使用,想加就加吧
實際上打起來像這樣
dd if=/dev/ada0 of=/dev/da1 bs=1G conv=noerror,sync
// ada0是一個硬碟,da1是一個隨身碟 這個動作把硬碟的資料備份到隨身碟中
// 建議搭配 diskinfo -v 查看儲存裝置的容量
// diskinfo -v /dev/ada0
當然你也可以用來備份遊戲光碟 dd if=/dev/cd0 of=/tmp/A_FILE.iso bs=2048 conv=noerror,sync
以在虛擬機裡操作的畫面說明:
(上面看到的這台虛擬機沒有接上第二顆虛擬硬碟,請自行腦補第二顆在 /dev/ada1 )
(可能實際上你會將你的硬碟對拷到透過 USB 外接的硬碟,那麼會是 da 開頭)
(要注意如果你是用 USB 隨身碟開機,這個開機碟也是 da 開頭,對拷前記得用 diskinfo 看一下大小是否正確,或是以指令 mount -ro (linux上用mount -o ro) 用唯讀方式看內容)
(在上圖的示範中,後面加了 count=4 ,意思是從 if 只讀取前 4 個 block (上圖 bs=512M ,有 4 個所以共是 2G ) 寫入到 of 中 )
一些可能有幫助的參考資料
不過備份軟體還是很方便的(雖然我沒用過,總覺得備份軟體會在開機區加一些東西,而我不想,這算潔癖嗎),沒有特殊需求的話,我覺得用一般的備份軟體就可以了
另外備份500G到USB外接硬碟大約花4小時,有夠久;找台主機接SATA大約2小時,還是有夠久
另外的選擇是:硬碟座,可以對拷的