5

Сюжет

У меня есть диск WD10JPVT емкостью 1 ТБ внутри корпуса USB/esata IcyBox IB-290StUS-B .

  • Когда я подключаю диск через USB, я получаю 512 логических / 512 физических размеров сектора.
  • Когда я подключаю диск через собственный порт esata компьютера, я получаю размер 512 логических / 4k физического сектора.
  • Когда я подключаю диск через порт esata AKE Hidden USB 3.0 + eSATA II ExpressCard 54 мм , я получаю физический сектор размером 4 КБ / 4 КБ.

Эта проблема

Проблема заключается в том, что в таблице разделов MBR начало и конец разделов выражаются в виде ряда (логических) секторов. Это означает, что если я разделю диск, когда он подключен через порт esata Expresscard, а затем подключу его к порту USB или собственному порту esata, разделы будут иметь неправильное смещение и неправильный размер, и наоборот.

вывод fdisk

Приведенные ниже команды fdisk выполняются с использованием Ubuntu 11.04 (natty) и дают те же результаты с XUbuntu 12.04 для USB и esata на expresscard, но я не могу протестировать нативный esata, поскольку именно с этого я загружаю Ubuntu 12.04.

Подключен через USB:

> sudo fdisk -l /dev/sdb
Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000c2664

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1       15201   122095104    7  HPFS/NTFS

Подключен через собственный порт esata компьютера:

> sudo fdisk -l /dev/sdb
Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000c2664

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1       15201   122095104    7  HPFS/NTFS

Подключен через порт esata экспресс-карты:

> sudo fdisk -l /dev/sdb
Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 15200 cylinders
Units = cylinders of 16065 * 4096 = 65802240 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000c2664

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1       15201   976760832    7  HPFS/NTFS

Решения

  • Есть ли способ сохранить "реальный" размер сектора (4 КБ) внутри таблицы разделов MBR?
  • Использование таблицы разделов GPT могло бы сработать, но заголовок GPT хранится в секторе 1 диска… и размер сектора меняется, поэтому, если нет способа сохранить заголовок GPT в фиксированной позиции, измеряемой в байтах, это бесполезно.
  • Форматирование raw-диска без каких-либо разделов работает, но в Ubuntu 11.04 мне приходится вручную монтировать диск (/dev/sdb), так как Hal пытается монтировать несуществующие разделы (/dev/sdb1, /dev/sdb2,…) Несмотря на то, что он правильно определяет метку файловой системы.
  • Я могу вручную создать два перекрывающихся раздела, один из которых работает с 4k-секторами, а другой - с 512 секторами, и каждый раз, когда я подключаю диск, один раздел будет недействительным, а другой будет использоваться, но это будет уродливо и хрупко.

1 ответ1

3

Вы провели очень глубокий анализ форматов дисков, как MBR, так и GPT, и кажется, что вы столкнулись с проблемой, о которой не думали в этих стандартах, с форматом, который не зависит от размера логического сектора.

Проблема заключается в том, что диск USB имеет внутренний размер сектора 4 КБ, но использует разные размеры секторов (как логических, так и физических) в зависимости от порта, к которому он подключен. На практике он также претендует на различные конфигурации цилиндров / секторов, хотя это отображение, по крайней мере, согласованно.

Изменение этого поведения потребует либо:

  1. Изменения в прошивке диска
  2. Изменение протокола, используемого для порта, что означает изменения в драйвере диска, используемом для USB-диска

Оба этих варианта кажутся мне невозможными для себя. Я не нашел на сайте Western Digital обновлений прошивки для вашего диска, и я не искал более качественные драйверы дисков (отчасти потому, что я не знаю, что именно искать, но даже если бы знал, что меня не будет оптимистичный).

Тот же вопрос был задан в следующем посте, начиная с июня 2012 года,
Как заставить Debian использовать размер физического сектора на жестком диске?

Это обнадеживающий принятый ответ (который цитирует статью от июля 2011 года):

Согласно интервью с представителем Western Digital, опубликованным на http://www.techarp.com/showarticle.aspx?artno=734, нет возможности отключить эмуляцию 512e на современных дисках Advanced Format.

[...] будет ли Western Digital предлагать обновления встроенного программного обеспечения, которые позволят преобразовать текущие диски расширенного формата, работающие в режиме эмуляции, в собственный формат?

К сожалению нет. Текущие диски расширенного формата не могут быть преобразованы для работы в собственном формате через обновление прошивки

Я надеюсь, что кто-то другой придумал лучший ответ, но мой собственный ответ, как правило, отрицательный. Я бы не советовал пытаться сфабриковать нестандартный формат GPT/MBR, если вы хотите сохранить ваши данные в безопасности.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .