在Linux備份 SD 卡 (dd 指令)

這是在工作上學習到的技巧,用dd來備份SD卡.
不過只有學一半,因為只是拿來Save data,還沒有嘗試過還原回去.

自己的VAIO SB把系統碟改成SSD,珍貴的空間當然不能再擺RECOVER分區資料進去.
於是拿了張SD卡做了救援USB的資料碟,然後dd出來卡就不用被資料綁死.
反正我的VAIO OOD上次被小寶尿濕後就失去功能.再加上美光的M500來到3開頭的價位.
剛好趁清明假期買了SATA光碟轉硬碟的RACK,把兩顆SSD都Build-in上系統吧!
這時備份的救援系統就派上用場了.

如果有automount可以先用mount指令看看掛載在/dev/sd{d}{n},也可以用dmesg來看.
下列則用我自己的實際環境/dev/sdb整個磁碟來表示.

備份指令:

# dd if=/dev/sdb of=/home/sdimage.bin

 
再來就是今天的重頭戲拉,還原資料.一開始用最簡單的if與of互換.

# dd if=/home/sdimage.bin of=/dev/sdb

 
這卻會在console上印message,然後擺一段時間後自己掛了.顯然是印了太多
或是包到控制字元.
help dd,範例指令中有個放進背景的步驟.

# dd if=/home/sdimage.bin of=/dev/sdb & pid=$1

 
放一個晚上後發現速度實在太慢了,OverNight才寫7百多M,中途還預讀卡機重置整個中止.
不過碟片的label已經變成當初的RECOVERD,顯然部分還原是沒有問題的.
再把block size設大點來提高寫入速度.

# dd if=/home/sdimage.bin of=/dev/sdb bs=4M & pid=$1

 
果然成功了.這樣就可以在新的SSD來還原全新的系統.

後來爬文發現也可以用導線指令來壓縮備份還原的資料.

# dd bs=4M if=/dev/sdb |gzip > backup.gz
# gzip -dc backup.gz | dd bs=4M of=/dev/sdb

 
refer:
http://blog.longwin.com.tw/2013/10/dd-sd-card-backup-os-2013/

Facebook Comments
Scottj Written by:

史考特 喜歡3C 愛拍照