最近实验室的服务器想做一下升级,把500G的西数换成4T的希捷。因为系统上有很多东西,所以最开始想的是直接做系统对拷,过程很顺利,虽然查了不少教程,但是发现最简单直观的方法还是用 dd 命令,实例如下:
sudo dd if=/dev/sdx of=/dev/sdy bs=128K conv=noerror,sync status=progress
解释一下参数的意义:if是指源盘,of是指目标盘,注意sdx和sdy没有数字后缀,这里拷贝的整个盘,而不是硬盘的某个分区。上述操作完成之后,理论上两个硬盘的信息是完全一致的,包括各个分区的UUID,所以dd操作之后直接替换硬盘就ok了,没有其他操作。
但是蛋疼的地方来了。我原来500G的硬盘是MBR分区格式,不支持4T这么大的硬盘。也就是说我可以拿4T的硬盘做系统盘,没问题,但是我只能使用其中的2T空间,另外2T空间是无论如何无法获取的。具体MBR为什么最大支持2T的硬盘,诸位可以搜相关博客,不是我的重点。
那怎么操作才能将MBR专程GPT,同时不影响硬盘里的系统信息呢。其实MBR转GPT格式很简单,以此输入以下命令就可以了:
sudo gdisk /dev/sdy
w
y
但是蛋疼的地方又来了,这么操作之后,如果直接reboot的话,开机就无法进入系统了。很简单,grub对MBR和GPT是不兼容的,所以在转成GPT之后修复一下grub就OK了。
下面是具体步骤:
零,备份数据。任何方法都有可能出现意外,一定不要忘记备份数据。不过我的方法都是在新硬盘上操作,即使方法失败了也最多是从原始硬盘上重新拷贝一次数据,所以备份的重要性不是很突出。
一,重复我上面提到的dd操作,先将数据整个拷贝到新硬盘中去,保证新硬盘是能正常启动的,然后用gdisk将MBR转成GPT。
二,制作一个与我的Linux系统差不多的U盘启动盘。
三,开机,选择UEFI格式的U盘启动项,进入之后的第一个选项,这时会进入体验版的桌面系统(不知道怎么称呼,懂就行)
四,安装boot-repair,方法如下:boot-repair。选择recommend repair,一定要仔细看它的提示,然后一步步照做就行了。
五,虽然我是用boot-repair这个工具做成功的,但是也操作了好几遍才进入熟悉的页面,所以诸位如果不能成功,多试几次,应该是可以的。
完