Совместное разбиение диска объемом 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, и вы, кажется, обнаружили ее. Нет смысла толкать квадратный колышек через круглое отверстие.