2

У меня есть жесткий диск на 3 ТБ, и Ubuntu 14.04 Live DVD показывает его как 746.5 ГБ. Я видел подобные проблемы с другими дисками в других ситуациях и никогда не находил решения. Я даже заставил Seagate заменить жесткий диск, сказав, что они не смогли починить жесткий диск, после того как инструмент создания образа диска как-то навсегда сказал жесткому диску, что это меньший диск. Два вопроса

  • Как это произошло
  • и как мне это исправить?

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 records in
128+0 records out
1342177280 bytes (1.3 GB) copied, 42.8214 s, 31.3 MB/s
root@ubuntu:/home/ubuntu# smartctl -i /dev/sdd
smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.13.0-32-generic] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Western Digital Caviar Green (AF, SATA 6Gb/s)
Device Model:     WDC WD30EZRX-00DC0B0
Serial Number:    {blanked}
LU WWN Device Id: 5 0014ee 0036bc22d
Firmware Version: 80.00A80
User Capacity:    3,000,592,982,016 bytes [3.00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ACS-2 (minor revision not indicated)
SATA Version is:  SATA 3.0, 6.0 Gb/s (current: 1.5 Gb/s)
Local Time is:    Sun Jul 17 07:44:41 2016 UTC
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
root@ubuntu:/home/ubuntu# gdisk -l /dev/sdd
GPT fdisk (gdisk) version 0.8.8

Partition table scan:
  MBR: not present
  BSD: not present
  APM: not present
  GPT: not present

Creating new GPT entries.
Disk /dev/sdd: 1565565872 sectors, 746.5 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 1F876634-0284-4A1C-8FDF-34A255B9DCCC
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 1565565838
Partitions will be aligned on 2048-sector boundaries
Total free space is 1565565805 sectors (746.5 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
root@ubuntu:/home/ubuntu# 

Изменить: дополнительная информация. Это связано через USB HDD документ. Возможно, это источник проблемы. Я перепишу так, чтобы он был подключен непосредственно к порту sata на материнской плате. А пока здесь запрашивается дополнительная информация.

root@ubuntu:/home/ubuntu# sg_readcap --16 /dev/sdd
READ CAPACITY (16) not supported
root@ubuntu:/home/ubuntu# sg_readcap  /dev/sdd
Read Capacity results:
   Last logical block address=1565565871 (0x5d50a3af), Number of blocks=1565565872
   Logical block length=512 bytes
Hence:
   Device size: 801569726464 bytes, 764436.5 MiB, 801.57 GB
root@ubuntu:/home/ubuntu# hdparm -N /dev/sdd

/dev/sdd:
 max sectors   = 5860533168/1(5860533168?), HPA setting seems invalid (buggy kernel device driver?)

1 ответ1

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

Это означает, что, когда ваша док- станция USB преобразует емкость из данных устройства ATA IDENTIFY DEVICE (см. Hdparm 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, который имеет 5860533168 / 0x15d50a3b0 512-байтовых логических секторов, для представления которых требуется 33 бита, только мост SATA / USB, который поддерживает SCSI 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. (Кроме того, поскольку они являются утилитами пользовательского пространства, ожидается, что вы, пользователь, будете использовать их только на устройствах соответствующего типа.) Вот почему вы получаете разные емкости в разных местах.

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