Я хочу установить 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-карту, но все еще могут остановить программы на вашем компьютере).