AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 768373
Accepted
Kalamalka Kid
Kalamalka Kid
Asked: 2016-05-07 01:05:13 +0800 CST2016-05-07 01:05:13 +0800 CST 2016-05-07 01:05:13 +0800 CST

硬盘驱动器错误:错误/缺少感知数据

  • 772

我最近尝试使用以下命令检查硬盘驱动器的停机时间:

sudo hdparm -I /dev/sdb | grep level

并得到错误:

SG_IO: bad/missing sense data, sb[]:  70 00 05 00 00 00 00 0a 00 00 00 00 24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

驱动器可以很好地读取和写入数据,并且也可以在启动时安装。我只是无法在此驱动器上运行此命令而不会出现错误

这是什么意思,我该如何解决这个问题?

hard-drive
  • 4 4 个回答
  • 46775 Views

4 个回答

  • Voted
  1. blizzardus
    2020-03-09T11:51:28+08:002020-03-09T11:51:28+08:00

    我的 Seagate 备份纤薄型和 WD black SCSI 驱动器也有类似的问题。我也在使用hdparm。对我有用的是sdparm实用程序。

    安装

    sudo apt install sdparm
    

    获取所有参数/设置

    sudo sdparm -l -a /dev/sdX
    

    这里-a获取所有输出字段并-l获取长输出,即输出字段的解释。/dev/sdX是有问题的驱动器(类似于/dev/sda)。

    使用以下命令获取减速计时器和STANDBY标志:

    sudo sdparm -l --get SCT /dev/sdX
    sudo sdparm -l --get STANDBY /dev/sdX
    

    这里的spindown时间SCT以毫秒为单位,STANDBYflag是spindown timer on/off (1/0) switch

    如果您的输出类似于:

    # STANDBY     0  [cha: y, def:  1, sav:  1]
    # SCT       4294967286  [cha: y, def:18000, sav:18000]
    

    这意味着您的设备未设置为降速。

    如果您愿意,可以使用以下命令更改当前会话的这些设置:

    sudo sdparm -l --set SCT=6000 /dev/sdX
    sudo sdparm -l --set STANDBY=1 /dev/sdX
    

    这些设置将在重新启动时丢失。

    永久更改:

    sudo sdparm -l --save --set SCT=6000 /dev/sdX
    sudo sdparm -l --save --set STANDBY=1 /dev/sdX
    

    这里我选择了 6 秒(6000 毫秒)但是你可以根据你的要求来选择。

    如果由于某种原因,您无法保存设置,则可以将其放入您/etc/rc.local的设置中以在启动时设置:

    sdparm -l --set SCT=6000 --set STANDBY=1 /dev/sdX
    

    我希望这有帮助。

    • 10
  2. Mikko Rantalainen
    2019-01-02T05:38:10+08:002019-01-02T05:38:10+08:00

    此问题通常是由 USB-SATA 桥接实现引起的,并且应该仅在 USB 连接的磁盘盒中可见。

    如果是外部 USB 磁盘,系统需要通过 SAT(SCSI / ATA 转换)使用 UAS(USB Attached SCSI)协议与机箱内的 SATA 驱动器通信,以通过 USB 上的 SCSI 发送 ATA 命令。之所以如此复杂,是因为历史原因。

    在 USB → UAS → SCSI → SAT → SATA 链中的某个地方,某些硬件的实现不正确。通常所有这些都是由外壳内称为 USB-SATA 桥接器的单个微芯片完成的,一些众所周知的变体是 ASM1051、ASM1053 和 ASM1153。其中,已知 ASM1051 存在故障,因此应避免使用包含该芯片的任何硬件使用 UAS。ASM1053 和 ASM1153 可能工作也可能不工作,具体取决于芯片内部的实际固件(允许制造商定制固件,参考实现可以正常工作)。例如,希捷制造的许多机箱都使用带有定制固件的 ASM1153,并且即使同一芯片在参考固件下可以正常工作,某些 ATA 命令也会出现问题。(例如,只要操作系统从不发送任何 12 位或 16 位命令,希捷的某些机箱就可以工作。Linuxusb_storage为此目的支持 quirk t。)最终用户通常无法更换固件,因此如果您的芯片/固件损坏,您唯一的选择就是向制造商投诉。在 Seagate 的情况下,他们通过声明他们仅正式支持 Windows 和 OS X 来“解决”问题。希捷现在正与 Linux 社区正式合作,所以也许他们的产品将来会真正起作用。

    找出桥接芯片的唯一真正方法是拆除外壳并检查实际微芯片中的标记。

    更新: “Seagate Backup Plus Hub”机箱的 USB-SATA 桥接器工作正常,UAS 工作正常(请注意,这与“Seagate Backup Plus”不同的产品!)但是,由于 Seagate 机箱的不良历史记录,Linux 内核应用quirkt默认情况下会阻止此机箱使用所有 SATA 功能。您可以使用以下命令启用完整的 SATA 支持,包括 SMART 功能:

    echo "0bc2:ab38:" > /sys/module/usb_storage/parameters/quirks
    

    注意结尾的冒号,之后什么都没有 - 它禁用了所选供应商的所有内置怪癖:产品。lsusb如果需要,请检查您的供应商和产品 ID 。

    如果您的设备有足够的漏洞,您可能需要完全禁用 UAS 支持。这可以通过u怪癖来完成。例如,如果我想禁用 Seagate Backup Plus Hub 上的 UAS 支持,我将以 root 身份运行以下命令:

    echo "0bc2:ab38:u" > /sys/module/usb_storage/parameters/quirks
    

    在那之后,外部磁盘只会使用较慢但通常可以正常工作的 USB 存储设备功能,并且事情最终会工作......慢慢地。如果您只需要传输一些大文件,则差异还不错。如果您有很多小文件,那么拥有工作 UAS 支持之间的差异可能会超过 10 倍的速度差异。

    • 9
  3. Best Answer
    Amias
    2016-05-14T02:46:14+08:002016-05-14T02:46:14+08:00

    看起来你的驱动控制器不支持这种查询方法,并不是所有的 USB SATA 芯片组都是一样的。您没有说您使用的是什么型号的驱动器或控制器,因此很难在这里提供更多建议。

    您可以通过插入另一个 USB 控制器或使用具有相同控制器的不同驱动器或更好地直接通过 SATA 来测试这一点。

    3TB 驱动器对于某些 usb2 时代的控制器来说可能太大了,所以我建议使用信誉良好的 usb3 sata 桥接器,它也会快得多。

    • 8
  4. Tom
    2019-04-13T00:34:54+08:002019-04-13T00:34:54+08:00

    上述和/或 modprobe 调整无效的系统/设备的附加信息(例如 Raspberry Pi 3):

    怪癖必须添加到引导参数中。对于 RPi 3/Raspbian,启动参数位于文件/boot/cmdline.txt.

    [other command line parameters...] usb_storage.quirks=YOUR_VENDOR_ID:YOUR_DEVICE_ID:QUIRK_FLAGS
    

    就我而言,我需要清除设备的 quirks 标志,因此我将其添加到/boot/cmdline.txt:

    usb_storage.quirks=0bc2:a0a4:

    这解决了我的问题,希望它可以帮助别人

    • 1

相关问题

  • 在多台笔记本电脑上使用相同的硬盘作为引导驱动器

  • 交换分区的重要性

  • 如何列出新驱动器以便对它们进行分区和格式化?

  • Ubuntu 无法识别我的硬盘

  • 硬盘过热严重

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve