Вопрос: Почему диск 3TB показал бы как 746GiB


У меня 3-битный жесткий диск, а ubuntu 14.04 live dvd показывает его как 746.5GiB. Я видел такую ​​проблему с другими дисками в других ситуациях раньше и никогда не нашел решения. У меня даже был Seagate, заменивший hdd, говоря, что они не смогли исправить HDD после того, как инструмент для создания образов дисков каким-то образом сказал hdd, что это был меньший диск. Два вопроса

  • Как это произошло
  • и как я могу это исправить?

Фон HDD для этого случая

  • Диск был частью ZFS RAIDZ с использованием голого диска вместо раздела.
  • он сидел на полке в течение нескольких месяцев.
  • Я использовал gparted, чтобы попробовать и удалить все на диске

В настоящее время я выполняю команду

root @ ubuntu: / home / ubuntu # dd if = / dev / zero of = / dev / sdd bs = 16M

До этого я побежал:

root @ ubuntu: / home / ubuntu # dd if = / dev / zero of = / dev / sdd bs = 10M count = 128
128 + 0 записей в
128 + 0 записей
1342177280 байт (1,3 ГБ) скопировано, 42,8214 с, 31,3 МБ / с
root @ ubuntu: / home / ubuntu # smartctl -i / dev / sdd
smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.13.0-32-generic] (локальная сборка)
Copyright (C) 2002-13, Брюс Аллен, Кристиан Франке, www.smartmontools.org

=== НАЧАЛО ИНФОРМАЦИОННОГО РАЗДЕЛА ===
Семейство моделей: Western Digital Caviar Green (AF, SATA 6 Гбит / с)
Модель устройства: WDC WD30EZRX-00DC0B0
Серийный номер: {blanked}
LU WWN Идентификатор устройства: 5 0014ee 0036bc22d
Версия прошивки: 80.00A80
Емкость пользователя: 3000,592,982,016 байт [3,00 ТБ]
Размеры сектора: 512 байт логический, 4096 байт физических
Устройство: В базе данных smartctl [для подробного использования: -P show]
Версия ATA: ACS-2 (незначительная ревизия не указана)
Версия SATA: SATA 3.0, 6.0 Гбит / с (ток: 1,5 Гбит / с)
Местное время: Вс Июл 17 07:44:41 2016 UTC
Поддержка SMART: доступна - устройство имеет возможность SMART.
Поддержка SMART: включена
root @ ubuntu: / home / ubuntu # gdisk -l / dev / sdd
Версия GPT fdisk (gdisk) 0.8.8

Сканирование таблицы разделов:
  MBR: нет
  BSD: нет
  APM: нет
  GPT: нет

Создание новых записей GPT.
Диск / dev / sdd: 1565565872 секторов, 746,5 GiB
Размер логического сектора: 512 байт
Идентификатор диска (GUID): 1F876634-0284-4A1C-8FDF-34A255B9DCCC
Таблица разделов вмещает до 128 записей
Первый пригодный для использования сектор - 34, последний год использования - 1565565838
Разделы будут выровнены по границам 2048 сектора
Общее свободное пространство - 1565565805 секторов (746,5 гигабайт)

Номер Начало (сектор) Конец (сектор) Размер Название кода
корень @ Ubuntu: / Главная / убунту #

Изменить: дополнительная информация. Он подключается через usb hdd doc. Возможно, это и есть источник проблемы. Я буду перепрограммировать, поэтому он подключен непосредственно к порту sata на материнской плате. Тем временем здесь запрашивается дополнительная информация.

root @ ubuntu: / home / ubuntu # sg_readcap --16 / dev / sdd
READ CAPACITY (16) не поддерживается
root @ ubuntu: / home / ubuntu # sg_readcap / dev / sdd
Чтение результатов производительности:
   Последний логический адрес блока = 1565565871 (0x5d50a3af), Число блоков = 1565565872
   Длина логического блока = 512 байт
