ubuntu migration

Ubuntu系统迁移实践

背景

最近给董博士配了一台戴尔的T7920工作站,用来运行一套生物模拟分子的软件集成平台。硬件这块的方案是选配了20核心的金牌处理器、128G大容量内存、在独立显卡的加持下,完全满足了客户对性能的要求。

这套科学计算软件平台牵涉到amber、python、openpm、cuda等等大大小小几十个软件模块的构建和联调,幸亏现在远程工具已经很方便了,跟董博士配合了将近2周才把软件平台给搭建调试ok。准备周一立刻发往上海。

但是新的情况发生了,为了后期需求考虑,希望2T机械盘从根目录抽离,安装windows系统,实现ubuntu+windows双系统。双系统难度不大,难点应该在剥离home(2T盘)后,Ubuntu系统有可能就进不了桌面,命令行再操作不当的话没准就前2周的辛苦付之东流,那是我们最不愿意看到的。

经过工程师评估,可行方案计划是这样的:

  • 保证现有系统不受牵连,全盘备份。
  • 工作站安装一块新固态,新系统,全盘还原。
  • 验证嫁接后的软件平台功能是否完整,实现系统迁移。

开始操作

生成备份文件

全程root用户,命令sudo su


tar -cvpzf /media/dell/000268F4000CB3E2/ubuntu_backup@`date +%Y-%m+%d`.tar.gz --exclude=/proc --exclude=/tmp --exclude=/boot --exclude=/home --exclude=/lost+found --exclude=/media --exclude=/mnt --exclude=/run /

参数:

  • -c:新建一个备份文档
  • -v:显示详细信息
  • -p:保存权限,并应用到所有文件
  • -z:用gzip压缩备份文档,减小空间
  • -f:指定备份文件的路径
  • -exclude:排除指定目录,不进行备份

注意–exclude参数,是不备份的部分。如果没有把/home或者/boot目录单独分一个区,一定不要加–exclude=/home或–exclude=/boot参数!(本系统安装时为默认安装,则/home位于/根目录下)

最后系统会提示”tar: 由于前次错误,将以上次的错误状态退出”,这个警告可以忽略。运行执行时间看已安装的软件总大小,ubuntu_backup@2023-05+29.tar.gz为备份文件。

第二部分:安装新系统

这一部分需要更换全新固态,去掉2T 企业盘,安装与之前一样版本的操作系统。

第三部分:系统迁移恢复

将fstab文件复制到home文件夹下,保存到一个新的cs文件夹(mkdir cs)


cd /etc/
ls
sudo cp -pdr fstab /home/cs/

强制解压备份文件到根目录,如果遇到报tar错误,去掉z指令(-xvpf)


cd /
sudo su
sudo tar -xvpfz /media/dell/000268F4000CB3E2/ubuntu_backup -C /

将fstab文件复制到原先系统中/etc目录下


sudo cp -pdr /home/cs/fstab /etc/

打开fstab复制UUID硬盘ID,替换/boot/grub/grub.cfg文件里面的UUID。

xshell下载grub.cfg文件,记事本打开,全选复制到word中,ctrl+f(查找替换)

然后xshell打开grub.cfg配置文件,右键粘贴保存后重启系统!


vi grub.cfg
:wq!
reboot

验证系统迁移后的功能

第四部分:重启系统,验证软件功能,可以看到应用软件已经正常显示并使用了。大功告成!

最后,我们也希望这种探索能力持续提升我们的服务水平,在擅长的领域为更多的小伙伴提供生产力工具和保障IT基础架构的稳定运行。