AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 773956
Accepted
giovi321
giovi321
Asked: 2024-04-06 20:35:45 +0800 CST2024-04-06 20:35:45 +0800 CST 2024-04-06 20:35:45 +0800 CST

解释 badblocks 的输出:什么时候该更换 microSD 卡?

  • 772

语境

我正在运行一个带有 microSD 的树莓派零,因为它是设计的。但是,对于这个特定的应用程序,我无法像通常使用树莓派那样使用只读系统。

客观的

密切关注 microSD 的健康状态(并最终以某种方式收到通知,表明需要更换 microSD)。

问题

  1. 监控 microSD 健康状态的最佳方法是什么(否,fsck因为我无法在系统运行时卸载 microSD);
  2. 就实用性和有效性而言,以下提出的方法是否是最佳解决方案?

提议的方法

我想使用badblocks输出来监视 microSD 的状态,并最终在适当的时候更换它。但什么时候该更换 microSD 呢?多少个坏块算太多?我应该查看写入错误或读取错误还是两者都查看?

我做了以下考虑:microsd 卡会自动重新分配坏块之外的数据。因此,如果 microSD 已满 80%,则有 20% 的块可能会“变坏”,但仍可保持 microSD 运行。添加一点置信区间,我们是否可以说,如果badblocks输出的坏块数量低于空闲空间块的 50%,那么使用 SD 卡仍然是安全的?

澄清:

  • 区块总数:100
  • 可用空间(以块为单位):20
  • 接受损坏的块的最大数量(或其他):10
sd-card
  • 1 1 个回答
  • 308 Views

1 个回答

  • Voted
  1. Best Answer
    Marcus Müller
    2024-04-06T22:41:11+08:002024-04-06T22:41:11+08:00

    多少个坏块算太多?

    一个。

    badblocks是错误的工具。当它报告第一个坏块时,闪存介质已经被使用到损坏的程度。就像一样fsck,它只能检测到事情已经出现问题的情况——并且您可能已经丢失了数据。

    在 SD 卡(通常是您可能遇到的所有闪存大容量存储设备)中,硬件中有一个闪存转换层,这使得本质上模拟、不可靠且容易磨损的实际内存看起来像简单、可靠的块- 可寻址内存。它通过两种方式做到这一点:

    1. 广泛的前向纠错,以防止比特在物理介质中翻转;页面写入的次数越多,写入的次数就越频繁
    2. 磨损均衡,使对逻辑页面的写入(如 Pi / 操作系统所见)最终尽可能分布在物理页面上,这样您就不会一直在同一页面上进行操作

    这意味着磨损均衡发生在硬件中,对操作系统不可见。当文件系统驱动程序发现坏块时,就会出现纠错无法处理的不可挽回的错误。这不太可能,除非该页面已被写入很多,在这种情况下,整体写入量已经使磨损均衡达到极限。这意味着您已经写入了很多次,因此即使在将写入分布到整个介质之后,某些地方仍然会被频繁写入而导致失败。(接下来通常发生的事情是SD卡内部的控制器告诉主机它已成为只读设备)。

    所以,不。您无法通过验证 SD 卡上的数据来检查 SD 卡的状态(这是 fsck 和 badblocks 所做的),除非您等到为时已晚。

    您需要SD 卡内部的信息以及估计总共有多少写入“保留”。据我所知,“给我健康信息,亲爱的 SD 卡”命令没有标准回复,但“工业”标记的 SD 卡可能支持 CMD65,并且有一些 Linux 工具(sdmon)支持读取它。

    简而言之:如果您需要可靠的写入存储,那么 SD 卡不是最佳选择。该界面最初并不是为此设计的;相反,假设写入大部分是线性发生的,一次大块,并且很少有重复写入(相机使用的典型情况:写入一张完整图像,然后更新一次 FAT)。

    如果您需要在 Pi 上提供长期可靠的大容量存储,恐怕您最好的选择是购买 USB 转 M.2(通常为 SATA)转换器外壳(以及供电的 USB 集线器,如果需要),然后将其插入配备 SSD 后,将其设置为 Rpi 零。大多数这些控制器都支持 SMART 命令,因此您实际上可以使用smartctl;来监视某些内容。确保每个属性的“标准化”值高于“旧阈值”值。确保你不买你能找到的最便宜的SSD,但每个中档SSD都带有属性177、wear-level-count属性195Hardware ECC Recovered和属性182erase-fail-count-total。这些标准化值的下降并不一定意味着有什么不好的事情(这是预期会发生的,否则这些指标将毫无用处),但是一旦您接近阈值,您可能需要考虑更换 SSD。(请注意,您的 Rpi Zero 可能会先失效;在 5 欧元的 RPi Zero 和消费类 SSD 之间,SSD 是专为机械、热和电气可靠性而设计的)。

    • 13

相关问题

  • 可以对 SD 卡映像文件执行 zerofree 处理吗?

  • 复制 SD 卡

  • VFS:无法打开根设备 mmcblk1p1 或未知块 (179,33)

  • USB mmcblk 支持(realtek 或其他)

  • Steam 库文件夹必须位于可执行文件系统上

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve