在 Linux 上設定 sdcard「暫時寫入保護」位

在 Linux 上設定 sdcard「暫時寫入保護」位

我想TMP_WRITE_PROTECT在我的 SD 卡上設定(臨時寫保護)位元/dev/mmcblk0。我認為這可以透過重寫 CSD(卡特定資料)來完成/sys/block/mmcblk0/device/csd,但肯定已經有一個 Linux 工具可以完成所有這些位元操作並重新計算 CRC?

我發現了mmc-utils,但它似乎使用了不相容的介面:

# 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 的命令列工具,但不提供網址...

答案1

那個sdtool你找不到的神秘存在這裡,您確實可以使用它來啟用卡片上的臨時寫入保護:

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

同樣,unlock將寫入保護去掉。

警告:我的系統無法識別該標誌已設置,因此我需要將檔案系統重新掛載為唯讀。安裝寫入保護卡將rw默默地允許實際上不會發生的寫入,從而導致奇怪的檔案系統錯誤(幸運的是,這不會影響 SD 卡,但仍然可以在電腦上提交程式)。

相關內容