Корпус жорсткого диска USB: не вдається встановити другий розділ ext4


0

Я купив USB 3.0 зовнішній 3,5-дюймовий корпус.

Він заснований на наступній мікросхемі: JMicron JMS567

Я хочу використовувати його для приєднання мого внутрішнього жорсткого диска, який має три розділи: swap та два ext4-розділи.

Для тестування я взяв свій старий жорсткий диск на 200 ГБ, який мав 2 розділи: перший - це невеликий розділ NTFS, а другий - розділ ext4.

Мій ПК працює під Linux Mint 17.2, x86_64, ядро ​​4.4.

Коли я підключив корпус жорсткого диска до свого ПК, я міг отримати доступ до першого розділу NTFS, але отримати доступ до другого розділу ext4 було неможливо! Я також спробував корпус USB на Arch 2017.8 (VirtualBox). Це ж питання!

Далі dmesgйдеться про те, що йдеться про помилку установки:

[288553.362536] sdd: sdd1 sdd2
[288553.362593] sdd: p2 розмір 384428032 виходить за рамки EOD, що дозволяє мати власний потенціал
[288553.366410] sdd: sdd1 sdd2
[288553.366457] sdd: p2 розмір 384428032 виходить за межі EOD, усічений
[288553.394656] sd 13: 0: 0: 0: [sdd] Приєднаний диск SCSI
[288554.138776] EXT4-fs (sdd2): неправильна геометрія: кількість блоків 48053504 перевищує розмір пристрою (48053293 блоки)
[288555.667902] EXT4-fs (sdd2): неправильна геометрія: кількість блоків 48053504 перевищує розмір пристрою (48053293 блоки)

Я на 100% впевнений, що на моєму диску немає помилок ! Я перевірив це, коли він був підключений до мого ПК як звичайний жорсткий диск SATA!

Найсмішніше те, що під Windows 7 я встановив ext2fsdдрайвер, який дозволяє отримувати доступ до розділів ext4 під Windows. Отже, під Win 7 я можу отримати доступ до 2-го розділу ext4 без проблем!

Це, безумовно, проблема драйвера USB!

Мої параметри диска на 200 ГБ, коли він був підключений до диска SATA (я встановив жирне значення, які відрізняються, коли диск підключений через USB):

fdisk -l / dev / sdd

Диск / dev / sdd: 200,0 ГБ, 200049647616 байт
255 голов, 63 сектори / доріжка, 24321 циліндр, загалом 390721968 секторів
Одиниці = сектори 1 * 512 = 512 байт
Розмір сектора (логічний / фізичний): 512 байт / 512 байт 
Розмір вводу / виводу (мінімальний / оптимальний): 512 байт / 512 байт
Ідентифікатор диска: 0xe1751117

   Запуск завантажувального пристрою пристрою блокує ідентифікаційну систему
/ dev / sdd1 * 2048 6293503 3145728 7 HPFS / NTFS / exFAT
/ dev / sdd2 6293504 390721535 192214016 83 Linux


hdparm -I / dev / sdd

/ dev / sdd:

Пристрій ATA, з незнімним носієм
        Номер моделі: WDC WD2000JS-00MHB0                     
        Серійний номер: WD-WMANL1143240
        Версія прошивки: 02.01C03
Стандарти:
        Підтримується: 7 6 5 4 
        Вірогідне використання: 8
Конфігурація:
        Логічний максимальний струм
        балони 16383 16383
        голови 16 16
        сектори / трек 63 63
        -
        Поточні адреси в CHS: 16514064
        Адресовані користувачем сектори LBA: 268435455
        LBA48, адресований користувачем, сектори:   390721968
        Логічний / фізичний розмір сектора: 512 байт
        розмір пристрою з M = 1024 * 1024:       190782 Мбіт
        розмір пристрою з M = 1000 * 1000:       200049 Мбіт (200 ГБ)
        розмір кеша / буфера = 8192 Кбайт

Цей же диск, але тепер підключений через корпус USB HDD:

fdisk -l / dev / sdd

