我的 MacMini 买来好几年了,期间自己拆开加装了一个 SSD,并按照网上的说明,和原先的硬盘组合为一个 Fusion Drive 。
最近脑子发热,想重装一下系统,结果在格式化阶段死在那里不会动了。
各种谷歌百度,各种尝试无效。

首先是分离 Fusion Drive 混合分区。

diskutil cs list # 列出所有 Fusion Drive

clipboard.png

苹果客服支持要我直接删除 Logical Volume Group,也就是下面的命令。

diskutil cs delete 11111111-2222-3333-4444-555555555555

后面的 111……555 自行替换为你自己的Logical Volume Group 的 UUID,就是图上第一行漂白部分。

反正我测试了是无效,所以,只好一步一步删除。
找到最下面漂白部分的 logic volume 的 UUID,执行

diskutil cs deleteVolume 11111111-2222-3333-4444-555555555555 

后面的 111……555 自行替换为你自己的 UUID。
然后再执行上面的删除 Logical Volume Group 的命令。

最后还是无效,大概停留在 20% 左右的进度就下不去了。大概是分区表被我破坏掉了。

无奈之下,尝试安全删除磁盘

diskutil list
# 我的 ssd 盘显示为 disk3

diskutil unmount force /dev/disk3
# 此步出现找不到磁盘,于是换个命令

diskutil unmountDisk /dev/disk3

#然后下一步安全删除并清零磁盘
diskutil zeroDisk /dev/disk0

#最终还是失败,出现如下错误:

~ Started erase on disk2 
~ Error: -69759: Securely erasing data to prevent recovery failed Underlying 
~ error: 5: Input/output error

#尝试下面的命令,也是失败
diskutil eraseDisk HFS+ NAME /dev/disk3

此处没有测试一个命令:

fdisk -a hfs /dev/disk3

diskutil 其实是 fdisk 的老版本命令。只是被苹果使用后,有过拓展。但 fdisk 能实现更灵活的操作。不必为苹果的一些安全机制所限制。只是,因为我采用了更测地的抹除模式,所以,没有测试该命令。

大杀器,类 Unix 系统磁盘的深度格式方法

苹果是类 Unix 系统,所以,他的磁盘管理模式底层也是和其他 Unix 系统类似。比如存在一些特殊的设备驱动,如 dev/nulldev/random 等。前者接受任何输入,就像一个实时垃圾清理站。后者如果能够被访问,则实时输出一堆随机数据。我们可以通过 cat /dev/random 进行访问,需要通过 Ctrl+c 进行中止。

此处我们就用到 dev/random 来解决我们的磁盘问题。

当我们的磁盘驱动故障或者出现低格问题时,我们可以通过 dev/random 来强制覆盖磁盘,它会毁坏分区表和当前格式,将驱动显示为一个空白盘。

# 进入 root 模式,输入 root 口令
sudo su

# 列出你的磁盘,找到你想要重格的磁盘名称
diskutil list

##### 千万注意不要找错磁盘,下列操作不可恢复。我要低格的是 disk3,命令如下 ####
cat /dev/random > /dev/disk3

运行1分钟左右,按 ctrl+c 中断它。然后执行

diskutil list

如果显示如下,说明磁盘已变为一个空盘。

clipboard.png

然后,你就在磁盘工具中分区、格式,再重装系统即可。

超大杀器,用 dd 命令低格

在 linux 下,低格工具就是 dd

dd if=/dev/zero of=/dev/disk2 conv=noerror bs=128k
  • bs=bytes:同时设置读写块的大小为 bytes ,可代替 ibs 和 obs

  • conv=noerror:出错时不停止处理。

盘符视实际情况, diskutil list 可以查看盘符

低格就使用0/1覆盖整个硬盘,时间几个小时,视硬盘大小。

好了,让它格吧,我睡去咯。^_^

对了,还有屠龙刀 ddrescue

我还没测试,不过已经用 brew 安装了。
你可以执行下面的命令先安装着

brew install ddrescue

基本操作:

Usage: ddrescue [options] infile outfile [mapfile]

详细请执行命令 ddrescue --help 查看。


ingood
708 声望80 粉丝

Keep it simple & stupid.