Корпус USB HDD: невозможно установить второй раздел ext4


0

Я купил USB 3.0 внешний 3,5 "чехол для жесткого диска.

Он основан на следующем чипе: JMicron JMS567

Я хочу использовать его для подключения моего внутреннего жесткого диска, который имеет три раздела: раздел подкачки и два раздела 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 я могу получить доступ ко второму разделу 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 байт
        размер устройства с М = 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 байт
        размер устройства с M = 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
Дескриптор устройства:
  Длина 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 Bridge
  bcdDevice 81.05
  iManufacturer 1 USB для ATA / ATAPI Brid
  iProduct 2 Универсальное USB-устройство
  iSerial 3 00A12345AFC0
  bNumConfigurations 1
  Дескриптор конфигурации:
    Длина 9
    bDescriptorType 2
    wTotalLength 85
    bNumInterfaces 1
    bConfigurationValue 1
    iConfiguration 4 USB Mass Storage
    bmAttributes 0xc0
      Самостоятельное питание
    MaxPower 30 мА
    Дескриптор интерфейса:
      Длина 9
      bDescriptorType 4
      bInterfaceNumber 0
      bAlternateSetting 0
      bNumEndpoints 2
      bInterfaceClass 8 Mass Storage
      bInterfaceSubClass 6 SCSI
      bInterfaceProtocol 80 Bulk-Only
      iInterface 6 MSC Оптовый транспорт
      Описатель конечной точки:
        Длина 7
        bDescriptorType 5
        bEndpointAddress 0x81 EP 1 IN
        bmAttributes 2
          Тип передачи Массовая
          Тип синхронизации Нет
          Тип использования данных
        wMaxPacketSize 0x0200 1x 512 байт
        bInterval 0
      Описатель конечной точки:
        Длина 7
        bDescriptorType 5
        bEndpointAddress 0x02 EP 2 OUT
        bmAttributes 2
          Тип передачи Массовая
          Тип синхронизации Нет
          Тип использования данных
        wMaxPacketSize 0x0200 1x 512 байт
        bInterval 0
    Дескриптор интерфейса:
      Длина 9
      bDescriptorType 4
      bInterfaceNumber 0
      bAlternateSetting 1
      bNumEndpoints 4
      bInterfaceClass 8 Mass Storage
      bInterfaceSubClass 6 SCSI
      bInterfaceProtocol 98 
      iInterface 10 MSC USB подключенный SCSI
      Описатель конечной точки:
        Длина 7
        bDescriptorType 5
        bEndpointAddress 0x01 EP 1 OUT
        bmAttributes 2
          Тип передачи Массовая
          Тип синхронизации Нет
          Тип использования данных
        wMaxPacketSize 0x0200 1x 512 байт
        bInterval 0
        Командный канал (0x01)
      Описатель конечной точки:
        Длина 7
        bDescriptorType 5
        bEndpointAddress 0x82 EP 2 IN
        bmAttributes 2
          Тип передачи Массовая
          Тип синхронизации Нет
          Тип использования данных
        wMaxPacketSize 0x0200 1x 512 байт
        bInterval 0
        Статусная труба (0x02)
      Описатель конечной точки:
        Длина 7
        bDescriptorType 5
        bEndpointAddress 0x83 EP 3 IN
        bmAttributes 2
          Тип передачи Массовая
          Тип синхронизации Нет
          Тип использования данных
        wMaxPacketSize 0x0200 1x 512 байт
        bInterval 0
        Data-in pipe (0x03)
      Описатель конечной точки:
        Длина 7
        bDescriptorType 5
        bEndpointAddress 0x04 EP 4 OUT
        bmAttributes 2
          Тип передачи Массовая
          Тип синхронизации Нет
          Тип использования данных
        wMaxPacketSize 0x0200 1x 512 байт
        bInterval 0
        Канал вывода данных (0x04)
Дескриптор хранилища бинарных объектов:
  Длина 5
  bDescriptorType 15
  wTotalLength 22
  bNumDeviceCaps 2
  Возможность устройства расширения USB 2.0:
    Длина 7
    bDescriptorType 16
    bDevCapabilityType 2
    bmAttributes 0x00000002
      Поддержка управления питанием (LPM)
  Возможности устройства SuperSpeed ​​USB:
    Длина 10
    bDescriptorType 16
    bDevCapabilityType 3
    bmAttributes 0x00
    wSpeedsSupported 0x000e
      Устройство может работать на полной скорости (12 Мбит / с)
      Устройство может работать на высокой скорости (480 Мбит / с)
      Устройство может работать на скорости SuperSpeed ​​(5 Гбит / с)
    bFunctionalitySupport 1
      Самая низкая полнофункциональная скорость устройства - Full Speed ​​(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 установить 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.