1 前情提要
当时购买工作站时不是自己挑选的配置,总价2万的工作站(Dell Precision 5820)竟然只给配了一块4T的希捷企业级机械硬盘,唉……本人日常是通过局域网内的远程桌面控制工作站的(参考),在日常使用中可以感受到机械硬盘读取速率导致的画面卡顿,而且,在跑视觉算法时经常是硬盘读取速度限制了算法的运行速度;再加上有一次在工作站运行时摔倒了一次,当时就连续多次启动失败,还好后来重新插拔硬盘后又可以正常运行了,但从那以后我就觉得这个硬盘不太可靠了,进一步增加了自己要换硬盘的信念。最近正好赶上实验室配件购买,所以就决定升级一下内存并更换这块不靠谱的硬盘。
更换SSD硬盘有两种选择:当前常见的NVME M2 SSD,或者是SATA3 企业级固态硬盘,考虑到企业级固态硬盘的超高售价以及提升不大的读取速度,决定选择使用M2 SSD硬盘,日常记得常做数据备份就可以。当时工作站到手的时候就拆机看了,主板上没有M2接口的硬盘位,要想使用M2硬盘有两种方案:方案一是使用官方的PCIe SSD FlexBay套件:
该方案优点是可以实现NVME硬盘的热插拔,而且位于硬盘仓位里,有系统风扇可以提供散热;缺点是,咨询了Dell的代理商,该方案由于售价高(上千元)、操作麻烦已经基本被弃用了,他们自己都不用这种方案,而是使用PCIe转接卡,这就是所谓的方案二。使用PCIe转接卡方案的优势是价格低(几十元)、操作便捷,但缺点就是散热问题,不仅没有系统风扇直接降温,而且还离显卡更近;此外,还需要确认主板支持NVME硬盘启动,这个已经跟代理商沟通过没问题的。最终,权衡之后选择使用方案二。
2 材料准备
转接卡使用的是绿联单盘位转接卡,最高支持32Gbps的传输速度(应该是PCIe3.0 x4)。但是要是要让我重新选的话,我不会选这个转接卡了,因为其硬盘固定方式不可靠,它是通过一个螺栓将硬盘卡在转接卡上,而不是常规使用螺丝帽来固定的,如下图所示:
由于该螺栓中间空隙的高度与硬盘厚度并不一致,导致硬盘按照这种方式安装后可以上下晃动,虽然不至于影响金手指处的连接,但是总觉得不靠谱;因此本人没有按照这种图示的方式进行连接,而是将螺栓放置到背面,仍使用传统的螺丝帽固定硬盘,毫不松动、非常可靠。
至于硬盘,本想选择与机械硬盘一样存储容量的型号,但是无奈三星4T硬盘当前价格已经到了2600左右(2024年11月),价格实在是有点难接受,只能购买2T版本的了;由于支持PCIe3.0的980型号当时京东上没有2T版本的,并考虑到硬盘的散热问题,所以最终选择了PCIe4.0版本的990PRO 散热片版:
这就是合体后的样子了:
3 硬盘克隆过程
在Windows系统下硬盘克隆是件很简单的事,有很多工具可以直接使用,如DiskGenius等;而在Ubuntu下,稍微会麻烦一点,有推荐使用台湾出品的Clonezilla(再生龙)软件的,也有推荐直接使用dd命令进行全文件复制的,大概看了一下不同方法的操作流程,最终决定使用更简单的dd命令进行操作,记录一下操作过程。
3.1 制作U盘启动盘
制作一个Ubuntu系统盘,可参考该教程使用Rufus制作;在这个时间里可以将转接卡安装到工作站中,注意查看PCIe通道数,这个绿联转接卡是4通道的;建议在一切操作之前备份重要数据。
3.2 旧硬盘瘦身
进入U盘启动模式,选择Try Ubuntu,注:本节后续的所有操作均是在该模式下进行的。
进入系统之后先查看现有的硬盘,使用sudo fdisk -l
命令查看当前硬盘的分区以及类型(注:这是后期补的,操作过程中没有及时记录):
1 | -❯ sudo fdisk -l |
可以看到分区类型为gpt,一共有5个分区,为/dev/sda1-/dev/sda5
(原来的机械硬盘),分别对应efi、boot、swap、/和/home。要想进行克隆,则需要将新硬盘设置为完全相同的分区模式,此处使用Ubuntu自带的gparted对硬盘进行分区,此处的分区大小设置应与之前相同,但由于新硬盘小于旧硬盘,所以需要先对旧硬盘进行“瘦身”。
旧硬盘的“瘦身”也是通过gparted完成的,将未使用的分区进行压缩,本人当时是在/home下有大量的未占用空间,所以将其瘦身,直至新硬盘容量足以容纳现有的分区。(注:该过程对于机械硬盘来说处理时间较久,本人就曾因为时间过久以为卡死了,后来发现确实需要蛮长时间的)
3.3 硬盘克隆
新分区完之后就是简单的数据拷贝了,这里使用dd命令对各个分区的数据进行完全拷贝:
1 | dd if=/dev/sda1 of=/dev/nvme0n1p1 |
如果想查看拷贝进程,可以新开一个终端,输入以下命令:
1 | watch -n 5 killall -USR1 dd |
这样使用dd进行完全拷贝之后,会使得新硬盘的各个分区uuid与旧硬盘完全相同,如果想要新旧硬盘一起使用的话,就会出现问题,可以使用uuidgen
命令更新新硬盘分区的uuid;而我是直接用旧硬盘替换新硬盘的,所以不存在这个问题。现在拔掉旧硬盘,重启电脑,设置启动顺序之后,就可以正常开机了,与旧硬盘下状态完全一样,不过速度已经起飞了。
4 NVME硬盘情况查看
使用dmesg查看PCIe接口设备的连接速度:
1 | -❯ sudo dmesg | grep Gb |
前两个是显卡,PCIe带宽为126.016 Gb/s,是PCIe3.0 x16速度,该显卡实际支持的是PCIe4.0 x16速度;第四个是新安装的NVMe硬盘,PCIe带宽为31.504 Gb/s,是是PCIe3.0 x4速度,该硬盘实际支持的是PCIe4.0 x4速度;PCIe版本速度对应情况查看该文章。使用Ubuntu自带的Disk软件检测读取速度:
使用nvme-cli
工具查看硬盘实时状况:
1 | -❯ sudo nvme smart-log /dev/nvme0n1 |
至此,硬盘克隆过程结束。