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

15

Жесткие диски переходят от 512 байт к размеру сектора 4096 байт , и похоже, что Windows XP не будет поддерживать эти новые диски без дополнительного программного обеспечения (такого как WDalign от Western Digital )

Мой вопрос: как это влияет на внешние жесткие диски? Я буду покупать внешний USB-накопитель емкостью 1 ТБ, и он будет подключен к сочетанию компьютеров под управлением Windows 7 и XP. Есть ли простой способ определить размер сектора на внешнем жестком диске?

SIGINT
источник
1
Обратите внимание, что размер сектора жесткого диска! = Размер единицы выделения файловой системы (далее «кластер»), как сообщается в ОС. NTFS, например, использует блоки выделения размером 4 КБ, но (на старых жестких дисках) они состоят из 8 секторов жестких дисков. en.wikipedia.org/wiki/Allocation_unit
sigint
2
Существует больше информации и, я думаю, лучший ответ по переполнению стека на вопрос, как я могу определить размер сектора в окнах . Есть предложение использовать командуfsutil fsinfo ntfsinfo <volume pathname>
нерациональный Джон

Ответы:

12

Запустите wmic partition get BlockSize, StartingOffset, Name, Indexиз командной строки Windows. Вывод выглядит так:

BlockSize  Index  Name                   StartingOffset
512        0      Disk #0, Partition #0  1048576
512        1      Disk #0, Partition #1  105906176
512        0      Disk #1, Partition #0  32256

Где размер блока - это размер сектора диска. К сожалению, в нем нет буквы диска.

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

shf301
источник
1
Жесткий диск действительно может неверно сообщить размер блока ОС. Тем не менее, если я попробую это на Win7 (которая поддерживает сектора 4k), он должен сообщить правильный размер блока. По крайней мере, таким образом я могу наклеить на внешний жесткий диск наклейку «не используйте это в XP без WDAlign». Любые коллеги-комментаторы с 4k-секторами, пожалуйста, поделитесь своим опытом. Благодарность!
sigint
2
Причина, по которой это на самом деле не работает, объясняется в этом ответе о переполнении стека. Размер блока, сообщаемый этой wmicкомандой, очевидно, является размером логического сектора и может не совпадать с размером физического сектора накопителя. Предложение по SO было использовать fsutilкоманду.
иррациональный Джон
Этот ответ неверен. wmic partitionговорит вам что-то о разделе, а не о диске, и возвращает 512, даже если диск представлен хост-компьютеру с 4096 байтами на логический сектор или когда диск имеет 4096 байтов на физический сектор.
Балазер
8

Я только что проверил это с помощью WMIC на моем компьютере с Windows XP. Это запрос:

C:\>wmic DISKDRIVE get bytespersector, caption  
BytesPerSector  Caption  
512             WDC WD1600AAJS-60M0A0  
4096            TrekStor HDD USB Device

Новый внешний диск Toshiba имеет размер 4096 байт.

milind110
источник
wmic DISKDRIVE get bytespersectorсообщает размер логического сектора в том виде, как он представлен на главном компьютере. Размер физического сектора может быть разным.
Балазер
2

Я знаю, что вы не используете Linux, но только для записи:

smartctl -i /dev/...

шоу

Sector Size:      512 bytes logical/physical
Eun
источник
1

Вы можете сделать это через командную строку. Откройте CMD ( Windows+ rзатем введите cmd) и запустите chkdsk driveletter: chkdsk c:он будет указан как x bytes in each allocation unit.

альтернативный текст

Unfundednut
источник
2
Я считаю, что это говорит о файловой системе, а не о самом диске.
Джои
Это помогло мне получить информацию, которую я хотел. Спасибо.
dimitarvp
Другой способ получить размер блока - сохранить пустой текстовый файл, щелкнуть правой кнопкой мыши, просмотреть свойства и
записать
Единицы распределения не связаны с размером сектора, за исключением того, что единица распределения должна содержать X секторов. Это размер кластера, который поддерживается файловыми системами Windows для предотвращения слишком большого размера MFT / FAT по сравнению с фактическими данными, которые вы хотите сохранить на устройстве. Повсюду вы увидите блок выделения 4k на секторальных дисках по 512 байт.
LawrenceC
1

