最近有一個項目,客戶要做升級,
因爲centos 要變成滾動更新,所以逼不得已,只能把現在的centos 8.2升級成redhat 8
客戶主機是DELL PowerEdge R440刀片機,有Raid,4.4T
但買的時候沒有購買其他服務,所以備份比較棘手
網上找尋了大多數方案,基本都是停機做鏡像,但誰也不想晚上去客戶那操作
找來找去,找到了redhat官方推薦的Rear(Relax and Recover)
https://relax-and-recover.org/
只需要yum install 相關的pkg,就可以直接進行備份,
設置很詳細,可以備份到掛載硬盤,也可以備份到遠程ssh機器或網絡硬盤
該備份方式是軟硬結合,
會備份硬盤分區結構和其中的所有文件
注意,這個軟件對Intel 的Raid
Intel(R) Rapid Storage Technology
支持的不好,可能Intel raid本身比較特殊,還沒發現其他問題。
注意備份之前最好停掉硬盤寫入相關的東西,例如db,爲了數據完整
安裝
yum install rear grub2-efi-x64-modules
grub2-efi-x64-modules爲UEFI的啓動支持,如果不安裝,備份uefi時候會出錯缺少lib
備份
設置備份存儲位置
編輯 /etc/rear/local.conf
增加以下內容
BACKUP=NETFS
BACKUP_URL=file:///mnt/backup
我這裏用的是掛載的硬盤保存備份,
此設置默認會把系統內所有文件壓縮打包成tar保存
如果不想壓縮,也可以用rsync代替tar,
詳細的設置請在官方文檔查看
rear mkbackup //備份
備份後會生成iso和系統備份文件在/mnt/backup/{主機名}/
iso可用其他工具做成啓動引導U盤,內置恢復程序
恢復
從iso啓動,進入以下界面
進入第一項後輸入任意字符回車(我沒設置),進入console
進入後手動掛載備份用的硬盤
mount /dev/sdb /mnt/backup //掛載路徑和設置保持一致,讓rear找到它
執行 rear recover
如果系統發現同樣的硬盤有多個會讓你確認恢復到哪裏
一般會自動進行恢復,但出現錯誤的話,可能就要手動修復了,還好備份本身就是整個文件系統的備份,
手動修復
重新安裝os後(爲了重建分區),用U盤啓動rescue把原系統的文件全部覆蓋過去
注意排除 sys
proc
dev
這幾個虛擬目錄
覆蓋後在系統的root生成 .autorelabel 文件,
touch .autorelabel
啓動時會重新設置selinux的文件label,
這步很重要,不做會導致進不去系統,類似password錯誤之類的莫名其妙的問題都是這個原因
重啓之前注意手動修改/etc/fstab內的硬盤uuid
格式化重新分區之後uuid會變,更新uuid來避免device進系統後掛載失敗
blkid
可顯示當前硬盤情報和id
/etc/fstab 內的uuid
注意這裏的UUID各對應的root和EFI分區
和blkid裏的/dev/sda2
/dev/sda1
一致
修改完畢後重啓系統即可