0%

垃圾桶MacPro升级1T m.2 NVME硬盘并恢复系统

公司的Mac Pro硬盘只有250G,用于Jenkins的构建服务器经常容量告警,所以需要对硬盘进行升级。为了省钱并没有直接买苹果官方的PCIE硬盘,而是选择nvme协议的m2接口硬盘+转接卡的方案。

硬件

硬盘是下图这货
惠普1T固态硬盘 M.2(NVME协议)接口
转接卡是下图这货
转接卡
附上硬盘和转接卡购买链接
硬盘:https://item.jd.com/100002852554.html
转接卡:https://item.taobao.com/item.htm?spm=a1z09.2.0.0.69be2e8dQB9mWu&id=578978939927&_u=8makch023f
另外需要准备一个m2接口的硬盘盒恢复系统会用到。

系统恢复

失败的尝试

MacPro上原来的系统是macOS 10.14(Mojave),硬盘采用的是APFS格式,上面已经安装了非常多的工具,重新安装会非常麻烦,想着无缝过度,所以开始就想着硬盘直接对拷,开机同时按command+R进入恢复模式并选择磁盘工具,把系统盘整个恢复到新硬盘,但每次最后一个步骤都会弹出卷翻转失败的错误,试了五六次均以失败告终,遂放弃。

成功的尝试

难道真的只能通过网络在新硬盘上安装系统,再重新安装所有东西?
有点不甘心,google了很久,找到了这篇文章:APFS Bootable Clone With Command Line, 文章的步骤主要是以下几个(操作直接进入Mojave系统进行,无需恢复模式)

  1. 把rsync升级到最新版本,这个很关键,第一次操作就是因为没有更新导致系统无法启动;

    1
    brew install rsync
  2. 把新硬盘格式化为APFS格式,分区表格式采用GUID,分区名要记住,我这里命名为:BackupClone

  3. 变更新硬盘所有权属性:

    1
    sudo vsdbutil -a /Volumes/BackupClone
  4. 通过命令行rsync把原硬盘系统分区所有数据都同步到新硬盘BackupClone分区上去:

    1
    sudo rsync -xrlptgoXvHS --progress --delete --fileflags / /Volumes/BackupClone
  5. 获取新硬盘的标识符,我这里是disk3s1

    1
    diskutil list

硬盘标识符

  1. 在新硬盘上创建可启动分区,分区名为Preboot

    1
    diskutil apfs addVolume disk3 apfs Preboot -role B
  2. 获取BackupClone分区的UUID,类似这样一串:A579A99E-9795-4086-890E-04E2112D1E78

    1
    diskutil info disk3s1 | grep "Volume UUID"
  3. 在刚创建的Preboot分区上新建一个目录,名字是步骤7获取的UUID

    1
    mkdir /Volumes/Preboot/A579A99E-9795-4086-890E-04E2112D1E78
  4. 挂载原硬盘的Preboot分区,标识符可从步骤5中获取到,我这里是disk1s2

    1
    diskutil mount disk1s2
  5. 获取原硬盘系统分区的UUID,假定是这样一串:CD9E8D34-F576-3F9B-AF7C-217C860721F4

    1
    diskutil info disk1s1 | grep "Volume UUID"
  6. 把原硬盘Preboot分区CD9E8D34-F576-3F9B-AF7C-217C860721F4目录所有数据拷贝到新硬盘Preboot分区的A579A99E-9795-4086-890E-04E2112D1E78目录

    1
    sudo rsync -xrlptgoEvHS --progress --delete /Volumes/Preboot\ 1/CD9E8D34-F576-3F9B-AF7C-217C860721F4/ /Volumes/Preboot/A579A99E-9795-4086-890E-04E2112D1E78
  7. 按顺序卸载Preboot分区

    1
    2
    diskutil unmount disk1s2
    diskutil unmount disk3s2
  8. 在BackupClone分区执行updatePreboot命令

    1
    diskutil apfs updatePreboot disk3s1
  9. 指定新硬盘的引导文件夹的路径

    sudo bless --folder /Volumes/BackupClone/System/Library/CoreServices --bootefi
  10. 更新新硬盘DYLD缓存

    sudo update_dyld_shared_cache -root /Volumes/BackupClone -force
  11. 测试新硬盘是否能作为启动盘,到系统偏好设置,进入启动硬盘,会看到新硬盘可选,这时候就基本完成了文章里面的步骤。。。

关键

做完上面的步骤之后,我直接把新硬盘安装到MacPro上去,启动后屏幕显示文件夹加一个问号,这种情况是找不到启动分区,拆掉硬盘,重复了上面的步骤几次还是不行,绝望时想了一下是不是修复下权限就可以了,到恢复模式再选择磁盘工具,对新硬盘进行硬盘急救,再装上去竟然可以了,看来我的设想是对的,虽然进入系统后发现所有隐藏文件变成非隐藏了。。。,但能用就行。
硬盘急救修复权限