在 Linux 上设置 SD 卡“临时写保护”位

在 Linux 上设置 SD 卡“临时写保护”位

我想TMP_WRITE_PROTECT在我的 SD 卡上设置 (临时写保护) 位/dev/mmcblk0。我认为这可以通过重写 CSD (卡特定数据) 来实现/sys/block/mmcblk0/device/csd,但肯定已经有一个 Linux 工具可以完成所有这些位拆解并重新计算 CRC 吧?

我发现mmc 实用程序,但它似乎使用了不兼容的接口:

# mmc extcsd read /dev/mmcblk0
ioctl: Connection timed out
Could not read EXT_CSD from /dev/mmcblk0
# mmc writeprotect get /dev/mmcblk0 
ioctl: Connection timed out
Could not read EXT_CSD from /dev/mmcblk0

以及 Stack Overflow 评论提到了一个名为 sdtool 的命令行工具,但没有提供 URL...

答案1

那个sdtool你找不到的神秘这里,您确实可以使用它来启用卡上的临时写保护:

sudo umount /dev/mmcblk0p*
sudo sdtool /dev/mmcblk0 lock
sudo sdtool /dev/mmcblk0 reset

同样地,unlock也会取消写保护。

警告:我的系统无法识别已设置标志,因此我必须将文件系统重新安装为只读。将写保护的卡安装为将rw默默允许写入,而实际上不会发生写入,从而导致奇怪的文件系统错误(幸运的是,这不会影响 SD 卡,但仍会交出计算机上的程序)。

相关内容