【问题标题】:badblocks: Resource busy while trying to determine device sizebadblocks:尝试确定设备大小时资源繁忙
【发布时间】:2018-12-01 06:36:57
【问题描述】:

我正在尝试在 macOS High Sierra 10.13.6 上运行坏块。我使用 macports 安装了坏块。我在尝试运行它时不断遇到错误,我什至不知道如何让坏块运行

sudo badblocks -c 4096 -s -w -o /Users/mcbeav/Desktop/blocks.txt /dev/disk0s2

这会一直返回错误

坏块:尝试确定设备大小时资源繁忙

如果我尝试

sudo badblocks -c 4096 -s -w -o /Users/mcbeav/Desktop/blocks.txt /dev/disk0

我得到了错误

badblocks:值太大,无法存储在数据类型无效的结束块中(7813820416):必须是 32 位值

谁能帮帮我?

【问题讨论】:

  • 你可以试试不带 -c 选项的第二个命令吗? /dev/disk0 的大小是多少?
  • 您可以通过使用非破坏性读写模式(-n 而不是 -w)绕过 MacOS 阻止写入磁盘。
  • @amol 这是一个 8TB 驱动器。当我有时间的时候,我会尝试不带 -c 标志的。感谢您的建议
  • @gregory 我可以试一试,看看会发生什么,但我的意图是基本上烧录磁盘,看看它是否会失败。它是全新的,由于我不会进入的情况,我想运行 badblocks 用随机位写入磁盘的每个扇区,然后使用 bonnie++ 对其进行压力测试
  • @mcbeav,好的;那么我会使用 diskutil 卸载驱动器:diskutil unmount /Volumes/foo 然后尝试运行 badblocks。

标签: unix terminal


【解决方案1】:

我有同样的问题。但后来我打开了磁盘工具并按下物理设备上的弹出(确保它是硬盘驱动器而不是卷)。这将卸载卷但将保持设备仍然可用,您可以通过运行来检查:

diskutil list

现在再次运行 badblocks 命令,它应该可以正常工作了。

【讨论】:

    【解决方案2】:

    我的建议是:

    a) 通过 Mac OS X 控制台在Recovery Mode 中运行坏块

    High Sierra (10.13+) 和 APFS(文件格式系统)会阻止对磁盘的某些操作。您必须处于恢复模式或关闭磁盘保护才能按照您的建议进行操作。

    Turn off your Mac (Apple > Shut Down).
    Hold down Command-R and press the Power button. ...
    Wait for OS X to boot into the OS X Utilities window.
    Choose Utilities > Terminal.
    Enter csrutil disable.
    Enter reboot.
    

    Mac OS X 解决方法:

    根据过去的经验,我认为您正在使用 MacOSX 的安全功能(磁盘保护和应用程序认证)。

    以这种方式引导到 Ubuntu(USB 记忆棒)并运行 badblocks 测试会更容易。 (在我看来)

    我希望这会为您指明正确的方向。

    【讨论】:

    • 在尝试运行坏块之前,我从恢复模式运行了 csrutil disable 命令。我将不得不尝试从恢复中运行坏块,看看是否有效
    • @mcbeav 你能分享你的Mac机器版本和磁盘设置吗?例如,您使用的是闪存盘还是旋转磁盘?我的感觉是恢复模式将消除磁盘争用的风险。
    • 它实际上是一个“Hackintosh”所以,我不确定这些信息到底有多大帮助,但这应该不会影响任何事情。 8TB 是 WD Red NAS 驱动器,通过 SATA 端口连接。操作系统从 SSD 启动。我可以启动到 Windows,但我没有太多在 Windows 中使用 linux 终端的经验,因为它显然可用?
    • 您可能想查看此答案:apple.stackexchange.com/questions/57869/… - 例如,启动到 Ubuntu 并从磁盘上的该操作系统运行 badblocks。 [想法]
    • 不幸的是,我已经有几天无法测试任何东西了。这篇文章有点老了,有些信息不正确,但总的来说,我想我最终可能只是从 U 盘启动 Linux 并运行这样的坏块。我真的不想再浪费时间弄乱它了。我将尝试线程中建议的任何内容,如果没有任何效果,请使用 Linux 路线。
    【解决方案3】:

    我能够通过

    获得适用于 OSX 10.15 的坏块

    1) 禁用 csrutil,如 here 所述

    2) 通过磁盘工具卸载所需的坏块驱动器

    3) 运行坏块:sudo badblocks -b 4096 -w -s -v "$MOUNT_POINT" > "badblocks.info",其中MOUNT_POINT=/dev/disk2


    我通过brew install e2fsprogs 安装了坏块,如here 所述


    顺便说一句,我还做了this,以便通过 smartctl 查询 USB 连接的驱动器。

    【讨论】:

      猜你喜欢
      • 2017-09-02
      • 1970-01-01
      • 2016-08-29
      • 2015-09-24
      • 1970-01-01
      • 1970-01-01
      • 2020-11-04
      • 2023-03-06
      • 1970-01-01
      相关资源
      最近更新 更多