Диск / dev / sdd: 200,0 ГБ, 200048565760 байт
255 голов, 63 сектори / доріжка, 24321 циліндр, всього 390719855 секторів
Одиниці = сектори 1 * 512 = 512 байт
Розмір сектора (логічний / фізичний): 512 байт / 4096 байт 
Розмір вводу / виводу (мінімальний / оптимальний): 4096 байт / 33553920 байт
Ідентифікатор диска: 0xe1751117

   Запуск завантажувального пристрою пристрою блокує ідентифікаційну систему
/ dev / sdd1 * 2048 6293503 3145728 7 HPFS / NTFS / exFAT
/ dev / sdd2 6293504 390721535 192214016 83 Linux



hdparm -I / dev / sdd

/ dev / sdd:

Пристрій ATA, з незнімним носієм
        Номер моделі: WDC WD2000JS-00MHB0                     
        Серійний номер: WD-WMANL1143240
        Версія прошивки: 02.01C03
Стандарти:
        Підтримується: 7 6 5 4 
        Вірогідне використання: 8
Конфігурація:
        Логічний максимальний струм
        балони 16383 16383
        голови 16 16
        сектори / трек 63 63
        -
        Поточні адреси в CHS: 16514064
        Адресовані користувачем сектори LBA: 268435455
        LBA48, адресований користувачем, сектори:   390719855
        Логічний / фізичний розмір сектора: 512 байт
        розмір пристрою з М = 1024 * 1024:       190781 МБайт
        розмір пристрою з M = 1000 * 1000:       200048 Мбіт (200 ГБ)
        розмір кеша / буфера = 8192 Кбайт

Як ви бачите, геометрія неправильна, тому що розмір сектора неправильний ... Можливо, в параметрі монтажу є параметр, який дозволяє встановити розмір блоку / сектора? Або будь-яке інше рішення?

Дякую!

PS Детальний опис мікросхеми USB:

Шина 002 Пристрій 004: ID 152d: 2590 JMicron Technology Corp. / JMicron USA Technology Corp. Seatay ATA / ATAPI Bridge
Дескриптор пристрою:
  bLength 18
  bDescriptorType 1
  bcdUSB 2.10
  bDeviceClass 0 (визначено на рівні інтерфейсу)
  bDeviceSubClass 0 
  bDeviceProtocol 0 
  bMaxPacketSize0 64
  idVendor 0x152d JMicron Technology Corp. / JMicron USA Technology Corp.
  idProduct 0x2590 Міст Seatay ATA / ATAPI
  bcdDevice 81.05
  iManufacturer 1 USB до ATA / ATAPI Brid
  iProduct 2 Універсальний USB-пристрій
  iSerial 3 00A12345AFC0
  bNumConfigurations 1
  Дескриптор конфігурації:
    bLength 9
    bDescriptorType 2
    wTotalLength 85
    bNumInterfaces 1
    bConfigurationValue 1
    iConfiguration 4 USB-накопичувач
    bm Розподіляє 0xc0
      Самозабезпечений
    MaxPower 30mA
    Дескриптор інтерфейсу:
      bLength 9
      bDescriptorType 4
      bInterfaceNumber 0
      bAlternateSetting 0
      bNumEndpoints 2
      bInterfaceClass 8 Mass Storage
      bInterfaceSubClass 6 SCSI
      bInterfaceProtocol 80 Насипний
      iInterface 6 Транспорт MSC для розсипки
      Дескриптор кінцевої точки:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x81 EP 1 IN
        bmРазподіляє 2
          Тип передачі Навальний
          Тип синхронізації немає
          Дані про тип використання
        wMaxPacketSize 0x0200 1x 512 байт
        bІнтервал 0
      Дескриптор кінцевої точки:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x02 EP 2 OUT
        bmРазподіляє 2
          Тип передачі Навальний
          Тип синхронізації немає
          Дані про тип використання
        wMaxPacketSize 0x0200 1x 512 байт
        bІнтервал 0
    Дескриптор інтерфейсу:
      bLength 9
      bDescriptorType 4
      bInterfaceNumber 0
      bAlternateSetting 1
      bNumEndpoints 4
      bInterfaceClass 8 Mass Storage
      bInterfaceSubClass 6 SCSI
      bInterfaceProtocol 98 
      iInterface 10 MSC USB, що додається SCSI
      Дескриптор кінцевої точки:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x01 EP 1 OUT
        bmРазподіляє 2
          Тип передачі Навальний
          Тип синхронізації немає
          Дані про тип використання
        wMaxPacketSize 0x0200 1x 512 байт
        bІнтервал 0
        Командна труба (0x01)
      Дескриптор кінцевої точки:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x82 EP 2 IN
        bmРазподіляє 2
          Тип передачі Навальний
          Тип синхронізації немає
          Дані про тип використання
        wMaxPacketSize 0x0200 1x 512 байт
        bІнтервал 0
        Труба стану (0x02)
      Дескриптор кінцевої точки:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x83 EP 3 IN
        bmРазподіляє 2
          Тип передачі Навальний
          Тип синхронізації немає
          Дані про тип використання
        wMaxPacketSize 0x0200 1x 512 байт
        bІнтервал 0
        Труба для введення даних (0x03)
      Дескриптор кінцевої точки:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x04 EP 4 OUT
        bmРазподіляє 2
          Тип передачі Навальний
          Тип синхронізації немає
          Дані про тип використання
        wMaxPacketSize 0x0200 1x 512 байт
        bІнтервал 0
        Труба для виводу даних (0x04)
