Problème de connexion avec le stockage externe USB3 sous Linux (problème de pilote UAS)

23

Sur Ubuntu 15.10, lorsque je souhaite formater en utilisant le système de fichiers NTFS un disque 4TO externe connecté par USB3 (sur une station d'accueil StarTech USB / eSATA), j'ai beaucoup d'erreurs d'E / S et le format échoue.

J'ai essayé GParted v 0.19, et GParted sur le dernier CD live gparted-live-0.23.0-1-i586.iso, avec le même problème.

Après cela, et en utilisant GParted sur Ubuntu 15.10 et la même connexion USB3, j'ai essayé de formater ext4sans problème. C'est vraiment étrange.

Parce que je ne sais pas si les mkfs.ext4outils utilisés par GParted pour formater le disque testent le disque comme (ou pas comme) mkntfs, je suppose d'abord que le problème est lié au nouveau disque. Peut-être que ce nouveau disque pose problème. J'essaie donc de courir e2fsck -csur ce disque dur. Sur Ubuntu 15.10, se e2fsck -cbloque à 0,45%, et je ne sais pas pourquoi.

Donc, en utilisant une autre version d'Ubuntu (15.04) sur le même PC, j'essaye de connecter le même disque 4TO en utilisant la connexion eSATA de la station d'accueil StarTech HDD. Cette fois, e2fsck -cfonctionne correctement.

Après quelques heures, vous pouvez voir le résultat:

sudo e2fsck -c /dev/sdc1
e2fsck 1.42.12 (29-Aug-2014)
ColdCase : récupération du journal
Vérification des blocs défectueux (test en mode lecture seule) : complété                                             
ColdCase: Updating bad block inode.
Passe 1 : vérification des i-noeuds, des blocs et des tailles
Passe 2 : vérification de la structure des répertoires
Passe 3 : vérification de la connectivité des répertoires
Passe 4 : vérification des compteurs de référence
Passe 5 : vérification de l'information du sommaire de groupe

ColdCase: ***** LE SYSTÈME DE FICHIERS A ÉTÉ MODIFIÉ *****
ColdCase : 11/244195328 fichiers (0.0% non contigus), 15377150/976754176 blocs

Je ne suis pas un expert des badblocksorties, mais il semble qu'il n'y ait aucun mauvais bloc sur ce disque?

Donc, si le problème n'est pas le disque dur, peut-être que le problème peut être lié à une mkntfsutilisation via USB3? Quels autres tests puis-je essayer?

Quelques informations sur la station d'accueil USB:

➜  ~  lsusb
...
Bus 002 Device 002: ID 174c:55aa ASMedia Technology Inc. ASM1051E SATA 6Gb/s bridge, ASM1053E SATA 6Gb/s bridge, ASM1153 SATA 3Gb/s bridge
...


➜  ~  sudo lsusb -v -d 174c:55aa
Mot de passe [sudo] pour reyman : 

Bus 002 Device 002: ID 174c:55aa ASMedia Technology Inc. ASM1051E SATA 6Gb/s bridge, ASM1053E SATA 6Gb/s bridge, ASM1153 SATA 3Gb/s bridge
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         9
  idVendor           0x174c ASMedia Technology Inc.
  idProduct          0x55aa ASM1051E SATA 6Gb/s bridge, ASM1053E SATA 6Gb/s bridge, ASM1153 SATA 3Gb/s bridge
  bcdDevice            1.00
  iManufacturer           2 asmedia
  iProduct                3 ASM1053E
  iSerial                 1 123456789012
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          121
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xc0
      Self Powered
    MaxPower               36mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk-Only
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst              15
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst              15
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       1
      bNumEndpoints           4
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     98 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst              15
        MaxStreams             16
        Data-in pipe (0x03)
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst              15
        MaxStreams             16
        Data-out pipe (0x04)
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst              15
        MaxStreams             16
        Status pipe (0x02)
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x04  EP 4 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst               0
        Command pipe (0x01)
Binary Object Store Descriptor:
  bLength                 5
  bDescriptorType        15
  wTotalLength           22
  bNumDeviceCaps          2
  USB 2.0 Extension Device Capability:
    bLength                 7
    bDescriptorType        16
    bDevCapabilityType      2
    bmAttributes   0x00000002
      Link Power Management (LPM) Supported
  SuperSpeed USB Device Capability:
    bLength                10
    bDescriptorType        16
    bDevCapabilityType      3
    bmAttributes         0x00
    wSpeedsSupported   0x000e
      Device can operate at Full Speed (12Mbps)
      Device can operate at High Speed (480Mbps)
      Device can operate at SuperSpeed (5Gbps)
    bFunctionalitySupport   1
      Lowest fully-functional device speed is Full Speed (12Mbps)
    bU1DevExitLat          10 micro seconds
    bU2DevExitLat        2047 micro seconds
Device Status:     0x0001
  Self Powered

Informations sur le disque en question: /dev/sdd

➜  ~  sudo fdisk -l /dev/sdd
Disque /dev/sdd : 3,7 TiB, 4000787030016 octets, 7814037168 secteurs
Unités : sectors of 1 * 512 = 512 octets
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 33553920 bytes
Disklabel type: gpt
Disk identifier: ACD5760B-2898-435E-82C6-CB3119758C9B

Périphérique Start        Fin   Secteurs  Size Type
/dev/sdd1     2048 7814035455 7814033408  3,7T Linux filesystem

dmesgrenvoie beaucoup d'erreurs sur le disque; voir cet extrait:

[   68.856381] scsi host6: uas_eh_bus_reset_handler start
[   68.968376] usb 2-2: reset SuperSpeed USB device number 2 using xhci_hcd
[   68.989825] scsi host6: uas_eh_bus_reset_handler success
[   99.881608] sd 6:0:0:0: [sdd] tag#12 uas_eh_abort_handler 0 uas-tag 13 inflight: CMD OUT 
[   99.881618] sd 6:0:0:0: [sdd] tag#12 CDB: Write(16) 8a 00 00 00 00 00 e8 c4 08 00 00 00 00 08 00 00
[   99.881856] sd 6:0:0:0: [sdd] tag#5 uas_eh_abort_handler 0 uas-tag 6 inflight: CMD OUT 
[   99.881861] sd 6:0:0:0: [sdd] tag#5 CDB: Write(16) 8a 00 00 00 00 00 cd 01 08 f0 00 00 00 10 00 00
[   99.881967] sd 6:0:0:0: [sdd] tag#4 uas_eh_abort_handler 0 uas-tag 5 inflight: CMD OUT 
[   99.881972] sd 6:0:0:0: [sdd] tag#4 CDB: Write(16) 8a 00 00 00 00 00 cd 01 08 00 00 00 00 f0 00 00
[   99.882085] sd 6:0:0:0: [sdd] tag#3 uas_eh_abort_handler 0 uas-tag 4 inflight: CMD OUT 
[   99.882090] sd 6:0:0:0: [sdd] tag#3 CDB: Write(16) 8a 00 00 00 00 00 cd 01 07 10 00 00 00 f0 00 00
[   99.882171] sd 6:0:0:0: [sdd] tag#2 uas_eh_abort_handler 0 uas-tag 3 inflight: CMD OUT 
[   99.882175] sd 6:0:0:0: [sdd] tag#2 CDB: Write(16) 8a 00 00 00 00 00 cd 01 06 20 00 00 00 f0 00 00
[   99.882255] sd 6:0:0:0: [sdd] tag#1 uas_eh_abort_handler 0 uas-tag 2 inflight: CMD OUT 
[   99.882258] sd 6:0:0:0: [sdd] tag#1 CDB: Write(16) 8a 00 00 00 00 00 cd 01 05 30 00 00 00 f0 00 00
[   99.882338] sd 6:0:0:0: [sdd] tag#0 uas_eh_abort_handler 0 uas-tag 1 inflight: CMD OUT 
[   99.882342] sd 6:0:0:0: [sdd] tag#0 CDB: Write(16) 8a 00 00 00 00 00 cd 01 04 40 00 00 00 f0 00 00
[   99.882419] sd 6:0:0:0: [sdd] tag#11 uas_eh_abort_handler 0 uas-tag 12 inflight: CMD OUT 
[   99.882423] sd 6:0:0:0: [sdd] tag#11 CDB: Write(16) 8a 00 00 00 00 00 cd 00 f9 00 00 00 00 f0 00 00
[   99.882480] sd 6:0:0:0: [sdd] tag#10 uas_eh_abort_handler 0 uas-tag 11 inflight: CMD OUT 
[   99.882483] sd 6:0:0:0: [sdd] tag#10 CDB: Write(16) 8a 00 00 00 00 00 cd 00 f9 f0 00 00 00 f0 00 00
[   99.882530] sd 6:0:0:0: [sdd] tag#9 uas_eh_abort_handler 0 uas-tag 10 inflight: CMD OUT 
[   99.882532] sd 6:0:0:0: [sdd] tag#9 CDB: Write(16) 8a 00 00 00 00 00 cd 00 fa e0 00 00 00 f0 00 00
[   99.882593] sd 6:0:0:0: [sdd] tag#8 uas_eh_abort_handler 0 uas-tag 9 inflight: CMD 
[   99.882596] sd 6:0:0:0: [sdd] tag#8 CDB: Write(16) 8a 00 00 00 00 00 cd 00 fb d0 00 00 00 f0 00 00
[   99.882667] scsi host6: uas_eh_bus_reset_handler start
[   99.994700] usb 2-2: reset SuperSpeed USB device number 2 using xhci_hcd
[  100.015613] scsi host6: uas_eh_bus_reset_handler success
[  135.962175] sd 6:0:0:0: [sdd] tag#5 uas_eh_abort_handler 0 uas-tag 6 inflight: CMD OUT 
[  135.962185] sd 6:0:0:0: [sdd] tag#5 CDB: Write(16) 8a 00 00 00 00 00 cd 40 78 f0 00 00 00 10 00 00
[  135.962428] sd 6:0:0:0: [sdd] tag#4 uas_eh_abort_handler 0 uas-tag 5 inflight: CMD OUT 
[  135.962436] sd 6:0:0:0: [sdd] tag#4 CDB: Write(16) 8a 00 00 00 00 00 cd 40 78 00 00 00 00 f0 00 00
[  135.962567] sd 6:0:0:0: [sdd] tag#3 uas_eh_abort_handler 0 uas-tag 4 inflight: CMD OUT 
[  135.962576] sd 6:0:0:0: [sdd] tag#3 CDB: Write(16) 8a 00 00 00 00 00 cd 40 77 10 00 00 00 f0 00 00
[  135.962682] sd 6:0:0:0: [sdd] tag#2 uas_eh_abort_handler 0 uas-tag 3 inflight: CMD OUT 
[  135.962690] sd 6:0:0:0: [sdd] tag#2 CDB: Write(16) 8a 00 00 00 00 00 cd 40 76 20 00 00 00 f0 00 00
[  135.962822] sd 6:0:0:0: [sdd] tag#1 uas_eh_abort_handler 0 uas-tag 2 inflight: CMD 
[  135.962830] sd 6:0:0:0: [sdd] tag#1 CDB: Write(16) 8a 00 00 00 00 00 cd 40 75 30 00 00 00 f0 00 00
[  160.904916] sd 6:0:0:0: [sdd] tag#0 uas_eh_abort_handler 0 uas-tag 1 inflight: CMD OUT 
[  160.904926] sd 6:0:0:0: [sdd] tag#0 CDB: Write(16) 8a 00 00 00 00 00 00 00 29 08 00 00 00 08 00 00
[  160.905068] scsi host6: uas_eh_bus_reset_handler start

J'ai trouvé cette information sur ce post du forum , qu'il y a un problème avec les UAS et les nouveaux noyaux Linux? Il semble que le problème soit connu dans de nombreux endroits sur Internet, USB3 + Linux semble problématique dans de nombreux cas - mais pour les anciens noyaux. Des idées pour résoudre ce problème sur un noyau plus récent?

Mon noyau est:

➜  ~  uname -r 
4.2.0-16-generic

Hmm, il semble que l'UAS soit cassé pour différentes puces USB3 ASMedia Technology Inc.; vous pouvez voir plus d'informations ici .

Je suppose que c'est mon problème, mais comment puis-je le résoudre maintenant, et quelle puce est utilisée pour l'implémentation USB3 dans le dock StarTech?

reyman64
la source

Réponses:

9

J'ai rencontré ce problème aujourd'hui sur un noyau 4.8.0.

Selon ce post du forum, il peut être contourné par

$ echo options usb-storage quirks=357d:7788:u | sudo tee /etc/modprobe.d/blacklist_uas_357d.conf
$ sudo update-initramfs -u

et redémarrage.

YtvwlD
la source
3
Notez que le paramètre quirks doit être défini sur l'ID particulier du périphérique incriminé, trouvé via lsusb.
Boann
14

J'ai eu ce même problème sur Mint 18, mais la solution que j'ai trouvée peut probablement être appliquée à * Ubuntu 15/16 ainsi qu'à des distributions Linux similaires. Pour moi, cependant, j'obtenais un blocage du système irrécupérable peu de temps après avoir vu les erreurs UAS dans dmesg.

Mon boîtier possède une puce ASMedia ASM1053, qui semble avoir des problèmes avec le module UAS de mon noyau (4.4.0-72-générique).

Après un peu de recherche, j'ai combiné deux solutions que j'ai trouvées: celle-ci, que YtvwlD a mentionnée et celle-ci .

Tout d'abord, vous devez obtenir l'ID matériel de votre appareil à l'aide de la commande lsusb . Une fois que vous avez fait cela, localisez votre externe / boîtier / pont. Cela pourrait apparaître comme ci-dessous:

Bus 002 Device 002: ID 174c:5136 ASMedia Technology Inc. ASM1053 SATA 6Gb/s bridge

Dans mon cas, l'ID est 174c: 5136 .

Après cela, vous devez créer un fichier dans /etc/modprobe.d/ pour que le périphérique approprié soit exclu de l'utilisation d'UAS (ce qui cause des problèmes), mettre à jour l'image initramfs à l'aide de update-initramfs , puis redémarrer pour que la modification prenne effet.

$ echo options usb-storage quirks=174c:5136:u | sudo tee /etc/modprobe.d/blacklist_uas.conf
$ sudo update-initramfs -u
$ sudo reboot

Bien sûr, remplacez «174c: 5136» par l'ID matériel de votre pont / boîtier / externe. Si cela est fait correctement, vous devriez voir un message comme celui-ci de dmesg lorsque vous connectez votre appareil après le redémarrage:

[   93.985002] usb 4-1: UAS is blacklisted for this device, using usb-storage instead

Je n'ai eu aucun problème avec mon boîtier depuis.

Cinos Modnar
la source
On dirait que je rencontre également ce problème dans Debian 9.4 4.14.18-sunxi64. :(
TCB13
Correction du problème dans mon noyau ici: unix.stackexchange.com/a/441772/23085 . Il semble que certains noyaux soient usb-storageintégrés au lieu d'être chargés en tant que module et la procédure est un peu différente.
TCB13
1
Bien que ce hack hideux réduisant les performances, appliqué à chaque machine, permette au boîtier de fonctionner, il s'agit toujours d'un hack hideux réducteur de performances, qui doit être appliqué à chaque machine. Que faire si je démarre une distribution Linux en direct, en espérant pouvoir sauvegarder ou récupérer des fichiers? Ce hack ne fonctionnera pas là-bas. À qui dois-je signaler ce problème? Dois-je le signaler en tant que bogue du noyau Linux? Dois-je laisser un avis négatif sur le boîtier, qui a été annoncé comme compatible Linux? À qui la faute est ce problème?
Boann
travaillé pour moi avec le: 174c: 55AA ASMedia Technology Inc. ASM1051E SATA 6Gb / pont de, ASM1053E SATA 6Gb / pont de, ASM1153 SATA 3 Gb / s pont
Dr. Tyrell
1
@Boann tout périphérique que le noyau essaie d'utiliser avec le protocole UAS qui ne fonctionne pas correctement est techniquement un matériel cassé. Le matériel ne doit pas annoncer le support UAS à moins qu'il ne fonctionne vraiment. Vous pouvez toujours le signaler aux mainteneurs du sous-système usb du noyau Linux qui ont une liste de matériel défectueux connu qui peut toujours être utilisé s'il est géré spécialement. Vous pouvez également vous inscrire à diverses solutions de contournement en utilisant le quirksparamètre du usb_storagemodule - exactement la même chose sera activée automatiquement si les développeurs du noyau sont au courant du problème. Les performances seront toujours réduites et / ou les fonctionnalités manquantes.
Mikko Rantalainen