Windows XP прекрасно работает с современными дисками, которые имеют 4096 байт на физический сектор. Основная проблема заключается в том, что диск с 4096 байтами на физический сектор и 512 байтами на логический сектор (эмуляция 512 байт или «512e») будет работать неоптимально, если разделы не выровнены с физическими секторами. Встроенные в Windows XP инструменты создания разделов не обеспечивают правильного выравнивания для этих современных дисков. Для разбиения диска с надлежащим выравниванием выполните разбиение в более новой операционной системе или с помощью современного стороннего инструмента или инструмента, предоставленного поставщиком жесткого диска. Это рекомендуется независимо от того, использует ли диск 512 или 4096 байт на физический сектор.

Вы можете проверить выравнивание существующих разделов, используя msinfo32 (Windows XP и более поздние версии):

  • msinfo32.exe> ​​Компоненты> Хранилище> Диски> Смещение начала раздела (убедитесь, что оно кратно размеру физического сектора или кратно 1 048 576 байт для твердотельных накопителей)

Существуют три различных размера секторов: размер физического сектора диска, размер логического сектора диска и размер логического сектора, представленный хост-компьютеру. Размер логического сектора, представляемый хост-компьютеру, может отличаться от размера логического сектора диска, если диск подключен через мост, который выполняет преобразование размера сектора. Внешние USB-накопители часто выполняют преобразование от 512 байт на логический сектор на интерфейсе SATA с накопителем внутри корпуса до 4096 байт на логический сектор на интерфейсе USB с хост-компьютером. Этот перевод позволяет Windows XP использовать более 2 ТБ диска .

fsutil в Windows 10 может сообщить вам размер физического сектора диска и размер логического сектора, представленный на главном компьютере:

C:> fsutil fsinfo sectorInfo c:
LogicalBytesPerSector :                                 512
PhysicalBytesPerSectorForAtomicity :                    4096
PhysicalBytesPerSectorForPerformance :                  4096
FileSystemEffectivePhysicalBytesPerSectorForAtomicity : 4096
Device Alignment :                                      Aligned (0x000)
Partition alignment on device :                         Aligned (0x000)

Чтобы получить размеры логических и физических секторов диска SATA за мостом USB, вы можете передать SMART-запрос через мост на диск SATA с помощью smartctl (входит в пакет GSmartControl для Windows):

C:\Program Files\GSmartControl> smartctl -a -d sat pd11
smartctl 6.5 2016-05-07 r4318 [i686-w64-mingw32-xp-sp3] (sf-6.5-1)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Western Digital Green
...
Sector Sizes:     512 bytes logical, 4096 bytes physical

Ни один из встроенных инструментов Windows XP не может получить размер физического сектора диска. Вам нужно использовать smartctl или аналогичный инструмент для запроса диска.

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

  • msinfo32.exe> ​​Компоненты> Хранилище> Диски> Байт / сектор. (работает в Windows XP и более поздних версиях)
  • wmic DISKDRIVE get bytespersector, caption (Работает только в Windows XP)
  • fsutil fsinfo ntfsinfo c: («Байт на сектор». Работает в Windows XP и более поздних версиях)
  • fsutil fsinfo sectorInfo c: («LogicalBytesPerSector». Работает в Windows 10 и более поздних версиях)

Многие внешние USB-накопители Western Digital объемом более 2 ТБ можно настроить для совместимости с Windows XP , изменив размер логического сектора, представляемого хост-компьютеру.

balazer
источник
-1

Ваш физический жесткий диск будет иметь размер физического сектора, определенный производителем (512 или 4096 в более новом хранилище), и, кроме того, ваша файловая система создаст размер логического сектора.

Если эти два элемента не выровнены, вы будете читать, изменять, записывать из двух блоков, если изменяемые данные охватывают два блока.

Для твердотельных накопителей, хотя они и логически работают одинаково при доступе к данным, я считаю, что их физические сектора равны 1024 (из-за флэш-памяти), поэтому вам необходимо соответствующим образом настроить раздел Align=1024.

Какой-то парень
источник
2
Это на самом деле не отвечает на вопрос автора.
Ramhound