Alinhamento adequado de partições para Linux em um SSD de Bloco Apagável de 1536 KiB

1

Tentativa de configurar o Windows 7 de inicialização dupla e o Arch Linux.

SSD Samsung 840 EVO de 120 GB.

Apague o tamanho do bloco: 1536 KiB. Setores: 3072 (512 * 3072 = 1572864 = 1024 * 1536)

Isso parece ser simples ao particionar a unidade com a GPT.

No entanto, eu já tenho o Windows 7 instalado onde o fiz, inicializando a mídia de instalação USB via USB (e não UEFI) para que o Windows 7 se instalasse no disco com um MBR.

Portanto, quando tento instalar o Arch e executo fdisk -b 3072 /dev/sda , ele falha porque 3072 é inválido, mas aceita -b 4096 . Parece presumir que não existe nenhum SSD que não esteja realmente alinhado por blocos a limites de 1 ou 2MB.

Da mesma forma, a partição 100 System Reserved do Windows começa no setor 2048. Isso também não está alinhado!

O que fazer? Posso resgatar ou kludge isso para salvar a reinstalação do Windows? Ou estou operando sob falsas suposições? Há muita informação confusa por aí, muitas das quais provavelmente estão desatualizadas.

    
por Steven Lu 11.05.2014 / 18:12

1 resposta

3

Não use a opção fdisk -b neste contexto! Essa opção define o tamanho do setor lógico do disco, que você deve não precisar definir, porque o kernel quase que o detecta corretamente. Você só precisaria dessa opção se tivesse um driver com bugs ou estivesse fazendo um trabalho de desenvolvimento com um disco virtual ou algo assim.

Em vez disso, o que você deve fazer é calcular manualmente o valor de alinhamento ideal. Por exemplo, se você sabe que quer que uma partição comece em algum lugar no setor 200000, você faria:

  1. Divida 200.000 por 3072, produzindo 65,1.
  2. Arredondar (ou possivelmente para baixo, se houver espaço antes do seu palpite inicial), rendendo 66.
  3. Multiplique por 3072, rendendo 202.752.
  4. Insira esse valor como o ponto inicial da partição.
  5. Insira o ponto final desejado ou o tamanho da partição. Observe que o ponto final não precisa ser alinhado, embora se você torná-lo 1 menor que um múltiplo de 3072, o resultado não será um espaço perdido entre as partições.

Isso é feito com mais facilidade com fdisk ou parted , embora, se você quiser usar parted , digite unit s para definir unidades como setores. (Versões recentes de fdisk padrão para unidades de setores.) O GParted é praticamente impossível para essa tarefa. Note que você não precisa se preocupar em alinhar sua partição estendida; Ele possui apenas uma única estrutura de dados de 512 bytes, portanto, em um sentido muito real, não pode ser alinhado corretamente. As partições lógicas contidas em a partição estendida devem estar alinhadas corretamente.

Quando terminar, divida todos os seus pontos de início de partição por 3072. Eles devem ser números inteiros (novamente, com a possível exceção da partição estendida).

    
por 11.05.2014 / 22:12