Image 如何修复写入SD卡的不良dd img

Image 如何修复写入SD卡的不良dd img,image,macos,raspberry-pi,sd-card,dd,Image,Macos,Raspberry Pi,Sd Card,Dd,我正在尝试使用我的MacBook Pro(运行OS X)为我的Raspberry Pi编写2016-05-10-raspbian-jessie.img(图像)到我的SanDisk Ultra 4GB(4级)SD卡 运行dd cmd时,会出现一些错误: Matts-MacBook-Pro:dev Matt$ sudo dd bs=1m if=~/Downloads/2016-05-10-raspbian-jessie.img of=/dev/rdisk2 dd: /dev/rdisk2: shor

我正在尝试使用我的MacBook Pro(运行OS X)为我的Raspberry Pi编写
2016-05-10-raspbian-jessie.img
(图像)到我的SanDisk Ultra 4GB(4级)SD卡

运行dd cmd时,会出现一些错误:

Matts-MacBook-Pro:dev Matt$ sudo dd bs=1m if=~/Downloads/2016-05-10-raspbian-jessie.img of=/dev/rdisk2
dd: /dev/rdisk2: short write on character device
dd: /dev/rdisk2: Input/output error
3782+0 records in
3781+1 records out
3965190144 bytes transferred in 635.507654 secs (6239406 bytes/sec)
我实际上得到SD卡上的文件,但当我启动Raspberry Pi时,我得到一个内核恐慌:

Unable to mount root filessystem on unknown block
建议:

  • forcefsck
    添加到SD卡上
    cmdline.txt
    的末尾
  • 使用fsck:
    sudo fsck-fy/dev/disk2
    ,但我只返回用法文本:
    用法:fsck-fdnypq-l编号

在OSX中实现这一点的最佳方法是什么?我的MBP是我唯一可以工作的SD卡读卡器,我无法获得“应该”在fsck中工作的命令。最好知道原因。

图像文件有多大,SD卡的实际大小是多少?这看起来可能已经耗尽了磁盘上的空间,因为“3965190144字节传输”为3.965 GB,非常接近该卡的标称4GB容量


注意:在检查大小时,可能会混淆真正的千兆字节(GB=100000000字节)和千兆字节(GiB=1073741824字节),有时也称为千兆字节。磁盘大小通常以GB表示,但RAM通常以GiB表示,用于显示大小的软件工具通常不一致。如果有疑问,请查看实际的字节数。在OS X中,您可以使用例如
diskutil info/dev/disk2
获取确切的磁盘大小图像文件有多大,SD卡的实际大小是多少?这看起来可能已经耗尽了磁盘上的空间,因为“3965190144字节传输”为3.965 GB,非常接近该卡的标称4GB容量


注意:在检查大小时,可能会混淆真正的千兆字节(GB=100000000字节)和千兆字节(GiB=1073741824字节),有时也称为千兆字节。磁盘大小通常以GB表示,但RAM通常以GiB表示,用于显示大小的软件工具通常不一致。如果有疑问,请查看实际的字节数。在OS X中,您可以通过以下方法获得确切的磁盘大小:例如,
diskutil info/dev/disk2

diskutil info/dev/disk2->总大小:4.0 GB(3965190144字节)(准确地说是7744512字节单位)将img装入磁盘3将img装入磁盘3总大小:4.0 GB(4016046080字节)(准确地说是7843840 512字节单位)是的,它太大了。如何修剪实际上没有使用所有分配空间的图像?使用[SDFormatter |并将装载的img中的文件复制到其上会在RPi中产生相同的错误。可能我需要在错误写入后“修复”SD卡?fsck不是工具吗?@ConfigurationNation我不知道如何在OS X上执行此操作--有一个脚本可以收缩图像,但它使用的Linux工具在OS X上不可用。你有(另一个)吗您周围的Linux box可以在上面运行吗?感谢Gordon,我不必重新分区(我不认为)映像有未使用的空间,我通过安装coreutils(“brew安装coreutils”)在OSX上缩小了映像其中包含gtruncate。使用diskutils umount卸载img,然后使用gtruncate--size=7744512。然后,dd命令正常工作!fdisk mysdcard仍然像img一样显示两个空分区。diskutil info/dev/disk2->总大小:4.0 GB(3965190144字节)(正是7744512字节单位)将img挂载为磁盘3将img挂载为磁盘3总大小:4.0 GB(4016046080字节)(正好是7843840 512字节单位)是的,太大了。如何修剪实际上没有使用所有分配空间的图像?使用[SDFormatter |并将装载的img中的文件复制到其上会在RPi中产生相同的错误。可能我需要在错误写入后“修复”SD卡?fsck不是工具吗?@ConfigurationNation我不知道如何在OS X上执行此操作--有一个脚本可以收缩图像,但它使用的Linux工具在OS X上不可用。你有(另一个)吗您周围的Linux box可以在上面运行吗?感谢Gordon,我不必重新分区(我不认为)映像有未使用的空间,我通过安装coreutils(“brew安装coreutils”)在OSX上缩小了映像其中包含gtruncate。使用diskutils umount卸载img,然后使用gtruncate--size=7744512卸载img。然后,dd命令正常工作!fdisk mysdcard仍像img一样显示两个空分区。