问题的描述:
我们用了一个树莓派后如果不想用这个 SD 卡了, 想要把 SD 卡初始化恢复原来的样子, 我们首先插上 SD 卡, 并在电脑上会看到一个 boot 磁盘, 但是查看属性会发现 boot 只有 40+M 的容量(我的是 40 多 M, 取决于之前装的系统是什么).SD 卡是至少 8G 的容量, 那么剩下的容量去哪儿了呢? 因为 SD 卡在树莓派中式当做系统盘使用的, 所以剩下空间应该是被保护起来的(格式是 Linux 的格式而非 FAT), 所以直接看不到, 这时候格式化的话相当于只对那 40+M 进行了格式化, 是没有用的.
配置: Mac OS 系统, 树莓派装过 Linux 的 SD 卡, 读卡器
方法 1(推荐的): 覆盖第一个扇区后格式化重新写(OS 中是 "抹除")
(1) 首先打卡 "Terminal", 用 df 命令查看当前已挂载的卷
df -h
这时候可以找到对应的 boot 盘(我的电脑中是 / dev/disk2s1)
(2) 使用 diskutil unmount 将这些分区卸载:
diskutil unmount/dev/disk2s1
(3) 通过 diskutil list 来查看设备(这里可以看到磁盘真正的大小, 图示是我的 16G 的 SD 卡):
diskutil list
(4) 使用指令 dd 覆盖磁盘的第一个扇区 512 个字节:
sudo dd bs=512 count=1if=/dev/zero of=/dev/rdisk2
注意! 这里是 "rdisk2" 不是 "disk2", 也不用管 s1,s2 什么的. 上面的 sudo 是系统提示 "Permission
denied", 所以用了 sudo 权限, 但是会要求输入密码, 输入你的用户密码即可.
(5) 这时候就已经完工啦, 只需要把 SD 卡的读卡器重新拔插一下, Mac 上面个就会自动出现 "此电脑不能读取您插入的磁盘" 如下图
这时候选择 "初始化". 然后选中对应 SD 卡的磁盘, 将磁盘格式设置成 FAT, 名称起成你想要的名称即可啦~ 最后点击 "抹掉", 整个磁盘就会被格式化, 一个空的磁盘就恢复啦!
方法 2: 全部清零后格式化重新写(OS 中是 "抹除")
除了 (4) 其他步骤完全相同, 只是 (4) 变为如下操作:
(4-2) sudo dd bs=4m if=/dev/zeroof=/dev/rdisk2
注意: 这里一定要把 of 写对, 否则的话会默认写进 Mac 电脑中, 不把所有磁盘空间占完 "誓不罢休"! 所以一旦写错一定要强制停止 "ctrl+c"(就是 Mac 上面的 ctrl, 不是 command!).
这样就会把整个磁盘写除, 会需要等待一段时间, bs 对应的写的速度, 可以调的大一些会写得更快. 最后会有相同的效果, 继续按照上面的操作即可完成.
总结:
显然第一种方式只写一个扇区的一部分会更加快捷, 第二种写除整个磁盘的方式写的数据会多出很多, 需要等待一段时间. 个人推荐第一种方法.
参考资料:
- https://www.jianshu.com/p/5dc83db2b78e
在此一并感谢诸位作者!!!
来源: http://www.jianshu.com/p/fcc592099b20