Linux で SD カードの「一時的な書き込み保護」ビットを設定する

Linux で SD カードの「一時的な書き込み保護」ビットを設定する

TMP_WRITE_PROTECTSD カードに (一時的な書き込み保護) ビットを設定したいのです/dev/mmcblk0が、これは の CSD (カード固有のデータ) を書き換えることで実行できると思います/sys/block/mmcblk0/device/csdが、すべてのビット バンギングを実行して CRC を再計算する Linux ツールはすでにあるのではないでしょうか。

私は見つけた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 カードには影響しませんが、コンピューター上のプログラムに影響を及ぼす可能性があります)。

関連情報