Я уже некоторое время пытаюсь красиво разделить этот SSD (Samsung 840). Я хочу убедиться, что страницы совпадают со страницами SSD, чтобы ограничить количество записей. Я нашел этот сайт, который рекомендует использовать 224 головы и 56 секторов.

У меня уже есть дамп sfdisk, который я хочу скопировать, но немного переместить начальный раздел (я думаю). Он измеряется в секторах, и я смущаюсь, перемещаясь между секторами, головками, цилиндрами и всем остальным (мой товарищ дал мне стартовый номер 2048):

# partition table of /dev/sdb
unit: sectors

/dev/sdb1 : start=     2048, size=   995329, Id=83, bootable
/dev/sdb2 : start=   997377, size= 10242047, Id=83
/dev/sdb3 : start= 11239424, size= 24611328, Id=83
/dev/sdb4 : start= 35850752, size= 67223296, Id= 5
/dev/sdb5 : start= 35850808, size= 10235848, Id=83
/dev/sdb6 : start= 46086712, size= 56987336, Id=83

Поэтому я создавал этот макет на диске с помощью sudo sfdisk -H224 -S56 /dev/sdb < sfdisk.dump . Но в вышеупомянутой ссылке парень говорит, что он следит за тем, чтобы его перегородка начиналась на цилиндре 2, чтобы он находился на границе цилиндра.

Я попытался проверить мой стартовый цилиндр, и он на 0 :(

$ sudo sfdisk -l -uC /dev/sdb        

Disk /dev/sdb: 18689 cylinders, 224 heads, 56 sectors/track
Units = cylinders of 6422528 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sdb1   *      0+     79-     80-    497664+  83  Linux
/dev/sdb2         79+    895     817-   5121023+  83  Linux
/dev/sdb3        896    2857    1962   12305664   83  Linux
/dev/sdb4       2858    8216    5359   33611648    5  Extended
/dev/sdb5       2858+   3673     816-   5117924   83  Linux
/dev/sdb6       3674+   8216    4543-  28493668   83  Linux

Я также хочу изменить размеры некоторых разделов, но преобразование между цилиндрами, головками, секторами и мегабайтами кажется непоследовательным и не позволяет мне работать. Я сделал много поисков, но все еще не могу понять, как построить разделы или вычислить геометрию.

Я также попробовал другой способ настроить sfdisk:

echo "2,512,83,*
,5000,83
,10000,83
,,5
,6000,83
,6000,83
"|sudo sfdisk -uM -H224 -S56 /dev/sdb

И попытался увеличить мегабайты для - и проверить - начальную позицию цилиндра, но может получить только до 6 мегабайт, прежде чем у него будет дерьмо (Warning: given size (5005) exceeds max allowable size (6)), и я все еще на нулевом цилиндре ,

Геометрия диска человек! Как это работает!?

Есть ли более простой способ? У кого-нибудь есть какие-нибудь формулы для расчета между типами геометрии? Кто-нибудь знает хороший учебник, чтобы связать меня? Кто-нибудь делал это раньше для своих SSD?

С уважением

1 ответ1

2

На MBR-диске значения секторов хранятся двумя способами:

  • В формате CHS - формат цилиндра / головки / сектора (CHS) использует странное 24-битное кодирование для хранения значений сектора. Делая немного математики, 2 ^ 24 * 512 байт = 8 ГБ. (На самом деле, истинный предел CHS немного ниже этого, потому что не все значения CHS являются законными.) Обратите внимание, что это 8 ГиБ, что значительно ниже общей емкости большинства современных дисков (даже SSD), что означает, что кодирование CHS бесполезно и поэтому сегодня игнорируется для большинства целей. Поэтому сосредоточение внимания на значениях CHS и геометрии CHS (которые определяют максимальные значения цилиндра, головки и сектора для диска) является пустой тратой времени.
  • В формате LBA - Формат линейной (или логической) блочной адресации (LBA) использует одно 32-битное значение для указания секторов. 2 ^ 32 * 512 байт = 2 ТБ, следовательно, ограничение 2 ТБ для MBR. Этого достаточно для всех современных твердотельных накопителей и даже многих современных вращающихся дисков; но для больших современных дисков требуется более новая система разбиения GPT, в которой используются 64-битные значения LBA, а не значения CHS.

В прошлом разделы выравнивались по значениям цилиндров, потому что это могло улучшить производительность дисков той эпохи (в 1980-х и, возможно, в начале 1990-х). С тех пор выравнивание цилиндров было обычным делом просто по привычке и для обратной совместимости, но на самом деле оно не служило какой-либо цели. Сегодня выравнивание цилиндров вредно, потому что новые технологии (твердотельные накопители, определенные типы RAID-массивов и диски Advanced Format) лучше работают с выравниванием на некотором множестве секторов степени 2 (8, 512, 2048 и т.д.), Но детали отличаются от одного типа диска к другому. Большинство современных инструментов создания разделов по умолчанию выравнивают по крайней мере первый раздел на нескольких секторах из 2048, потому что это хорошо работает для большинства современных дисков; однако для некоторых твердотельных накопителей требуются еще большие значения, например 4096 или даже 8192. Если вы можете получить техническую информацию о вашем SSD, вы можете узнать, каковы его требования. Если нет, попробуйте использовать значение выравнивания по умолчанию 2048, 4096 или 8192.

Мой уровень владения sfdisk ограничен (мне никогда не нравился его набор команд), поэтому я не могу точно сказать, как это сделать с помощью инструмента, кроме как дать общий совет: указывать начальную и конечную точки раздела в секторах, а не в цилиндрах , Если вы настраиваете их вручную, извлеките карманный калькулятор (или воспользуйтесь настольным приложением калькулятора) и убедитесь, что разделы начинаются со значений, которые делятся равномерно на значение выравнивания, которое вы используете. Конечные точки не важны, за исключением того, что вы, вероятно, хотите, чтобы они заканчивали один сектор перед следующей начальной точкой, чтобы минимизировать потерянное пространство.

Оба parted и gdisk сделать больше для обеспечения выравнивания разделов , чем делает fdisk (и я подозреваю , sfdisk Таким образом, вы можете рассмотреть возможность использования одного из этих инструментов - но gdisk работает только на GPT-дисках, поэтому вы должны использовать его, только если вы хотите переключиться на GPT с MBR.

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