Ubuntu从20.04升级到22.04后,系统使用snap管理包,虽然可以卸载掉,但是特别不喜欢,所以又切换回了Debian 11。
期间是无聊的软件包的安装以及配置文件的迁移,好在差别不大,迁移比较顺利。
迁移完成后,制作系统备份与灾备盘。这样当原服务器意外挂掉后,使用虚拟机或另外一台裸机直接挂上灾备盘,立即顶上。
1. 挂载硬盘到/mnt目录下
$ sudo mount /dev/sdd1 /mnt/
2. 执行全量同步
sudo rsync -av --progress \
--exclude=/proc/ \
--exclude=/lost+found/ \
--exclude=/media/ \
--exclude=/mnt/ \
--exclude=/sys/ \
--exclude=/tmp/ \
--exclude=/swapfile \
--delete / /mnt/
一切皆文件,至此,系统备份完成,接下来把该盘制作为启动盘。
3. 安装grub引导,制作应急灾备盘
拿着灾备盘,来到另外一台电脑上(或虚拟机上), 从启动盘启动进入到急救模式(高级选项 -> Rescue mode),一步步的来到选择root file system 位置。选择已同步的灾备盘,然后回车。
此时进入到备份盘上的系统,然后执行:
$ grub-install /dev/sdX
.... 略....
$ update-grub
等待命令执行完成,此时灾备盘已经可以引导启动了。
但是由于 /etc/fstab 一般会用UUID的方式来设置根路径,所以还需要修改 /etc/fstab 里的根路径。因为是灾备盘,所以建议写死为 /dev/sda,如下:
# UUID=3b82a5d2-d2f9-4797-b4e8-0bc8b2d3642e / ext4 defaults 0 1
# 应急灾备时,建议改为
/dev/sda / ext4 defaults 0 1
4. 验证
使用虚拟机或另外一台裸机,单独直接挂上这块盘。
启动系统,检查系统上运行的服务是否正常。
注:
1. CPU为同一系列。无独立的其他需要专用驱动的设备(或不一致的特殊外围硬件),服务器一般没有。
2. 远程热备核心与本文步骤基本一致。
3. 虚拟机顶上服务时,注意网卡选择桥接模式。
4. 直接在一台机器上实现安装grub稍微复杂些,可参考我的这篇文章 ubuntu 更改boot分区格式,重建引导。