![为什么我的 USB 硬盘返回 SG_IO:坏的/丢失的感知数据?](https://linux22.com/image/1359871/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E7%9A%84%20USB%20%E7%A1%AC%E7%9B%98%E8%BF%94%E5%9B%9E%20SG_IO%EF%BC%9A%E5%9D%8F%E7%9A%84%2F%E4%B8%A2%E5%A4%B1%E7%9A%84%E6%84%9F%E7%9F%A5%E6%95%B0%E6%8D%AE%EF%BC%9F.png)
我能够从外部 USB 硬盘启动并运行命令;相关消息出现约 45 秒,然后启动继续。GRUB2 安装在内部硬盘上。当选择直接启动到 /dev/sdb 时,不会出现该消息,但启动时间与启动到内部硬盘大致相同。
/dev/sdb:
Timing cached reads: 1018 MB in 2.00 seconds = 508.97 MB/sec
Timing buffered disk reads: 80 MB in 3.03 seconds = 26.37 MB/sec
pfeiffep@de:~$ sudo hdparm -i /dev/sdb
/dev/sdb:
SG_IO: bad/missing sense data, sb[]: 70 00 05 00 00 00 00 10 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
HDIO_GET_IDENTITY failed: Invalid argument
Gparted 正确地将驱动器识别为 SAMSUNG MP0402H。
有什么想法可以解决 HDIO 和 SG_IO 消息问题吗?
答案1
如果某些 USB 大容量存储设备无法理解数据,就会返回此信息。
我有一个 lexar 8 合 1 读卡器,在某些 SDxc 卡上,当从 debian palimpset 进行写入操作时,读卡器就会因该错误而死机。然后该卡将永远在该读卡器上出现该错误。
如果我把卡放在更智能/更少错误的阅读器上并格式化,那么 lexar 阅读器将再次读取它而不会出现问题。
我从来没有浪费时间去找出卡内存中的哪些数据会触发该行为。但我 100% 确定它只是数据。也许是缺少分区模式?不知道......但显然,除了困扰读卡器的几种 SD 子格式不兼容之外,我们还不必担心疯狂的分区格式。
所以原因是:虚假数据写入了你的分区记录/引导扇区/SD 卡中的任何内容。
解决方案是将卡/驱动器/任何用于内存的东西插入另一个 USB 大容量存储转换器设备并在那里创建一个分区。然后你的问题就解决了。
如果它是一个单片设备,即在同一块电路板上有内存芯片和 USB 大容量存储转换器的设备……那么您就会遇到更大的问题,因为现在没有简单的方法来解决这个问题。