Дескриптор магазину бінарних об'єктів:
  bLength 5
  bDescriptorType 15
  wTotalLength 22
  bNumDeviceCaps 2
  Можливість пристрою розширення USB 2.0:
    bLength 7
    bDescriptorType 16
    bDevCapabilityType 2
    bmРазподіляє 0x00000002
      Підтримується управління електроживленням (LPM)
  Можливість пристрою SuperSpeed ​​USB:
    bLength 10
    bDescriptorType 16
    bDevCapabilityType 3
    bm Розподіляє 0x00
    wSpeedsПодтримується 0x000e
      Пристрій може працювати на повній швидкості (12 Мбіт / с)
      Пристрій може працювати на високій швидкості (480 Мбіт / с)
      Пристрій може працювати на SuperSpeed ​​(5Gbps)
    bFunctionalitySupport 1
      Найнижча повністю функціональна швидкість пристрою - повна швидкість (12 Мбіт / с)
    bU1DevExitLat 10 мікросекунд
    bU2DevExitLat 32 мікро секунди
Статус пристрою: 0x0001
  Самозабезпечений

Я неясно пам'ятаю деякі проблеми з мостами USB-SATA для великих дисків, які не передають деякі "великі версії" команд SCSI правильно. Я б не довіряв вашому FUSE-рішенню не пошкоджувати дані, поки ви не з'ясуєте, які команди виходять з ладу та які працюють. Але це ваші дані ...
dirkt

@dirkt Хм, так, що не так з рішенням FUSE? FUSE працює, регулярне кріплення немає!
Винищувач13

Якщо ви не знаєте, які команди не працюватимуть, FUSE може радісно прочитати неправильний блок (з великим LBA, який потрапляє на карту до меншої LBA), що спричинить пошкодження даних. Наприклад, ви можете використовувати sg3-utilsдля перевірки того, що йде не так, але вам потрібні знання SCSI-команд. Тож FUSE може спрацювати (тому що, як правило, використовуються лише команди SCSI, які працюють), це може не статися (оскільки трапляється використовувати деякі, які цього не роблять), але коли ти зрозумієш, що вони перекрутили ваші дані, вже пізно.
dirkt

Відповіді:


0

Під час створення цієї теми я нарешті знайшов рішення!

Припустимо, ваш диск є /dev/sdd, і він має 2 розділи: /dev/sdd1і/dev/sdd2

Рішення:

sudo apt-get install fuseext2

sudo fuseext2 -o rw +, sync_read / dev / sdd2 / mnt

Або замість останньої команди можна написати mountкоманду:

sudo mount -t fuse-ext2 -o rw +, sync_read / dev / sdd2 / mnt

0

Нарешті! Я знайшов рішення, яке дозволяє використовувати звичайнеmount команду:

sudo resize2fs -f /dev/sdd2

Це вихід:

Resizing the filesystem on /dev/sdd2 to 48053293 (4k) blocks. The filesystem on /dev/sdd2 is now 48053293 blocks long.

Ця команда не видаляє дані, що дуже важливо!

Після цього я можу відкрити обидва розділи за допомогою стандартних інструментів файлової системи!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.