我正在尝试从安装在 ATA 硬盘上的计算机中的旧 Linux 中恢复数据。我找到了 ScanLogic Corp. SL11R-IDE IDE Bridge (04ce:0002),这是一个 ATA 转 USB 1.0 适配器,如图所示:
开机后,我将其插入装有 Ubuntu 12.04 的笔记本电脑。我习惯于自动安装驱动器,但这个驱动器没有显示在 /media 中。执行 dmesg 后,我得到的只是以下内容:
[215298.671924] usb 2-1.1: new full-speed USB device number 5 using ehci_hcd
[215298.767330] scsi19 : usb-storage 2-1.1:1.0
[215299.841701] usb 2-1.1: reset full-speed USB device number 5 using ehci_hcd
[215300.017258] usb 2-1.1: reset full-speed USB device number 5 using ehci_hcd
[215300.197050] usb 2-1.1: reset full-speed USB device number 5 using ehci_hcd
[215300.372730] usb 2-1.1: reset full-speed USB device number 5 using ehci_hcd
我尝试将适配器插入笔记本电脑的三个不同 USB 端口(其中一个是 USB 3.0),但都没有成功。我得到了不同的设备,例如:/dev/bus/usb/003/002
或/dev/bus/usb/002/004
,但我没有得到任何/dev/sdbN
链接。输出blkid -o list -c /dev/null
只是笔记本电脑的分区。
我尝试取出跳线,将其设置为主控并设置为 CS Enabled,但结果并没有改变。
如果我将其插入 Windows7 笔记本电脑,设备会被识别但不会安装任何内容。当我将其插入 Windows7 笔记本电脑并将设备连接到在 Windows7 上运行的 VMWare Ubuntu 12.04 会话时,我得到的结果与 Ubuntu 笔记本电脑相同 - 结果dmesg
如上,但未安装。
有任何想法吗?
答案1
问题是你的 USB-IDE 芯片组很古老已知有问题:
- 您的适配器使用 USB 1.0Scanlogic(现为赛普拉斯半导体公司)SL11RIDE芯片组
- 该芯片组已发布十六年前,1996-97 年
- 您拥有的版本甚至可能不完全支持 1999 年才最终确定的 USB 大容量存储标准。
- 即使在发布后的几年内,SL11RIDE 也被发现在使用 IDE 硬盘时存在问题(但使用光驱时可以正常工作):例子
- 它的 USB 实现是已知被破坏,需要在内核中进行特殊修复——参见 Ubuntu 8.10 中的这个错误
- 升级固件可能有效,但存在两个问题;
- 需要 Windows XP 或更低版本
- 该固件似乎不再可用(请参阅此 PDF 第 9 页的说明)
简单的解决方案
因此,最简单的解决方案似乎是购买一个相对便宜的新 USB-IDE 适配器。如果您能告诉我们您的居住国家/地区,我可以尝试推荐一个已知可以很好地与 Linux 配合使用的可用供应商/设备。
替代解决方案:修补“异常设备”后重建 USB 内核模块并希望它能正常工作
- 如果您需要更详细的说明,请添加评论
- 获取 Ubuntu 内核源代码
- 切换到
linux-3.2.0
目录 在
drivers/usb/storage/unusual_devs.h
文件中,找到以下部分:异常设备(0x04ce,0x0002,0x026c,0x026c, “扫描逻辑” “SL11R-IDE” USB_SC_DEVICE,USB_PR_DEVICE,空, US_FL_FIX_CAPACITY)
并对其进行编辑,将第一行更改
0x026c
为0x0000
,即该行应为:异常设备(0x04ce,0x0002,0x0000,0x026c,
然后重建 USB 存储模块并将 .ko 文件移动到 下的相应内核
/lib/modules
。此补丁允许将不寻常的“修复”应用于 SL11RIDE 的所有固件版本,而不仅仅是固件版本 2.xxx。
答案2
我在 Ubuntu 上使用一些旧 USB 适配器时也遇到过问题。不过我的经验还不够,无法告诉你原因。但如果你有时间,你可以随时在网上购买新适配器。它们真的很便宜。我花了 2 美元买到的。我不是说它可以解决你的问题,但它可能值得测试,而且你通常还会得到一个 s-ata 适配器。
购买新适配器对我来说很管用。不过,你似乎比我更有经验。所以如果你确定不是适配器的问题,请忽略这个答案 :)