1

Я работаю над тем, чтобы обеспечить поддержку жесткого диска более 2 ТБ на плате TI8107. Согласно заголовку GPT, в LBA1 со смещением 0x28 мы получаем первый пригодный для использования сектор, а в LBA1 со смещением 0x30 мы получаем последний пригодный для использования сектор /LBA. В случае жестких дисков менее 2 ТБ, если я получаю правильное число последнего используемого сектора /LBA, но в случае жесткого диска> 2 ТБ, значение, присутствующее в смещении LBA1 0x30, отличается от фактического общего числа секторов. Проверено с помощью hexdump жесткого диска.

Пример: для жесткого диска емкостью 4 ТБ. Общее число секторов: 7814037168 (что составляет 3,63 ТБ). Но значение, считанное при смещении LBA1 0x30, составляет: 3519069838 (что составляет 1,63 ТБ). Общий размер составляет 3,63 ТБ, но при чтении из заголовка он показывает 1,63 ТБ (что составляет 3,63 ТБ - 2 ТБ).

Почему он показывает остаток памяти после 2 ТБ? Как я могу прочитать фактическое количество секторов для жесткого диска> 2 ТБ.

Для 6 ТБ:

вывод df -h:

root@dm814x-evm:~# df -h
Filesystem                Size      Used    Available Use% Mounted on�
/dev/sda1                 1.5T      207.5M  1.4T      0%   /media/hdd1-vid

вывод gdisk /dev /sda:

root@dm814x-evm:~# gdisk /dev/sda
GPT fdisk (gdisk) version 1.0.0
Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): p

Disk /dev/sda: 11721045168 sectors, 5.5 TiB
Logical sector size: 512 bytes
Disk identifier (GUID): 2156215D-E245-46E0-8F4D-1E35C3B227A2
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 11721045134
Partitions will be aligned on 2048-sector boundaries
Total free space is 6108 sectors (3.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048      4194304000   2.0 TiB     8300  Linux filesystem
   2      4194306048      8388608000   2.0 TiB     8300  Linux filesystem
   3      8388610048     11721045134   1.6 TiB     8300  Linux filesystem

Command (? for help): 

1 ответ1

1

Основная часть вашего вопроса относится к диску емкостью 4 ТБ, но в выводе gdisk отображается диск объемом 6 ТБ. Я не вижу проблем с выводом gdisk , если только диск не был моделью 4TB. Если у вас проблемы с диском объемом 4 ТБ, пожалуйста, покажите вывод gdisk с него. (Также добавьте четыре пробела в начале каждой строки вывода, чтобы сохранить столбцовое форматирование. Я отредактировал ваш вопрос, чтобы добавить его для вывода на gdisk и df .) Вернитесь и отредактируйте свой вопрос с новым выводом, если это необходимо.

Возможно, вы просто неправильно интерпретируете структуры данных GPT. Помните, что указатели GPT имеют размер 64 бита (8 байт), а не 32-разрядные (4-байтные) указатели MBR. Использование gdisk или другого хорошо протестированного программного обеспечения для разбиения для интерпретации ваших структур данных значительно снизит вероятность человеческой ошибки при интерпретации этих указателей. Использование опции v в gdisk для проверки правильности структур данных GPT стоит делать, если вы подозреваете проблемы. Эта команда выдаст отчет о любых проблемах, gdisk .

Другая возможность состоит в том, что у вас есть драйвер с 32-битным ограничением. Это характерно для Windows, и особенно для 32-битной Windows. Такие драйверы часто усекают 64-разрядные указатели до 32-разрядных, что обычно приводит к тому, что диск "теряет" 2 ТБ пространства (или 4 ТБ для дисков размером более 4 ТБ, или теоретически более высокие значения для еще больших дисков). Если вы столкнулись с этой проблемой, решение состоит в том, чтобы заменить драйвер с ошибками на драйвер без ошибок. В некоторых случаях потребуется ремонт диска, если данные были записаны на диск во время использования неисправного драйвера.

Последний комментарий: не путайте терабайты (ТБ, 1000 ^ 4 байта) с тибибайтами (TiB, 1024 ^ 4 байта) или эквивалентами для других префиксов (GB-vs-GiB и т.д.). Вы, кажется, используете "ТБ" для обозначения обеих единиц измерения. Это было обычной практикой десять или более лет назад, но по мере увеличения размеров дисков это становится все более запутанным. Смотрите эту страницу для получения дополнительной информации по этой теме.

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