![Linux下挂载SD卡的正确方法](https://linux22.com/image/27069/Linux%E4%B8%8B%E6%8C%82%E8%BD%BDSD%E5%8D%A1%E7%9A%84%E6%AD%A3%E7%A1%AE%E6%96%B9%E6%B3%95.png)
我在使用 SD 卡作为卷安装摄像机时遇到问题。看来是sdcard的问题,能修复吗?我已经在Windows系统中重新格式化了SD卡,但这并没有解决问题,一切都保持不变。
#lsubs:Bus 001 Device 011: ID 0603:8611 Novatek Microelectronics Corp.
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 1 29.8G 0 disk
└─sdb1 8:17 1 29.8G 0 part
sr0 11:0 1 1024M 0 rom
# mount /dev/sdb /mountpoint
mount: /dev/sdb: can't read superblock
#dmesg:
[ 393.331415] sd 2:0:0:0: [sdb] Sense Key : Medium Error [current]
[ 393.331428] sd 2:0:0:0: [sdb] Add. Sense: Unrecovered read error
[ 393.331443] sd 2:0:0:0: [sdb] CDB: Read(10): 28 00 00 00 00 02 00 00 02 00
[ 393.331470] end_request: critical target error, dev sdb, sector 2
[ 393.331497] EXT4-fs (sdb): unable to read superblock
[ 393.338515] sd 2:0:0:0: [sdb] Unhandled sense code
[ 393.338525] sd 2:0:0:0: [sdb] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[ 393.338538] sd 2:0:0:0: [sdb] Sense Key : Medium Error [current]
[ 393.338551] sd 2:0:0:0: [sdb] Add. Sense: Unrecovered read error
[ 393.338565] sd 2:0:0:0: [sdb] CDB: Read(10): 28 00 00 00 00 40 00 00 02 00
[ 393.338593] end_request: critical target error, dev sdb, sector 64
[ 393.338621] isofs_fill_super: bread failed, dev=sdb, iso_blknum=16, block=32
[ 393.346514] sd 2:0:0:0: [sdb] Unhandled sense code
[ 393.346524] sd 2:0:0:0: [sdb] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[ 393.346537] sd 2:0:0:0: [sdb] Sense Key : Medium Error [current]
[ 393.346550] sd 2:0:0:0: [sdb] Add. Sense: Unrecovered read error
[ 393.346564] sd 2:0:0:0: [sdb] CDB: Read(10): 28 00 00 00 00 00 00 00 01 00
[ 393.346592] end_request: critical target error, dev sdb, sector 0
[ 393.346619] FAT-fs (sdb): unable to read boot sector
答案1
中等错误意味着无法获取原始扇区数据 - 它位于比文件系统甚至磁盘分区更低的层。如果 Windows 可以使用此卡,但 Linux 不能使用,则意味着 Linux 错误地检测到访问它所需的协议。设备经常错误报告所需的协议,因此使用特殊的怪异表来修复报告的数据。您应该请 Linux 内核黑客帮助解决此类问题(所以这个答案肯定不是最终的)。