Как отформатировать жесткий диск 4k сектора?


12

Я купил жесткий диск Seagate ST3000DM001 3 ТБ. Он был продан внутри корпуса. Я отформатировал в ext4, скопировал некоторые данные на него, а затем я удалил его из корпуса и подключил его непосредственно к материнской плате. Мои данные не были видны ОС (он видел один неизвестный раздел ~ 300 ГБ, а остальные - как свободное место), поэтому я начал читать о Advanced Format и> 2 ТБ дисках.

Я снова подключил диск к USB, скопировал все данные и снова подключился к sata. Я использовал gparted для создания таблицы разделов GPT (утилита диска ubuntu не позволяла мне Error synchronizing after initial wipe: Timed out waiting for object (udisks-error-quark, 0), создал один большой раздел 3Tb Ext4, оставил Align toзначение по умолчанию MiBи отформатировал.

Привод распознан правильно и правильно установлен. Файлы могут быть скопированы с и на диск успешно.

Тем не мение:

Gparted показывает диск, имеющий 512 тыс. Секторов, который, я знаю, не соответствует действительности 1

gparted screenshot

пока cat /sys/block/sdb/queue/physical_block_sizeсообщает4096

Я нашел несколько отчетов , которые libpartedимеют проблемы с не-512K секторами 2 и других 3 , которые говорят , что выравнивающий к МиБу достаточно.

Раздельные отчеты о том, что диск выровнен, когда я выбираю минимальный

(parted) align-check 
alignment type(min/opt)  [optimal]/minimal? min                           
Partition number? 1                                                       
1 aligned
(parted)    

Правильна ли моя конфигурация? Есть ли у меня потеря производительности, потому что диск отформатирован с 512 тыс. Секторов, gParted сообщает о ложных значениях или я все понял неправильно?

  1. http://www.storagereview.com/seagate_barracuda_3tb_review_1tb_platters_st3000dm001
  2. http://ubuntuforums.org/showthread.php?t=1536933&p=9754234#post9754234
  3. http://wdc.custhelp.com/app/answers/detail/a_id/5655

У меня есть несколько таких накопителей Seagte, а также накопители WD и Fujitsu / HGST 3 ТБ, и все они работают без проблем. Вы можете быть правы насчет GParted, потому что мой Seagate, подключенный в настоящее время через USB, показывает размер сектора 4096 в GParted. Моя версия GParted - 0.12.1, по умолчанию от квантовой.
LiveWireBT

Я полагаю, что здесь также будет отображаться 4096, если я подключу его через USB. Там есть какая-то магия в контроллере USB-SATA.
qwazix

Соответствующий QA: superuser.com/questions/679725/…
qwazix

Ответы:


5

Он сообщает 512 байт, потому что это размер логического сектора для обратной совместимости со старыми ОС (Windows). (g) parted выравнивает разделы до 1 МБ, что более чем достаточно для правильной работы с дисками, использующими физические сектора 4k, так что все в порядке.


11

Во-первых, большинство дисков расширенного формата имеют размер логического сектора 512 байт, хотя размер физического сектора составляет 4096 байт (4 КБ). Это делается путем манипулирования данными в прошивке привода, и это может привести к проблемам с производительностью, если разделы не выровнены должным образом. Скорее всего, это не источник вашей проблемы, и ваше внимание на выравнивание разделов неуместно. ( Для того, чтобы быть уверенным, выравнивание разделов является важным, это просто не является источником вашей проблемы.)

Моя догадка (и это являетсяпросто догадка) проблема заключается в переключении между USB-корпусом и прямым подключением диска. В некоторых корпусах 512-байтовые логические сектора на диске преобразуются в 4096-байтовые логические сектора, представленные на компьютере, то есть в отличие от встроенного программного обеспечения на диске расширенного формата. Я не уверен, но я подозреваю, что некоторые корпуса делают это только на дисках размером более 2 ТБ. Схемы разделения MBR и GPT ссылаются на данные по номерам секторов, поэтому изменение размера сектора делает данные разделения недействительными. Таким образом, если вы подготовите диск в корпусе USB, который переводится таким образом, а затем попытаетесь использовать диск напрямую (или наоборот), вы увидите ошибки, потому что разделы (и даже данные резервного копирования GPT) не будут где компьютер ожидает его. Это все равно, что сказать человеку с завязанными глазами

Решение этой проблемы состоит в том, чтобы подготовить и использовать диск одним способом - либо использовать корпус USB, либо использовать прямое соединение, а не оба. Если по какой-либо причине необходимы оба варианта, вам нужно найти приложение, которое работает без применения этого типа перевода.

Чтобы проверить мою гипотезу, вы можете использовать инструмент (например parted), который сообщает о размерах логического сектора. Например:

sudo parted /dev/sda print
Model: ATA Hitachi HDP72505 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/512B

Я опустил кучу информации из этого вывода. Важная деталь находится в заключительной строке, показанной здесь: размеры логического и физического секторов составляют 512 байтов. Если вы запустите этот тест, затем подключите диск другим способом и запустите его снова, вы можете сравнить результаты. Если размер логического сектора изменяется в зависимости от того, как вы прикрепляете диск, моя гипотеза верна и является источником вашей проблемы. Или, по крайней мере, это одна проблема; могут быть и другие. В частности, Error synchronizing after initial wipeуказанная вами ошибка может указывать на другую проблему. OTOH, это может быть побочным эффектомpartedпытаясь прочитать данные резервной копии GPT из-за конца диска. В любом случае, если вы видите изменение в размере логического сектора, вы должны решить эту проблему, прежде чем заниматься чем-либо еще. Если вы хотите перераспределить диск, но у вас есть проблемы из-за Error synchronizingошибки, попробуйте использовать gdiskили cgdiskgdiskпакете), а не partedили GParted; gdiskсемья более устойчива к ошибкам , чем в partedсемье.


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

