Почему раздел начинается в секторе 2048 вместо 63?

45

У меня было два одинаковых диска, и на каждом было по два RAID-раздела.

Один умер и я заменил его по гарантии на ту же модель.

При попытке его разбить, первый раздел может начинаться только в секторе 2048, а не в 63, как было раньше. Привод имеет другую геометрию, как у предыдущих, так и у остальных. (Меньше головок / больше цилиндров)

Старый диск:

$ sudo fdisk -c -u -l /dev/sdb 

Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000aa189

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *          63   174080339    87040138+  83  Linux
/dev/sdb2       174080340   182482334     4200997+  82  Linux swap / Solaris
/dev/sdb3       182482335  3907024064  1862270865   fd  Linux raid autodetect

Восстановленный диск получил от гарантии:

$ sudo fdisk -c -u -l /dev/sda

Disk /dev/sda: 2000.4 GB, 2000398934016 bytes
81 heads, 63 sectors/track, 765633 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000d0b5d

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048  ...

Это почему?

gcb
источник
1
Выходные данные не указывают, что это - диск Расширенного формата 4K: Sector size (logical/physical): 512 bytes / 512 bytes,
bwDraco
1
Почему это было отвергнуто?
bwDraco
1
Я не согласен с понижением, я также не знал о неправильном представлении о выравнивании дорожек, и информация JdeBP полезна и имеет отношение к актуальному вопросу.
Garrett
Похожие вопросы и ответы: superuser.com/q/565577/19956 , unix.stackexchange.com/q/81556/3054 ,
pts

Ответы:

37

Потому что ваш старый диск был размечен старой утилитой, такой как Linux fdiskэто бесполезно реализованное выравнивание дорожек с использованием полностью фиктивной геометрии диска, о которой вы сообщали, и ваш новый диск был или разделен новой утилитой, которая вместо этого (по умолчанию) выравнивается по границам 1 МБ.

дальнейшее чтение

JdeBP
источник
6
Другими словами, сектор 63 LBA соответствует цилиндру 0, головке 1, сектору 1 в CHS формат, который является первым сектором, который вы можете использовать в формате MBR. Однако число 63 не делится на 8, что вызывает проблему с дисками 4K, поэтому некоторые современные инструменты запускают первый раздел в 2048 году, который также обеспечивает совместимость GPT в будущем.
billc.cn
6
Бывают моменты, когда кто-то жаждет записать комментарии, особенно комментарии, когда другие пытаются внести в рот откровенные ошибки. Эти "другие слова" некорректный вот почему они не то, что я написал , Первый сектор, который можно использовать (как это делают несколько человек) для основного раздела с таблицей разделов MBR, - это LB # 2 или даже LB # 1, если не требуется совместимость с такими вещами, как LVM IBM. И выравнивание 1MiB нечего делать с совместимостью таблицы разделов EFI.
JdeBP
Правильно, я думаю, что я ошибся в первой части, но для второго бита я имел в виду, что если вы начнете в 2048 году, у вас не будет проблем с преобразованием диска в GPT в будущем, отсюда и слова «также» и «будущее» ,
billc.cn
5
Это все еще неправильно. Один будет все равно нет проблем , Делай арифметику. Даже оригинальное выравнивание (поддельная) граница дорожки обеспечивает более чем достаточно места. Эти 60 512-байтовых секторов могут содержать 240 записей таблицы разделов EFI. Снова: выравнивание 1MiB нечего делать с совместимостью таблицы разделов EFI.
JdeBP
4
fdisk это не «старая утилита», она активно поддерживается. Просто НЕ используйте «поддельную геометрию диска» через -c=dos (по умолчанию отключено!). Страница man явно предупреждает против этого, поскольку CHS мертва как дискотека. Ссылка на страницу JdBP мертва, но историю выравнивания 1MiB (сектор 2048) можно найти в записи в Википедии Диспетчер логических дисков , Это Windows Vista: «Использование границы выравнивания в 1 МБ позволяет более безопасно редактировать таблицу разделов с помощью Vista Disk Mgt».
David Tonhofer
32
fdisk -c=dos

Вы использовали старую таблицу разделов DOS при создании раздела. Более новые версии fdisk не используйте режим совместимости с DOS по умолчанию.

Mike
источник
3
В принятом ответе есть некоторая ценная информация, но в этом ответе есть жемчужина, которая мне понадобилась для решения моей проблемы.
jcbwlkr
fdisk не позволил бы мне воссоздать раздел, начинающийся в секторе 2048 без этого аргумента - я получил First sector (3072-314572799, default 3072):
tomfanning
5
Это очень важно, если вы пытаетесь изменить размер раздела, что с помощью fdisk означает удаление и воссоздание его; вам нужен раздел, чтобы начать в том же месте.
mcr
больше не работает с fdisk from util-linux 2.28 : /
akostadinov
нашел это fdisk -c=dos -u=cylinders /dev/sdb в сущности - gist.github.com/jkullick/febf46756435f1fa99dc56f00782de03
akostadinov
6

Может быть, будет полезно добавить комментарий здесь. Говорят, что для раздела LUKS удаление и воссоздание раздела происходит в том же месте, но больше перед вызовом. cryptsetup resize, Но когда вы давно создали раздел, он начинается с сектора 63. Используя fdisk, раздел будет воссоздан с неправильным смещением, что приведет к потере раздела.

Мне удалось восстановить его с помощью fdisk -c=dos чтобы иметь возможность создать раздел из сектора 63, без проблем.

Adrien Clerc
источник
1

Не уверен, почему он начался на 63, но, согласно fdisk, размеры вашего сектора 512.

Поэтому, если вы хотите, чтобы ваши разделы и, следовательно, кластеры были выровнены, ваше начальное смещение должно делиться на 512. 2048 в наши дни довольно распространено.

Если вы предпочитаете не выровненные сектора, то вы всегда можете заставить GPart переместить ваш раздел обратно на 63.

Редактировать:

По электронной почте Ой. Не видел, что у вас есть RAID. Вы, вероятно, должны опубликовать свой RAID и размер полосы.

surfasb
источник
63 - 111111 в двоичном формате. BIOS ПК, номер сектора / был закодирован в шесть битов, в результате чего максимальное количество 111111 (63) секторов на дорожку. Этот максимум все еще используется для виртуальной геометрии CHS.
Chris Reid
1

Хотя я понимаю, что на настоящий вопрос был дан ответ, быстрое решение проблемы первого цилиндра 63 против 2048 выглядит примерно так:

sfdisk -d /dev/sdb | sfdisk --force /dev/sda

(если вы уверены, что у вас есть диски одинакового размера)

Затем вы можете продолжить добавление различных разделов обратно в RAID, где вы получили жалобы на то, что разделы не имеют одинаковый размер из-за разницы в начальном цилиндре 63/2048, отбрасывающей возможные размеры разделов.

Jason Byrne
источник