備份還原系統實做之Linux
目標:做出可以完整備份還原整個硬碟的程式,假設硬碟大小是一樣的(暫時不處理grub跟來源目的不一樣的情形)
備份步驟:
Step 1: 備份分割表:
Step 2: 備份主分割區
Step 3: 備份位於/dev/sda2的延伸分割表
Step 4: 紀錄SWAP的UUID
blkid /dev/sda5 | awk '{print $2}'
還原步驟:
Step 1:還原MBR
Step 2:還原延伸分割區
Step 3:還原主分割區
Step 4:重建SWAP並且還原舊的UUID
延伸閱讀:
MBR詳解
wiki: GPT
wiki: MBR
wiki:EBR
fsarchiver: quickstart
備份步驟:
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
留言