Совместное разбиение диска объемом 2 ТБ с помощью Linux fdisk

Есть ли способ создать один раздел размером 2 ТБ с выравниванием по 4096 байтам на диске с помощью стандартного fdisk для Linux (я пробовал версию 2.17.2)?

Я попробовал следующие вещи и столкнулся с описанной ошибкой:

  • Если я просто использую -u флаг, он устанавливает размер кластера в один сектор 512 байт. Тогда раздел должен иметь длину 3 906 250 000 кластеров, и fdisk усекает это число до 2 147 483 647 (2^31-1).
  • Если я использую -b 4096, это позволяет мне просто создать раздел (с длиной 488 281 506 секторов), но если я проверю размер полученного раздела, используя blockdev --getsize64, это показывает, что размер раздела составляет всего 250 ГБ, то есть он по-прежнему использует размер сектора 512.
  • Если я попытаюсь установить сектор и количество голов, используя -S 64 -H 32например, тогда он всегда устанавливает счетчик секторов обратно в 63, что не делится равномерно на 4096 (я знаю, 32, деление поровну на 8 технически достаточно, но - назовите меня перфекционистом - мне бы очень хотелось, чтобы Начало раздела в секторе 2048 (1 МБ выровнено), как я читал, является рекомендуемой настройкой в ​​наши дни.

Есть ли какая-то комбинация параметров, которую я могу передать в fdisk, которая позволит мне создать раздел, который начинается с 1 МБ (сектор 2048 [256] для секторов 512-[4096-] байт) и имеет длину 2 ТБ (3 906 250 000 [488 281 506) ] секторов для секторов 512-[4096-] байт)?

(Я читал, что могу просто использовать gparted и заставить его сменить диск на GPT-разделение, но мне бы очень хотелось узнать, есть ли способ сделать это со стандартным fdisk и разделом MBR. Я не вижу причины почему разделы MBR не должны допускать этого...)

3 ответа

Решение

ОБНОВИТЬ:

Более новые версии fdisk (например, v2.20.1) больше не имеют проблемы с усечением номера кластера, как описано в вопросе. Поэтому теперь можно просто использовать

fdisk -c /dev/sdX

создать раздел, начинающийся в 2048 и заканчивающийся 3906252047, чтобы создать желаемый макет.

ОРИГИНАЛЬНЫЙ ОТВЕТ:

Я нашел один способ сделать это:

fdisk -S 16 -H 1 -c /dev/sdX

Затем я могу создать раздел, который начинается в 129 и заканчивается в 244 140 753.

Теперь, если я сделаю fdisk -l -u /dev/sdX, Я получу:

Disk /dev/sdX: 2000.4 GB, 2000365289472 bytes
1 heads, 16 sectors/track, 244185216 cylinders, total 3906963456 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: 0xee3e796d

   Device Boot      Start         End      Blocks   Id  System
/dev/sdX1            2048  3906252047  1953125000   fd  Linux raid autodetect

а также blockdev --getsize64 /dev/sdX1 дает мне ровно 2 000 000 000 000

Теперь главный вопрос: кто-нибудь видит проблему с -S 16 -H 1?:)

Использование parted вместо fdisk, Он позаботится о выравнивании автоматически и не имеет этой ошибки, которую вы, кажется, обнаружили в fdisk, Кроме того, нет такой вещи, как кластеры. Это либо секторы, либо цилиндры, которые обесцениваются как мусор, оставшийся с начала 90-х годов.

Есть причина, по которой существует GPT, и вы, кажется, обнаружили ее. Нет смысла толкать квадратный колышек через круглое отверстие.

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