喜愛自由、自然、自在。

2011-04-29

Linux 的 Partition/Disk Backup/Restore

用 Windows 的時候經常都要做 partition backup,以防系統設罝出問題時可以用 partition restore 徹底拯救。Windows 上兩個出名軟件 Ghost 和 TrueImage,相信很多朋友也熟悉其一。

小弟用慣 TrueImage,試過用來 backup Linux 的 ext4,它認不出這種新格式,只能用 sector-by-sector 的方式來抄,十分慢。究竟 Linux 有沒有原生的方案呢?

原來是有的,且不需額外安裝,就在 Linux kernal 裏,command line 的 dd。

Ctrl-Alt-T 進入 terminal,sudo su 變身做 root,然後用 dd 這個 command:

dd  if=/dev/sda  of=/media/%disk-volume-name/%folder-name/%filename

這樣便把整個系統碟 (通常都叫 sda)抄了去一個 file,如:

dd  if=/dev/sda  of=/media/'ADATA SH93‘/Backup/ubuntu-sda.img

剛好我用那隻 USB 碟的 disk label 是 “ADATA SH93”,中間有個空格,要用 single quote 來包住。同時記住 linux 的 pathname 是分大小階的。

if 就是 input file 的意思,of 就是 output file 了。它們可以是 folder/file,可以是 partition,也可以是 disk,所以 backup 甚麼也可以,backup 去甚麼地方也成。

如果只 backup 第一個 partition (通常就是 system 和 user home),就用 

dd  if=/dev/sda1  of=..........

如果想把整個系統抄去另一隻碟,令這隻新碟即時成為一個可以啟動的系統,也很簡單:

dd  if=/dev/sda  of=/dev/sdb  (如果那新碟是 sdb)

如果 restore 呢?就是把 if 和 of 的內容掉轉,就成了。

如果系統不能啟動要 restore,如何開機呢?也很簡單,就是用來安裝那隻 Live CD 或它的 USB手指。

(今日剛好因事試了這個 restore 方法,成功。)

如果要確定系統碟是否 sda,可在 root 用:

fdisk  -l

來列出所有碟的資料。通常 Linux 會把 BIOS 內啟動次序第一那內置碟定做 sda。

用 exit 來脫離 root。

這個方法在何版本的 Linux 也能用,因為是在 kernal 內的功能。

No comments:

Post a Comment