Следовательно:
   Размер устройства: 801569726464 байт, 764436,5 MiB, 801,57 GB
root @ ubuntu: / home / ubuntu # hdparm -N / dev / sdd

/ DEV / SDD:
 Максимальные секторы = 5860533168/1 (5860533168?), установка HPA кажется недействительной (ошибка драйвера устройства ядра?)

2
2017-07-17 08:06


Источник


Видимо, потому что 3000592982016 / 512 = 5860533168 = 0x15d50a3b0 и он был усечен 0x5d50a3b0 = 1565565872, Как это связано с вашим компьютером? - Tom Yan
Получите sg3_utils (пакет с именем sg3-utils в Ubuntu) и запустить sg_readcap -16 /dev/sdd, Если он правильно сообщает об этом, то, вероятно, ваш gdisk слишком стар, чтобы обрабатывать диск 3 ТБ. В противном случае это будет либо ядро, либо ваш USB-корпус / док-станция / адаптер. - Tom Yan
Каков результат hdparm -N /dev/sdd? - Kamil Maciorowski
Эта HPA setting seems invalid стоит исследовать. Проверьте аналогичный случай Я нашел; Конечный загрузочный компакт-диск якобы помогли. - Kamil Maciorowski
Проблема решена. USB-док-станция не поддерживает команду SCAD READ CAPACITY (16), а это означает, что при переводе емкости из данных ATA IDENTIFY DEVICE она может в наибольшей степени сообщить о 32-разрядной емкости, отвечая на команду SCAD READ CAPACITY (10), тогда как 0x15d50a3b0 требует 33 бит. Видеть SBC для получения подробной информации по желанию. - Tom Yan


Ответы:


root@ubuntu:/home/ubuntu# sg_readcap --16 /dev/sdd
READ CAPACITY (16) not supported

Это означает, что когда ваша USB-док-станция переводит емкость из данных ATA IDENTIFY DEVICE (см. hdparm -I / smartctl -i), он может не сообщать о размере до 32 бит (т. е. 0xffffffff, 4294967295) с точки зрения количества логических секторов. Это ограничение наследования SCSI READ CAPACITY (10):

Logical Sector Size | Maximum capacity supported (TiB / TB)
         512        |              ~2.0 /  ~2.2
        4096        |             ~16.0 / ~17.6

Поскольку ваш диск является AF 512e который имеет полностью 5126033168 / 0x15d50a3b0 512-байтовые логические сектора, для чего требуется 33 бита для представления, только порт SATA / USB, поддерживающий SCAD READ CAPACITY (16), может справиться с ним должным образом. Когда размер усечен до 32 бит, он переходит из:

101011101010100001010001110110000 (5860533168)

в

 01011101010100001010001110110000 (1565565872)

Ядро Linux, или, возможно, все ОС, в основном никогда не выдаст команду ATA IDENTIFY DEVICE «прямо» (т. Е. Инкапсулированную в команду SCSI ATA PASS-THROUGH) на USB-накопители, но команды SCSI READ CAPACITY (которые вы выпустили вручную с помощью sg_readcap), чтобы получить их способность.

Только когда диски на самом деле являются SATA-накопителем, подключенным к мосту SATA / USB, команда будет обрабатываться уровнем перевода SCSI-ATA, реализованным на мосту, который затем выдаст команду ATA IDENTIFY DEVICE на диск SATA, чтобы получить информацию необходимо сформировать данные ответа для команды READ CAPACITY.

Но такие утилиты, как hdparm а также smartctl (почти) исключительно для дисков ATA, поэтому они в значительной степени делают все с помощью ATA PASS-THROUGH. (Также потому, что они являются утилитами userpace, ожидается, что вы, пользователь, будете использовать их только на соответствующих типах устройств.) Вот почему вы в конечном итоге получаете разные возможности в разных местах.


6
2017-07-17 19:23