用 dd 備份/還原 整個硬碟或分割區 ( Llinux / Mac OS X )

2014012821:34
 
 

Linux

 

 
 



dd 指令參考


將某個硬碟分割區 備份成 images 檔案:
  本例: 將 sda1 整個備份成一個檔 sda1_bak.img
$ dd if=/dev/sda1 of=/xxx/path/sda1_bak.img



   也可以壓縮備份
$ dd if=/dev/sda1 | gzip > /xxx/path/sda1_bak.img.gz



   將 /dev/sda1 整個複製到  /dev/sdb1
$ dd if=/dev/sda1 of=/dev/sdb1




  整顆硬碟複製 ==>  sd1 複製到 sdb
$ dd if=/dev/sda of=/dev/sdb




還原:
 
$dd if=/mnt/sdb1/sda1_bak.img of=/dev/sda1


例如 raspberry image 檔案的還原到 sd card:
$ dd if=/tmp/2014-01-07-wheezy-raspbian.img of=/dev/mmcblk0

5785600+0 records in
5785600+0 records out
2962227200 bytes (3.0 GB) copied, 2078.95 s, 1.4 MB/s
 
$ dd if=/tmp/2014-01-07-wheezy-raspbian.img of=/dev/mmcblk0 bs=4M 

706+1 records in
706+1 records out
2962227200 bytes (3.0 GB) copied, 516.177 s, 5.7 MB/s

real    8m36.206s
user    0m0.039s
sys     1m29.598s

(M 是大寫,加上 bs=4M 快非常多!)






 
 

Mac OS X

 

 
 
root@yoyomac ~# diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *121.3 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:          Apple_CoreStorage Macintosh HD            120.5 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk1 (internal, virtual):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                  Apple_HFS Macintosh HD           +120.1 GB   disk1
                                 Logical Volume on disk0s2
                                 448E83A9-8584-4F6C-80D1-2F58A9582A14
                                 Unlocked Encrypted
/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *15.9 GB    disk2
   1:             Windows_FAT_32 boot                    62.9 MB    disk2s1
   2:                      Linux                         15.9 GB    disk2s2

先將 SD card 備份成 image
root@yoyomac ~# dd if=/dev/disk2 of=/var/root/raspberrypi.dmg

  ** 在 Mac Air上讀 sd card 的速度居然只有 2.5~3MB/s
      相同的記憶卡/讀卡機(USB介面) 在PC上 有 15MB/s


退出舊的 SD card / Unmount the SD Card
root@yoyomac ~# diskutil unmountDisk 


插入一張新的 SD card 後
將 image 還原到 SD card
root@yoyomac ~# dd if=~/Desktop/raspberrypi.dmg of=/dev/disk2







另外 dd 其它用法

製作 swap 檔案
$ dd if=/dev/zero of=/tmp/swapfile64 bs=4k count=16384
16384+0 records in
16384+0 records out
67108864 bytes (67 MB) copied, 0.277933 s, 241 MB/s
   產生 /tmp/swapfile  64MB 的檔案
   $swapon /tmp/swapfile 可啟用這個 swap 檔

  ps:上面 dd 指令回覆 67MB 是因為 dd 以 1k=1000bytes 來計算



產生一個 100MB 大檔
$ dd if=/dev/zero of=/tmp/file_100mb bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 5.87439 s, 17.8 MB/s

  ps:上面 dd 指令回覆 105MB 是因為 dd 以 1k=1000bytes 來計算



據說 也可測記憶體的速度:
$ dd if=/dev/zero of=/dev/null bs=4M count=1000
1000+0 records in
1000+0 records out
4194304000 bytes (4.2 GB) copied, 14.1796 s, 296 MB/s
  ** Fujitsu u1010 小電腦


$ dd if=/dev/zero of=/dev/null bs=4M count=10000
10000+0 records in
10000+0 records out
41943040000 bytes (42 GB) copied, 4.38987 s, 9.6 GB/s
 **  AWS Micro Instance


其它參考:


  •   顯龍壇(蘇王會) 於 2014-02-01 09:17 1F
  • 新春吉祥 財源滾滾來 
    過年俗話==初一早 初二早 初三睏佮飽 初四接神 初五隔開 初六挹肥 初七七元 初八完全 初九天公生初十有食食 十一請囝婿 十二查某囝轉來拜 十三食泔糜配芥菜 十四結燈棚 十五上元暝