Я не собираюсь продолжать переключать интерфейсы, диск работает, как сейчас, подготовлен под подключение SATA. Я просто обеспокоен упомянутыми вами штрафами за производительность и хочу понять, что на самом деле происходит. parted /dev/sdb printвозвращается, 512/4096поэтому кажется, что gParted сообщает размер логического сектора, который объясняет, почему @LiveWireBT видит 4096 для того же диска (подключенного через USB), а также подтверждает вашу догадку, как указано выше.
qwazix

У такой же проблемы был внешний диск Verbatim Store'n'Go, размер логического сектора 512, а физического
4096.

4

Внесены изменения как в ядро ​​Linux, так и в утилиты для поддержки дисков расширенного формата. Эти изменения обеспечивают правильное выравнивание всех разделов на дисках расширенного формата на границах секторов 4K. Поддержка ядра для дисков расширенного формата доступна в версиях ядра 2.6.31 и выше. Поддержка порционирования и форматирования дисков Advanced Format доступна в следующих утилитах Linux:

Fdisk: GNU Fdisk - это утилита командной строки, которая разбивает жесткие диски. Версии 1.2.3 и выше поддерживают диски расширенного формата.

Parted: GNU Parted - графическая утилита для разделения жестких дисков. Версии 2.1 и выше поддерживают диски расширенного формата.

Собственные 4K-диски (4Kn) имеют размер логического сектора 4 КБ. Современные операционные системы могут хранить данные на этих дисках, но они обычно не могут загружаться с этих дисков. Эти диски обычно являются внешними дисками с USB-соединением.

Чтобы создать раздел, используемый в качестве устройства хранения мультимедиа, просто нажмите Ctrl+ Alt+ Tна клавиатуре, чтобы открыть терминал. Когда он откроется, выполните команду (ы) ниже:

sudo mkfs.ext4 -m 0 /dev/sdb1

Большинство дисков 4k имеют размер физического сектора 4096 байт, так что 3 ТБ могут уместиться на пластинах, но у них все еще есть размер логического сектора 512B для совместимости с ОС, которые ожидают, что один сектор будет 512B. Вот почему, когда вы используете команду print в parted для распечатки деталей, это говорит, что размер сектора логический / физический 512B / 4096B. Это нормально.

Это «преобразование» осуществляется интеллектом на самом диске, и это нормально. Это как это должно работать.

Если вы не видите всего 3 ТБ, сначала проверьте в BIOS, что он не ограничивает размер диска. Может быть, вам нужно обновление BIOS для поддержки диска.

Также использование parted для создания раздела, начинающегося с 0, что является ошибкой. Вам необходимо запустить первый раздел в секторе 2048, который эквивалентен 1 МБ, чтобы разделы на диске были выровнены для оптимальной производительности.

Таким образом, измените единицу измерения на MiB, напечатайте информацию о диске, которая также напечатает размер диска в MiB, и создайте раздел (если вы хотите только один раздел), начиная с 1MiB и заканчивая последним MiB (или одним перед последним) ,

Например, диск объемом 3 ТБ должен иметь что-то вроде 2 861 022 МБ. Таким образом, создание одного раздела, охватывающего весь диск на дисковом устройстве под названием / dev / sdX, будет выглядеть так (замените X правильной буквой):

sudo parted /dev/sdX
unit MiB
mklabel gpt
print (to see the total size in MiB)
mkpart primary 1 2861022
quit

Если размер диска составляет несколько МБ, больше или меньше 2861022, настройте конечное местоположение.

Вот и все. После этого создайте нужную файловую систему в разделе.

Источники и дополнительное чтение

4K-сектор дисков и Linux

Проверка ошибок и установка 4k дисков в Linux

Форумы Ubuntu


Спасибо за ответ, но он не отвечает на мой вопрос. Я получаю, что ядро ​​распознает размер сектора диска, и что gparted должен распознавать это тоже, но сообщает иначе, и мне любопытно, есть ли объяснение этому, если это ошибка, или я сделал что-то не так ,
qwazix

0

Пока вы выравниваете свои разделы по кратному 4 КБ, все в порядке. В противном случае вам не нужно делать ничего особенного для дисков с физическими секторами 4 КБ.

Старые разделы программного обеспечения выравнивали разделы на нескольких секторах размером 63x512B, что приведет к снижению производительности, если накопитель имеет физические сектора 4 КБ, поскольку это 31 с половиной килобайт, а НЕ кратно 4 КБ.

Практически никакое программное обеспечение для разметки, доступное сейчас в Ubuntu, больше не будет этого делать (если только вы не попросите об этом как-нибудь). По умолчанию большинство из них будут выровнены с кратным 1 МБ (секторам 2048x512B, что также равно секторам 256x4KB).

Что произойдет, если вы не выровняете это?

Если вы не выровняете разделы с кратностью 4 КБ, худшее, что может произойти, - это потеря производительности (довольно значительная для небольших файлов). Диски с секторами 4 КБ, как правило, эмулируют сектора 512 Б для совместимости с существующими системами. Таким образом, они прекрасно функционируют, если рассматривать их как секторный диск 512В. Но когда вы пишете в одну область 512B, она перезаписывает весь сектор 4KB.

Таким образом, по соображениям производительности важно убедиться, что кластеры 4 КБ, которые вы используете в своей файловой системе, выровнены с секторами 4 КБ на диске, чтобы одна запись кластера не привела к необходимости записи двух секторов 4 КБ на диске.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.