1

Есть ли способ создать один раздел размером 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 не должны допускать этого ...)

2 ответа2

1

ОБНОВИТЬ:

Более новые версии 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? :)

1

Последние версии fdisk по умолчанию запускают первый раздел в секторе 2048. Если вы видите какое-то другое поведение, то либо вы используете довольно старую версию fdisk либо есть ошибка в используемой вами версии fdisk .

Вы также можете использовать parted или GParted для этой задачи. Они оба работают как с MBR-дисками, так и с GPT-дисками, поэтому использование одного из этих инструментов не требует переключения на GPT. Тем не менее, GPT имеет определенные преимущества, даже на небольших дисках. Они незначительны, но вы можете рассмотреть возможность использования GPT, чтобы получить эти преимущества. (К ним относятся наличие CRC важных структур данных для выявления проблем, резервное копирование важных структур данных для помощи в устранении некоторых типов проблем, наличие меток разделов, устранение неуклюжего основного / расширенного / логического трения и, конечно же, поддержка более 2 ТБ диски.)

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