一:概述

自笔记本换了1T的硬盘后,就多出来一块250G的m2硬盘,买一个硬盘盒做扩展的话,又得一百往上了,看了看我那跑在机械盘上的centos服务器,又看了看手里的硬盘,哈哈哈,生命的意义在于折腾。

二:资源

手里的硬盘是nvme协议的m2接口的250G硬盘,网购了nvme转pcie4的转接板,机械盘是290G的sata盘,主板是华硕的P5G41T-M LX3老主板,跑的是centos7,买了一个特别小的U盘(>=200m)常年插在主板,还有一个装系统用的U盘(>=centos.iso),过程中俩张U盘都会被格式化,做好数据的备份。

三:方案

—-引导系统

有很多引导系统的方式,我用了最火的四叶草启动器,可以自己去GitHub下载文件,也可以去BDUtility(科学上网)下载工具用工具安装,这里注意要保证u盘格式化成GPT EFI Fat32格式,用下载工具的话工具会帮你完成格式化,这里有一个地方要注意,在这个做好的启动器根目录没有支持老主板|(我这张主板就不行)的boot文件,搜索关键字“Clover_v2.3k_r3277_USB”有这个版本的根目录下所有boot文件copy到你做好的启动器根目录。

—-迁移系统

最初是想用dg克隆硬盘,可目标盘比源盘小啊,而且不支持调整Linux的文件系统分区。想到用linux自带的dd命令克隆磁盘,可克隆过来的系统盘,clover四叶草启动器,即使安装了nvme的驱动也识别不了。最后是通过clover安装了同样的centos7系统(版本和Linux内核对旧系统一致),通过tar打包了整个系统文件,到新系统解包。

四:步骤

安装m2硬盘到转接板,将转接板插到主板pcie上(pcie4比pcie1快,而且我服务器用不着显卡,就插到pcie16上了,注意不要插到pci口上)
做clover硬盘,准备200m以上的小U盘,下载BDUtility,

打开Bootdisk Utility软件,选中U盘后点击Format,直到软件显示All Done字样时才表示这一步骤完成算是做好一半clover启动盘,

下载Clover_v2.3k_r3277_USB的文件,替换clover启动盘根目录的boot文件,

进入启动盘根目录的\EFI\CLOVER\drivers下找到带off的文件夹,这里面是所有没启用的驱动,找到nvme开头的efi文件(给主板提供nvme驱动能力),把这个文件复制到上一级目录(drivers下)的bios和uefi中,

想去掉开机5s的延时进入\EFI\CLOVER\config.plist在里面找到<key>Timeout</key> <integer>5</integer>把这里5改成0,

想更改clover的主题,先下载主题,复制自己喜欢的主题目录到U盘的efi/clover/themes目录,进入\EFI\CLOVER\config.plist找到<key>Theme</key> <string>embedded</string>将embedded改成主题文件夹的名字,

重启电脑根据自己主板进入bios系统选择u盘启动。
迁移centos系统,确定新老系统一致性
首先用
cat /etc/redhat-release                                                //检查当前centos版本
再用命令
uname -sr                                                                    //检查centos内核版本
打包前
yum update                                                                 //升级一下云吧
保证这些可以升级的东西在新老系统一致

网上建议用screen去开窗口,因为打包解包时间太长容易掉线,准备好以后就可以打包了,

打包,把旧机器的所有系统文件压缩
先cd /
cat /etc/fstab                                    //这里是你之前设的开机自动挂载硬盘的文件,有你系统自动挂载的硬盘也有你挂载的数据盘
然后开一个
screen -R backup                               //(大R,backup是窗口名字)

然后正式打包
tar cvpzf backup.tgz / --warning=no-file-changed --exclude=/proc --exclude=/mnt --exclude=/sys --exclude=/dev --exclude=/tmp --exclude=/boot --exclude=/etc/inittab --exclude=/etc/fstab --exclude=/etc/init --exclude=/etc/X11 --exclude=/etc/sysconfig --exclude=/etc/xinetd --exclude=/backup.tgz

此处因为是新机器有好多密钥编号不一样了(虽然我只是换了个硬盘,其他还一样)排除掉很多不必要的目录,–exclude=/backup.tgz是自己也要排除,哈哈哈,要不然一直打包自己打包不完了,保存好这个包(我放在笔记本上了)。

打包完了,就可以考虑装新系统了,
在MSDN或者清华的开源镜像找到你需要的centos7找到下面的版本CentOS Linux release 7.9.2009 (Core)(版本是通过上面的获取版本命令查到的),里面的iso文件下载到本地,
下载这个rufus启动盘软件,先用rufus把centos的iso镜像文件做到装系统的U盘里,

同时插上俩张U盘,保证除了目标m2硬盘不插其他硬盘,
华硕主板重启按f8进入选择启动项页面,
启动clover的U盘,
从clover启动盘里看到centos安装镜像,直接敲回车,进入安装页面,
安装到目标盘里,可能会要求释放目标盘的容量,安装完成重启。

安装完成后,默认不开网卡,哈哈哈
ip addr                                                         //获取网卡,一般是最下面一行
ll /etc/sysconfig/network-scripts/ifcfg*                //找到存放网卡的地方
vi /etc/sysconfig/network-scripts/ifcfg-enp2s1          //打开对应自己网卡的配置文件
找到其中的ONBOOT=no 改作ONBOOT=yes,然后:wq保存
service network restart

关闭防火墙,我是frp到外网的所以直接关
systemctl stop firewalld service                          //关闭防火墙
systemctl disable firewalld.service                      //开机禁止防火墙服务器

重启
reboot
解包,在新系统上解旧系统的压缩包
到了新系统首先保存一下新系统的硬盘uuid,
在解包之前
cat /etc/fstab                                      //查看新系统的硬盘uuid,
在新系统里,把备份的backup包放在根目录
cd /
screen -R backup                                //(大R,backup是窗口名字)
tar xvpfz backup.tgz -C /
恢复文件权限
restorecon -Rv /                                  //这里到后期docker启动异常的话实在不行就关了吧
解包完成的fstab文件里硬盘uuid要改回解包之前的uuid
vi /etc/fstab                                         //把新uuid写回去,因为刚刚解包把新系统的给覆盖了,不写重启找不到硬盘uuid就进入救援模式了
然后重启
reboot

如果现在docker如果一部分启动了一部分没启动
那就是权限问题,selinux直接关了吧
sed -i s#SELINUX=enforcing#SELINUX=disabled# /etc/selinux/config        //永久关闭selinux
vi /etc/selinux/config
SELINUX=disabled 改成 SELINUX=permissive
修改完保存退出(按esc ,输入:wq回车), 重启linux(reboot)即可启动容器