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

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

Я снова подключил диск с 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 показывает диск, имеющий 512k секторов, которые, как я знаю, не являются true1

[!d7 ]

, в то время как cat /sys/block/sdb/queue/physical_block_size сообщает 4096

Я нашел несколько сообщений о том, что libparted имеет проблему с секторами, отличными от 512k 1 и другими 1 , которые говорят, что выравнивание с MiB достаточно.

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

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

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

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

1
задан 28 August 2013 в 02:47

3 ответа

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

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

Решение этой проблемы заключается в том, чтобы подготовить и использовать диск одним способом - физический использовать 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 или cgdisk (в пакете gdisk), а не parted или GParted; семейство gdisk более устойчиво к ошибкам, чем семейство parted.

9
ответ дан 24 May 2018 в 18:40
  • 1
    Я действительно считаю, что проблема связана с переключением между usb и внутренним. На самом деле это была моя первоначальная мысль, поэтому я снова создал таблицу разделов после , вернув диск в компьютер и связавшись с sata. (Я взял его, прежде всего, чтобы вытащить данные). Я не хочу удалять его снова, чтобы проверить логический сектор, сообщаемый через USB, но все факты говорят об этом. – qwazix 28 August 2013 в 02:15
  • 2
    Я не намерен поддерживать коммутирующие интерфейсы, диск работает так, как сейчас, подготовлен под SATA-подключением. Я просто беспокоюсь о штрафах за производительность, о которых вы говорили, и я хочу понять, что на самом деле происходит. parted /dev/sdb print возвращает 512/4096, поэтому кажется, что gParted сообщает размер логического сектора, который объясняет, почему @LiveWireBT видит 4096 для одного и того же диска (подключается через USB), а также подтверждает вашу догадку, как указано выше. – qwazix 28 August 2013 в 02:28
  • 3
    Имел ту же проблему с внешним накопителем Verbatim Store'n'Go, размер логического сектора - 512, а физический - 4096. – gaborous 12 February 2015 в 21:01

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

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

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

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

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

sudo mkfs.ext4 -m 0 /dev/sdb1

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

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

Если вы не видите первую проверку 3TB в BIOS, это не ограничивает размер диска. Возможно, вам понадобится обновление BIOS для поддержки диска.

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

Итак, измените устройство на MiB, распечатайте данные на диске, которые также будут напечатайте размер диска в MiB и создайте раздел (если вам нужен только один раздел), начиная с 1MiB и заканчивая на последнем MiB (или один до последнего).

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

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

Если размер диска немного больше MiB или менее 2861022 отрегулируйте конечное местоположение.

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

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

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

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

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

4
ответ дан 24 May 2018 в 18:40
  • 1
    Спасибо за ответ, но он не отвечает на мой вопрос. Я получаю, что ядро ​​распознает размер сектора диска, и gparted предположил , чтобы распознать это тоже, но он сообщает об этом, и мне любопытно, есть ли объяснение этому, если это ошибка, или если я сделал что-то не так. – qwazix 27 August 2013 в 21:27

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

Старое программное обеспечение для разбиения на разделы выровняло разделы на несколько секторов 63x512B, что приведет к плохой производительности, если диск имеет 4KB физических секторов, это 31 с половиной KiloBytes, а не кратным 4KB.

Практически никакое программное обеспечение для разбиения на разделы, доступное сейчас в Ubuntu, не сделает этого больше (если вы специально не попросите его каким-то образом).

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

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

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

0
ответ дан 24 May 2018 в 18:40

Другие вопросы по тегам:

Похожие вопросы: