Masalah koneksi dengan penyimpanan eksternal USB3 di Linux (masalah driver UAS)

23

Pada Ubuntu 15.10, ketika saya ingin memformat menggunakan sistem file NTFS disk 4TO eksternal yang terhubung oleh USB3 (pada dock hard disk StarTech USB / eSATA), saya memiliki banyak kesalahan I / O, dan formatnya gagal.

Saya mencoba GParted v 0.19, dan GParted pada live CD terbaru gparted-live-0.23.0-1-i586.iso, dengan masalah yang sama.

Setelah itu, dan menggunakan GParted di Ubuntu 15.10 dan koneksi USB3 yang sama, saya mencoba memformat ext4, tanpa masalah. Sangat aneh.

Karena saya tidak tahu apakah mkfs.ext4alat yang digunakan oleh GParted untuk memformat disk menguji suka (atau tidak suka) mkntfs, saya pertama-tama mengira bahwa masalahnya terkait dengan disk baru. Mungkin disk baru ini menyebabkan masalah. Jadi saya coba jalankan e2fsck -cdi HDD ini. Di Ubuntu 15.10, e2fsck -cmembeku pada 0,45%, dan saya tidak tahu mengapa.

Jadi, menggunakan versi lain Ubuntu (15.04) pada PC yang sama, saya mencoba menghubungkan disk 4TO yang sama menggunakan koneksi eSATA dari dock StarTech HDD. Kali ini, e2fsck -cberjalan dengan benar.

Setelah beberapa jam, Anda dapat melihat hasilnya:

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

Saya bukan ahli dalam badblockoutput, tetapi sepertinya tidak ada blok buruk sama sekali pada disk ini?

Jadi, jika masalahnya bukan hard drive, mungkin masalahnya bisa dihubungkan dengan yang mkntfsdigunakan melalui USB3? Tes apa lagi yang bisa saya coba?

Beberapa informasi tentang dok 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

Informasi tentang disk yang dimaksud: /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

dmesgmengembalikan banyak kesalahan tentang disk; lihat ekstrak ini:

[   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

Saya menemukan informasi ini di posting forum ini , bahwa ada beberapa masalah dengan UAS dan kernel Linux baru? Tampaknya masalah diketahui di banyak tempat di internet, USB3 + Linux tampaknya bermasalah dalam banyak kasus - tetapi untuk kernel lama. Adakah ide untuk mengatasi masalah ini pada kernel yang lebih baru?

Kernel saya adalah:

➜  ~  uname -r 
4.2.0-16-generic

Hmm, sepertinya UAS rusak karena berbagai chip USB3 ASMedia Technology Inc.; Anda dapat melihat informasi lebih lanjut di sini .

Saya kira ini adalah masalah saya, tetapi bagaimana saya bisa mengatasinya sekarang, dan chip mana yang digunakan untuk implementasi USB3 di dock StarTech?

reyman64
sumber

Jawaban:

9

Saya mengalami masalah ini hari ini di kernel 4.8.0.

Menurut posting forum ini dapat dielakkan dengan

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

dan me-reboot.

YtvwlD
sumber
3
Perhatikan bahwa parameter kebiasaan perlu diatur ke ID tertentu dari perangkat yang menyinggung, ditemukan melalui lsusb.
Boann
14

Saya memiliki masalah yang sama pada Mint 18, tetapi solusi yang saya temukan mungkin dapat diterapkan ke * Ubuntu 15/16 serta distribusi Linux yang serupa. Bagi saya, bagaimanapun, saya mendapatkan penguncian sistem yang tidak dapat dipulihkan segera setelah melihat kesalahan UAS di dmesg.

Enklosur saya memiliki chip ASMedia ASM1053, yang tampaknya memiliki masalah dengan modul UAS dari kernel saya (4.4.0-72-generic).

Setelah sedikit mencari, saya menggabungkan dua solusi yang saya temukan: yang ini, yang YtvwlD sebutkan dan yang satu ini .

Pertama, Anda harus mendapatkan ID perangkat keras perangkat Anda menggunakan perintah lsusb . Setelah Anda melakukannya, cari eksternal / enclosure / bridge Anda. Mungkin muncul seperti di bawah ini:

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

Dalam kasus saya, ID-nya adalah 174c: 5136 .

Setelah itu, Anda harus membuat file di /etc/modprobe.d/ sehingga perangkat yang tepat dimasukkan dalam daftar hitam karena menggunakan UAS (yang menyebabkan masalah), perbarui gambar initramfs menggunakan pembaruan-initramfs , kemudian reboot agar perubahan diterapkan.

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

Tentu saja, ganti "174c: 5136" dengan ID perangkat keras jembatan / penutup / eksternal Anda. Jika dilakukan dengan benar, Anda akan melihat pesan seperti ini dari dmesg ketika Anda menghubungkan perangkat Anda setelah reboot:

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

Saya tidak punya masalah dengan kandang saya sejak itu.

Cinos Modnar
sumber
Sepertinya saya juga mengalami masalah ini di Debian 9.4 4.14.18-sunxi64. :(
TCB13
Memperbaiki masalah di kernel saya di sini: unix.stackexchange.com/a/441772/23085 . Sepertinya beberapa kernel memiliki usb-storagebuilt-in alih-alih dimuat sebagai modul dan prosedurnya sedikit berbeda.
TCB13
1
Walaupun peretasan mengerikan yang mengurangi kinerja ini, diterapkan pada setiap mesin, memang memungkinkan enklosur pada dasarnya berfungsi, peretasan mengerikan yang mengurangi kinerja, yang harus diterapkan pada setiap mesin. Bagaimana jika saya mem-boot distro langsung Linux, berharap dapat membuat cadangan atau memulihkan file? Retasan ini tidak akan berfungsi di sana. Jadi kepada siapa saya harus melaporkan masalah ini? Haruskah saya melaporkannya sebagai bug kernel Linux? Haruskah saya meninggalkan review negatif dari enklosur, yang diiklankan sebagai yang kompatibel dengan Linux? Kesalahan siapa ini?
Boann
bekerja untuk saya dengan: 174c: 55aa ASMedia Technology Inc. ASM1051E SATA 6Gb / s bridge, ASM1053E SATA 6Gb / s bridge, ASM1153 SATA 3Gb / s bridge
Dr. Tyrell
1
@Boann perangkat apa pun yang coba digunakan kernel dengan protokol UAS yang tidak berfungsi dengan benar adalah perangkat keras yang rusak. Perangkat keras tidak boleh mengiklankan dukungan UAS kecuali benar-benar berfungsi. Anda masih dapat melaporkan hal ini ke pengelola subsistem kernel usb Linux yang memiliki daftar perangkat keras yang dikenal buruk yang masih dapat digunakan jika ditangani secara khusus. Anda juga dapat memilih ikut serta dalam berbagai solusi menggunakan quirksparameter usb_storagemodul - hal yang sama persis akan diaktifkan secara otomatis jika pengembang kernel mengetahui tentang masalah ini. Kinerja masih akan berkurang dan / atau fitur hilang.
Mikko Rantalainen