Por que o fdisk insiste em iniciar a primeira partição no setor 65535 (MiB 31.9995…)

4

Então, eu tenho um desses drives SSD USB T3 externos newfangled aqui, dimensionados em 250 GB.

Vamos ver o que o fdisk tem a dizer sobre isso:

Disk /dev/sdb: 232.9 GiB, 250059350016 bytes, 488397168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 33553920 bytes
Disklabel type: dos
Disk identifier: 0x7df0da81

Device     Boot Start       End   Sectors   Size Id Type
/dev/sdb1  *       64 488392128 488392065 232.9G  7 HPFS/NTFS/exFAT

Os setores ainda têm 512 bytes (suspeito que abaixo da camada de software, as coisas são um pouco diferentes), o tamanho mínimo de I / O é 1 setor, o tamanho ideal de I / O é 3553920 bytes = 65535 setores ≈ 31.995 MiB

Vemos que a formatação executada na fábrica consiste em uma única partição do bloco 64 para o bloco 488392128, que é ~ 232.88 GiB ou ~ 244.19 GB.

Por isso, quero apenas reparticionar usando fdisk . fdisk insiste que a primeira partição começa no setor 65535. Finalizando, ela termina no setor 488397167, um pouco além da partição emitida pela fábrica:

Device     Boot Start       End   Sectors   Size Id Type
/dev/sdb1       65535 488397167 488331633 232.9G 83 Linux

Eu sei sobre o limite de alinhamento de 1 MiB que se manifesta por fdisk colocando a primeira partição no setor 2048. A razão para isso parece ser um acidente histórico devido a uma verruga presente no Logical Disk Manager do Microsoft Vista.

Mas e quanto a esse novo "alinhamento" do setor 65535?

    
por David Tonhofer 14.08.2016 / 16:54

1 resposta

6

Se esse 65535 se referir a setores de 512 bytes, ele não seria alinhado. Infelizmente, fdisk com partições pode obter ideias engraçadas sobre a geometria da unidade.

Ignore o que o fdisk está tentando fazer, use o 1MiB de qualquer maneira. Se você não precisa das partições por nenhum motivo específico, mude para gpt. Se fdisk não funcionar, mude para parted , gdisk ou o que quer que funcione.

parted /dev/sdb
) unit mib    # parted uses stupid unit by default
) mklabel gpt # beats msdos by a long shot
) mkpart boot 1 512
) mkpart swap 512 2048
) mkpart root 2048 20480
) mkpart home 20480 -1
) print free  # use this whenever you want to see what's available
    
por 14.08.2016 / 17:06