我有一张用于相机的 SD 卡。从相机中,我可以拍照,删除文件......但是从我的计算机(debian不稳定)我只能读取,但不能写入。请注意,这种奇怪的事情是最近才出现的,也许是几周前。请注意,我使用相机工具格式化了SD卡,并且在上面安装了魔灯(无论如何我认为这并不重要)。
在 Linux 上,如果我尝试强制将分区重新挂载为读/写,则会出现以下错误:
$ sudo mount -rw -o remount /dev/mmcblk0p1
mount: /media/me/EOS_DIGITAL: /dev/mmcblk0p1 is write-protected but explicit read-write mode requested.
请注意,它是不是储物柜问题,因为我尝试更改储物柜位置,而且 SD 卡在相机上仍然可读。
任何想法?谢谢!
PS:如果你的方法会损坏SD卡上的数据,请提前告知我,以便我先想办法备份!
答案1
解决问题
每次我遇到这种问题(外部闪存驱动器/SD卡/...在Linux下以只读方式安装)都是因为FAT文件系统没有正确卸载并且有错误。将其放在 Windows 系统上(以便 Windows 修复它)或使用fsck.fat
它解决了问题。请小心使用,fsck.fat
因为它可能会损坏您的 SD 卡。
备份 SD 卡
只需用于dd if=<your sdcard device, ie: /dev/sdb> of=backup.sdcard
备份整个 SD 卡即可。然后您可以稍后安装它,只需使用:
如果没有分区表而是直接在上面加FAT:
mount -o loop backup.sdcard mountpoint/
如果有分区表,则必须先计算偏移量。例如:
$ sudo fdisk -l /dev/sda Disk /dev/sda: 238.5 GiB, 256060514304 bytes, 500118192 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: dos Disk identifier: 0xe9a3179f Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 499711 497664 243M 83 Linux /dev/sda2 501758 500117503 499615746 238.2G 5 Extended /dev/sda5 501760 500117503 499615744 238.2G 83 Linux
要挂载从 501758 开始的 sda 分区,我必须应用block_size * 501758
偏移量:
mount -o loop,offset=$((512*501758)) /dev/sda mountpoint