備份還原系統實做之Linux

目標:做出可以完整備份還原整個硬碟的程式,假設硬碟大小是一樣的(暫時不處理grub跟來源目的不一樣的情形)

備份步驟:
Step 1: 備份分割表:
dd if=/dev/sda of=mbr.bin bs=512 count=65

Step 2: 備份主分割區
fsarchiver savefs /dev/sda1 sda1.fsa 

Step 3: 備份位於/dev/sda2的延伸分割表
dd if=/dev/sda2 of=sda2.dd bs=512 count=1

Step 4: 紀錄SWAP的UUID
blkid /dev/sda5 | awk '{print $2}'

還原步驟:
Step 1:還原MBR
dd if=mbr.bin of=/dev/sda bs=512 count=65
partprobe

Step 2:還原延伸分割區
dd if=sda2.dd of=/dev/sda2 bs=512 count=1
partprobe

Step 3:還原主分割區
fsarchiver restfs sda1.fsa id=0,dest=/dev/sda1

Step 4:重建SWAP並且還原舊的UUID
. ./swap.uuid
mkswap-uuid -U $UUID /dev/sda5


延伸閱讀:
MBR詳解
wiki: GPT
wiki: MBR
wiki:EBR
fsarchiver: quickstart

留言

這個網誌中的熱門文章

RTC & CMOS 技術詳解

[自由網路] 如何取得 Google Drive (真實)外連位址 (Direct Link)