2021年3月13日 星期六

Linux 系統執行中完整備份(on-line backup)

因為有台主機每停機一秒就會少賺一秒,

但是現在用的硬碟要拿去做別的用途,

就試試看在執行中複製整個系統,

並讓複製後的系統是可直接開機的狀態 。

把停機時間減少成只有換硬碟時間。

### 適用 /boot 資料夾沒有另外掛載在別的分割區

1.先把新硬碟分割好

用 SATA to USB 線或外接硬碟盒接上主機。

2.確認目標分割區及掛載目錄

例如分割區 /dev/sdb1 ,掛載目錄:/tmp/sdb1

3.用 rsync 複製檔案

#rsync -aAXHv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /tmp/sdb1

參考來源: https://wiki.archlinux.org/index.php/Rsync#Full_system_backup

 

4. 查詢分割區 UUID

#lsblk -o  NAME,LABEL,PATH,UUID /dev/sdb1

NAME LABEL PATH UUID
記下新硬碟UUID數值


5.安裝 GRUB

#grub-install --target=i386-pc --no-floppy --root-directory=/tmp/sdb1 --recheck --debug /dev/sdb

 

6.修改 grub.cfg

#vim /tmp/sdb1/boot/grub/grub.cfg

把所有舊的 UUID 改成步驟4查到的新 UUID

vim編輯器搜尋取代輸入

:%s/舊UUID/新UUID/g

7.修改 fstab 中的UUID

#vim /tmp/sdb1/etc/fstab 


8.關機換硬碟

 

9. 之後的同步

排除 /boot/grub/grub.cfg 和 /etc/fstab

#rsync -aAXHv --delete --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","/boot/grub/grub.cfg","/etc/fstab"} / /tmp/sdb1


沒有留言:

張貼留言